BmnRoot 26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Loading...
Searching...
No Matches
BmnCheckMCTask.cxx
Go to the documentation of this file.
1#include "BmnCheckMCTask.h"
2
3BmnCheckMCTask::BmnCheckMCTask(Long64_t nevents, Int_t minHits, Int_t code, vector<Int_t> outCodes)
4{
5 fMCTracksBranchName = "MCTrack";
6 fGemPointsBranchName = "StsPoint";
7 fSilPointsBranchName = "SiliconPoint";
8 fCSCPointsBranchName = "CSCPoint";
9 fPVertexName = "BmnVertex";
10 fEvHeaderName = "DstEventHeader.";
11 fMCEvHeaderName = "MCEventHeader.";
12 fMCTracks = nullptr;
13 fGemPoints = nullptr;
14 fSilPoints = nullptr;
15 fCSCPoints = nullptr;
16 fRunSimInst = nullptr;
17 fPVertexShow = nullptr;
18 fEvHeaderShow = nullptr;
19 fMCEvHeader = nullptr;
20 fMinHits = minHits;
21 fPDGCode = code;
22 fPDGOutCodes = outCodes;
23 nMaxValidEvents = nevents;
24 nValidEvents = 0;
25 nVertices = 0;
26}
27
29
31{
32 if (fVerbose > 0)
33 printf("Recon Checker Init\n");
34
35 FairRootManager* ioman = FairRootManager::Instance();
36 if (NULL == ioman)
37 Fatal("Init", "FairRootManager is not instantiated");
38 fMCTracks = (TClonesArray*)ioman->GetObject(fMCTracksBranchName);
39 fGemPoints = (TClonesArray*)ioman->GetObject(fGemPointsBranchName);
40 fSilPoints = (TClonesArray*)ioman->GetObject(fSilPointsBranchName);
41 fCSCPoints = (TClonesArray*)ioman->GetObject(fCSCPointsBranchName);
42 fPVertexShow = (TClonesArray*)ioman->GetObject(fPVertexName);
43 fEvHeaderShow = (DstEventHeader*)ioman->GetObject(fEvHeaderName);
44 // fMCEvHeader = (FairMCEventHeader*) ioman->GetObject(fMCEvHeaderName);
45
46 return kSUCCESS;
47}
48
50{
51 if (!fMCEvHeader) { // surely it should be in the init (if it would worked with FairRunSim =( )
52 FairRootManager* ioman = FairRootManager::Instance();
53 fMCEvHeader = (FairMCEventHeader*)ioman->GetObject(fMCEvHeaderName);
54 }
55 if (fVerbose > 1)
56 printf("\nBmnCheckMCTask::Exec eventID = %u GetSaveEvent() = %d\n", fEvHeaderShow->GetEventId(),
57 fRunSimInst->GetSaveEvent());
58 if (fMCTracks == nullptr)
59 return;
60 for (Int_t iTrack = 0; iTrack < fPVertexShow->GetEntriesFast(); iTrack++) {
61 CbmVertex* v = (CbmVertex*)fPVertexShow->UncheckedAt(iTrack);
62 fVZ = v->GetZ();
63 // if (fVerbose > 1)
64 // printf(" Read PV ( %f %f %f)\n", v->GetX(), v->GetY(), v->GetZ());
65 }
66 fRunSimInst->SetSaveEvent(kFALSE);
67 if (fVZ < CutExistentVertex) {
68 return;
69 }
70 if (Abs(fVZ) > Abs(CutValidZ)) {
71 nVertices++;
72 return;
73 }
75 fMinHits))
76 {
77 fRunSimInst->SetSaveEvent(kTRUE);
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{
97 printf("\nBmnCheckMCTask: Found: \n\t%lld vertices, \n\t%lld valid events\n", nVertices, nValidEvents);
98}
99
101{
102 if (fVerbose > 1)
103 printf("\n%s : finish event\n", typeid(*this).name());
104}
__m128 v
Definition P4_F32vec4.h:1
int Int_t
constexpr Bool_t kFALSE
long long Long64_t
constexpr Bool_t kTRUE
const char Option_t
void Fatal(const char *location, const char *msgfmt,...)
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
static Bool_t IsReconstructable(TClonesArray *tracks, TClonesArray *gemPoints, TClonesArray *silPoints, TClonesArray *cscPoints, Int_t code, vector< Int_t > &outCodes, Int_t minHits=4)
CbmVertex.h.
Definition CbmVertex.h:21
#define CutValidZ
#define CutExistentVertex
BmnFairRunSim FairRunSim with additional execution control features.
Double_t Abs(Double_t d)