BmnRoot 26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
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
7#include "BmnZdcPoint.h"
8#include "CbmMCTrack.h"
9#include "FairLogger.h"
10#include "FairRootManager.h"
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)
43 cout << "FairMCModuleDraw::Init()" << endl;
44
45 FairRootManager* fManager = FairRootManager::Instance();
46
47 fPointList = (TClonesArray*)fManager->GetObject(GetName());
48 if (fPointList == 0) {
49 LOG(error) << "FairMCModuleDraw::Init() branch " << GetName() << " not found! Task will be deactivated";
50 SetActive(kFALSE);
51 return kERROR;
52 }
53 if (fVerbose > 2)
54 cout << "FairMCModuleDraw::Init() get point list" << fPointList << endl;
55
56 fMCTracks = (TClonesArray*)fManager->GetObject("MCTrack");
57
59 if (fVerbose > 2)
60 cout << "FairMCModuleDraw::Init() get instance of MpdEventManager " << endl;
61
62 // create array for ZDC modules' visibility
63 fEventManager->isZDCModule = new bool[104];
64
65 return kSUCCESS;
66}
67
69{
70 if (!IsActive())
71 return Reset();
72
73 bool* pZDCModuleNumber = fEventManager->isZDCModule;
74 Int_t npoints = fPointList->GetEntriesFast();
75 for (int i = 0; i < npoints; i++) {
77
78 CbmMCTrack* pMCTrack = (CbmMCTrack*)fMCTracks->At(p->GetTrackID());
79 if (!pMCTrack) {
80 cout << "MCTrack is NULL for selected index" << endl;
81 continue;
82 }
83
84 // filter only forward points
85 Double32_t start_z = pMCTrack->GetStartZ();
86 // cout<<"StartZ: "<<start_z<<cout<<endl;
87 if (start_z < 1000.0)
88 pZDCModuleNumber[p->GetCopyMother()] = true;
89 }
90}
91
93{
94 FairMCPoint* p = (FairMCPoint*)obj;
95 return TVector3(p->GetX(), p->GetY(), p->GetZ());
96}
97
99{
100 return new TNamed(Form("Point %d", i), "");
101}
102
103// ----- Destructor ----------------------------------------------------
105{
106 delete[] fEventManager->isZDCModule;
107}
108
109// -------------------------------------------------------------------------
111
112/** Action after each event**/
114
115// -------------------------------------------------------------------------
117{
118 bool* pZDCModuleNumber = fEventManager->isZDCModule;
119 for (int i = 0; i < 104; i++)
120 pZDCModuleNumber[i] = false;
121}
int i
Definition P4_F32vec4.h:22
short Style_t
int Int_t
double Double32_t
short Color_t
constexpr Bool_t kFALSE
const char Option_t
char * Form(const char *fmt,...)
Short_t GetCopyMother() const
Definition BmnZdcPoint.h:58
CbmMCTrack.h.
Definition CbmMCTrack.h:26
Double_t GetStartZ() const
Definition CbmMCTrack.h:63
virtual TObject * GetValue(TObject *obj, Int_t i)
virtual InitStatus Init()
virtual ~FairMCModuleDraw()
Destructor.
MpdEventManager * fEventManager
TClonesArray * fMCTracks
virtual void Finish()
Action after each event.
FairMCModuleDraw()
Default constructor.
virtual void Exec(Option_t *option)
Executed task.
virtual TVector3 GetVector(TObject *obj)
virtual void SetParContainers()
TClonesArray * fPointList
static MpdEventManager * Instance()
Definition json.hpp:4446