BmnRoot
Loading...
Searching...
No Matches
BmnCheckMCTask.cxx
Go to the documentation of this file.
1#include "BmnCheckMCTask.h"
2
4 Long64_t nevents,
5 Int_t minHits,
6 Int_t code,
7 vector<Int_t> outCodes) {
8 fMCTracksBranchName = "MCTrack";
9 fGemPointsBranchName = "StsPoint";
10 fSilPointsBranchName = "SiliconPoint";
11 fCSCPointsBranchName = "CSCPoint";
12 fPVertexName = "BmnVertex";
13 fEvHeaderName = "DstEventHeader.";
14 fMCEvHeaderName = "MCEventHeader.";
15 fMCTracks = nullptr;
16 fGemPoints = nullptr;
17 fSilPoints = nullptr;
18 fCSCPoints = nullptr;
19 fRunSimInst = nullptr;
20 fPVertexShow = nullptr;
21 fEvHeaderShow = nullptr;
22 fMCEvHeader = nullptr;
23 fMinHits = minHits;
24 fPDGCode = code;
25 fPDGOutCodes = outCodes;
26 nMaxValidEvents = nevents;
27 nValidEvents = 0;
28 nVertices = 0;
29}
30
33
35 if (fVerbose > 0)
36 printf("Recon Checker Init\n");
37
38 FairRootManager* ioman = FairRootManager::Instance();
39 if (NULL == ioman) Fatal("Init", "FairRootManager is not instantiated");
40 fMCTracks = (TClonesArray*) ioman->GetObject(fMCTracksBranchName);
41 fGemPoints = (TClonesArray*) ioman->GetObject(fGemPointsBranchName);
42 fSilPoints = (TClonesArray*) ioman->GetObject(fSilPointsBranchName);
43 fCSCPoints = (TClonesArray*) ioman->GetObject(fCSCPointsBranchName);
44 fPVertexShow = (TClonesArray*) ioman->GetObject(fPVertexName);
45 fEvHeaderShow = (DstEventHeader*) ioman->GetObject(fEvHeaderName);
46 // fMCEvHeader = (FairMCEventHeader*) ioman->GetObject(fMCEvHeaderName);
47
48 return kSUCCESS;
49}
50
51void BmnCheckMCTask::Exec(Option_t* option) {
52 if (!fMCEvHeader) { // surely it should be in the init (if it would worked with FairRunSim =( )
53 FairRootManager* ioman = FairRootManager::Instance();
54 fMCEvHeader = (FairMCEventHeader*) ioman->GetObject(fMCEvHeaderName);
55 }
56 if (fVerbose > 1)
57 printf("\nBmnCheckMCTask::Exec eventID = %u GetSaveEvent() = %d\n",
59 if (fMCTracks == nullptr)
60 return;
61 for (Int_t iTrack = 0; iTrack < fPVertexShow->GetEntriesFast(); iTrack++) {
62 CbmVertex* v = (CbmVertex*) fPVertexShow->UncheckedAt(iTrack);
63 fVZ = v->GetZ();
64 // if (fVerbose > 1)
65 // printf(" Read PV ( %f %f %f)\n", v->GetX(), v->GetY(), v->GetZ());
66 }
68 if (fVZ < CutExistentVertex) {
69 return;
70 }
71 if (Abs(fVZ) > Abs(CutValidZ)) {
72 nVertices++;
73 return;
74 }
79 nVertices++;
80 fMCEvHeader->SetEventID(fEvHeaderShow->GetEventId());
81 if (fVerbose > 1)
82 printf("Recon\n");
84 fRunSimInst->GetMCApp()->StopMCRun();
85 } else {
86 if (fVerbose > 1)
87 printf("NonRec\n");
88 }
89 // if (fVerbose > 1)
90 // printf("\n%s : exec SET = %d\n", typeid (*this).name(), fRunSimInst->GetSaveEvent());
91 if (fVerbose > 1)
92 printf("\nValid events: %lld\n", nValidEvents);
93}
94
96 printf("\nBmnCheckMCTask: Found: \n\t%lld vertices, \n\t%lld valid events\n",
98
99}
100
102 if (fVerbose > 1)
103 printf("\n%s : finish event\n", typeid (*this).name());
104}
__m128 v
Definition P4_F32vec4.h:1
TClonesArray * fSilPoints
TString fCSCPointsBranchName
void Exec(Option_t *option)
TClonesArray * fPVertexShow
BmnCheckMCTask(Long64_t nevents, Int_t minHits=4, Int_t code=3122, vector< Int_t > outCodes={2212, -211})
TString fMCEvHeaderName
TString fEvHeaderName
TClonesArray * fMCTracks
vector< Int_t > fPDGOutCodes
TClonesArray * fGemPoints
virtual ~BmnCheckMCTask()
TString fMCTracksBranchName
FairMCEventHeader * fMCEvHeader
Long64_t nValidEvents
TString fSilPointsBranchName
InitStatus Init()
TString fGemPointsBranchName
TClonesArray * fCSCPoints
BmnFairRunSim * fRunSimInst
Long64_t nMaxValidEvents
DstEventHeader * fEvHeaderShow
Bool_t GetSaveEvent()
void SetSaveEvent(Bool_t set)
FairMCApplication * GetMCApp()
static Bool_t IsReconstructable(TClonesArray *tracks, TClonesArray *gemPoints, TClonesArray *silPoints, TClonesArray *cscPoints, Int_t code, vector< Int_t > &outCodes, Int_t minHits=4)
Double_t GetZ() const
Definition CbmVertex.h:60
UInt_t GetEventId()
#define CutValidZ
#define CutExistentVertex