BmnRoot
Loading...
Searching...
No Matches
FairMCModuleDraw.cxx
Go to the documentation of this file.
1// -------------------------------------------------------------------------
2// ----- FairMCModuleDraw source file -----
3// ----- -----
4// -------------------------------------------------------------------------
5#include "FairMCModuleDraw.h"
6#include "FairRootManager.h"
7#include "BmnZdcPoint.h"
8#include "CbmMCTrack.h"
9#include "FairLogger.h"
10
11#include "TEvePointSet.h"
12#include "TString.h"
13
14#include <iostream>
15using namespace std;
16
17// ----- Default constructor -------------------------------------------
19: FairTask("FairMCModuleDraw", 0),
20 fVerbose(0),
21 fEventManager(nullptr),
22 fPointList(nullptr),
23 fMCTracks(nullptr),
24 fColor(0),
25 fStyle(0)
26{}
27
28// ----- Standard constructor ------------------------------------------
29FairMCModuleDraw::FairMCModuleDraw(const char* name, Color_t color ,Style_t mstyle,Int_t iVerbose)
30: FairTask(name, iVerbose),
31 fVerbose(iVerbose),
32 fEventManager(nullptr),
33 fPointList(nullptr),
34 fMCTracks(nullptr),
35 fColor(color),
36 fStyle(mstyle)
37{}
38
39// -------------------------------------------------------------------------
41{
42 if (fVerbose > 1) cout<<"FairMCModuleDraw::Init()"<<endl;
43
44 FairRootManager* fManager = FairRootManager::Instance();
45
46 fPointList = (TClonesArray*) fManager->GetObject(GetName());
47 if(fPointList == 0)
48 {
49 LOG(error)<<"FairMCModuleDraw::Init() branch "<< GetName()<<" not found! Task will be deactivated";
50 SetActive(kFALSE);
51 return kERROR;
52 }
53 if (fVerbose > 2) cout<<"FairMCModuleDraw::Init() get point list"<<fPointList<<endl;
54
55 fMCTracks = (TClonesArray*) fManager->GetObject("MCTrack");
56
58 if (fVerbose > 2) cout<< "FairMCModuleDraw::Init() get instance of MpdEventManager " << endl;
59
60 // create array for ZDC modules' visibility
61 fEventManager->isZDCModule = new bool[104];
62
63 return kSUCCESS;
64}
65
66void FairMCModuleDraw::Exec(Option_t* option)
67{
68 if (!IsActive())
69 return
70 Reset();
71
72 bool* pZDCModuleNumber = fEventManager->isZDCModule;
73 Int_t npoints = fPointList->GetEntriesFast();
74 for (int i = 0; i < npoints; i++)
75 {
77
78 CbmMCTrack* pMCTrack = (CbmMCTrack*) fMCTracks->At(p->GetTrackID());
79 if (!pMCTrack)
80 {
81 cout<<"MCTrack is NULL for selected index"<<endl;
82 continue;
83 }
84
85 // filter only forward points
86 Double32_t start_z = pMCTrack->GetStartZ();
87 //cout<<"StartZ: "<<start_z<<cout<<endl;
88 if (start_z < 1000.0)
89 pZDCModuleNumber[p->GetCopyMother()] = true;
90 }
91}
92
93TVector3 FairMCModuleDraw::GetVector(TObject* obj)
94{
95 FairMCPoint* p = (FairMCPoint*)obj;
96 return TVector3(p->GetX(), p->GetY(), p->GetZ());
97}
98
99TObject* FairMCModuleDraw::GetValue(TObject* obj,Int_t i)
100{
101 return new TNamed(Form("Point %d", i),"");
102}
103
104// ----- Destructor ----------------------------------------------------
109
110// -------------------------------------------------------------------------
114
119
120// -------------------------------------------------------------------------
122{
123 bool* pZDCModuleNumber = fEventManager->isZDCModule;
124 for (int i = 0; i < 104; i++)
125 pZDCModuleNumber[i] = false;
126}
int i
Definition P4_F32vec4.h:22
Short_t GetCopyMother() const
Definition BmnZdcPoint.h:56
Double_t GetStartZ() const
Definition CbmMCTrack.h:63
virtual TObject * GetValue(TObject *obj, Int_t i)
virtual InitStatus Init()
MpdEventManager * fEventManager
TClonesArray * fMCTracks
virtual void Finish()
virtual void Exec(Option_t *option)
virtual TVector3 GetVector(TObject *obj)
virtual void SetParContainers()
TClonesArray * fPointList
static MpdEventManager * Instance()
STL namespace.