BmnRoot
26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Toggle main menu visibility
Loading...
Searching...
No Matches
BmnCheckMCTask.cxx
Go to the documentation of this file.
1
#include "
BmnCheckMCTask.h
"
2
3
BmnCheckMCTask::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
28
BmnCheckMCTask::~BmnCheckMCTask
() {}
29
30
InitStatus
BmnCheckMCTask::Init
()
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
49
void
BmnCheckMCTask::Exec
(
Option_t
* option)
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
}
74
if
(
BmnRecoTools::IsReconstructable
(
fMCTracks
,
fGemPoints
,
fSilPoints
,
fCSCPoints
,
fPDGCode
,
fPDGOutCodes
,
75
fMinHits
))
76
{
77
fRunSimInst
->SetSaveEvent(
kTRUE
);
78
nValidEvents
++;
79
nVertices
++;
80
fMCEvHeader
->SetEventID(
fEvHeaderShow
->GetEventId());
81
if
(fVerbose > 1)
82
printf(
"Recon\n"
);
83
if
(
nValidEvents
>=
nMaxValidEvents
&&
nMaxValidEvents
!= 0)
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
95
void
BmnCheckMCTask::Finish
()
96
{
97
printf(
"\nBmnCheckMCTask: Found: \n\t%lld vertices, \n\t%lld valid events\n"
,
nVertices
,
nValidEvents
);
98
}
99
100
void
BmnCheckMCTask::FinishEvent
()
101
{
102
if
(fVerbose > 1)
103
printf(
"\n%s : finish event\n"
,
typeid
(*this).name());
104
}
v
__m128 v
Definition
P4_F32vec4.h:1
Int_t
int Int_t
kFALSE
constexpr Bool_t kFALSE
Long64_t
long long Long64_t
kTRUE
constexpr Bool_t kTRUE
Option_t
const char Option_t
Fatal
void Fatal(const char *location, const char *msgfmt,...)
BmnCheckMCTask::fSilPoints
TClonesArray * fSilPoints
Definition
BmnCheckMCTask.h:52
BmnCheckMCTask::fMinHits
Int_t fMinHits
Definition
BmnCheckMCTask.h:36
BmnCheckMCTask::fCSCPointsBranchName
TString fCSCPointsBranchName
Definition
BmnCheckMCTask.h:46
BmnCheckMCTask::Exec
void Exec(Option_t *option)
Definition
BmnCheckMCTask.cxx:49
BmnCheckMCTask::fPVertexShow
TClonesArray * fPVertexShow
Definition
BmnCheckMCTask.h:54
BmnCheckMCTask::BmnCheckMCTask
BmnCheckMCTask(Long64_t nevents, Int_t minHits=4, Int_t code=3122, vector< Int_t > outCodes={2212, -211})
Definition
BmnCheckMCTask.cxx:3
BmnCheckMCTask::fMCEvHeaderName
TString fMCEvHeaderName
Definition
BmnCheckMCTask.h:48
BmnCheckMCTask::fEvHeaderName
TString fEvHeaderName
Definition
BmnCheckMCTask.h:47
BmnCheckMCTask::Finish
void Finish()
Definition
BmnCheckMCTask.cxx:95
BmnCheckMCTask::fMCTracks
TClonesArray * fMCTracks
Definition
BmnCheckMCTask.h:50
BmnCheckMCTask::fPDGOutCodes
vector< Int_t > fPDGOutCodes
Definition
BmnCheckMCTask.h:38
BmnCheckMCTask::fGemPoints
TClonesArray * fGemPoints
Definition
BmnCheckMCTask.h:51
BmnCheckMCTask::~BmnCheckMCTask
virtual ~BmnCheckMCTask()
Definition
BmnCheckMCTask.cxx:28
BmnCheckMCTask::fVZ
Double_t fVZ
Definition
BmnCheckMCTask.h:57
BmnCheckMCTask::fMCTracksBranchName
TString fMCTracksBranchName
Definition
BmnCheckMCTask.h:43
BmnCheckMCTask::fMCEvHeader
FairMCEventHeader * fMCEvHeader
Definition
BmnCheckMCTask.h:56
BmnCheckMCTask::fPDGCode
Int_t fPDGCode
Definition
BmnCheckMCTask.h:37
BmnCheckMCTask::nValidEvents
Long64_t nValidEvents
Definition
BmnCheckMCTask.h:41
BmnCheckMCTask::FinishEvent
void FinishEvent()
Definition
BmnCheckMCTask.cxx:100
BmnCheckMCTask::fSilPointsBranchName
TString fSilPointsBranchName
Definition
BmnCheckMCTask.h:45
BmnCheckMCTask::Init
InitStatus Init()
Definition
BmnCheckMCTask.cxx:30
BmnCheckMCTask::fGemPointsBranchName
TString fGemPointsBranchName
Definition
BmnCheckMCTask.h:44
BmnCheckMCTask::fPVertexName
TString fPVertexName
Definition
BmnCheckMCTask.h:49
BmnCheckMCTask::fCSCPoints
TClonesArray * fCSCPoints
Definition
BmnCheckMCTask.h:53
BmnCheckMCTask::nVertices
Long64_t nVertices
Definition
BmnCheckMCTask.h:40
BmnCheckMCTask::fRunSimInst
BmnFairRunSim * fRunSimInst
Definition
BmnCheckMCTask.h:42
BmnCheckMCTask::nMaxValidEvents
Long64_t nMaxValidEvents
Definition
BmnCheckMCTask.h:39
BmnCheckMCTask::fEvHeaderShow
DstEventHeader * fEvHeaderShow
Definition
BmnCheckMCTask.h:55
BmnRecoTools::IsReconstructable
static Bool_t IsReconstructable(TClonesArray *tracks, TClonesArray *gemPoints, TClonesArray *silPoints, TClonesArray *cscPoints, Int_t code, vector< Int_t > &outCodes, Int_t minHits=4)
Definition
BmnRecoTools.cxx:9
CbmVertex
CbmVertex.h.
Definition
CbmVertex.h:21
DstEventHeader
Definition
DstEventHeader.h:10
FairMCEventHeader
TClonesArray
CutValidZ
#define CutValidZ
Definition
BmnFairRunSim.h:13
CutExistentVertex
#define CutExistentVertex
BmnFairRunSim FairRunSim with additional execution control features.
Definition
BmnFairRunSim.h:12
TMath::Abs
Double_t Abs(Double_t d)
BmnCheckMCTask.h
reconstruction
bmnrecotools
BmnCheckMCTask.cxx
Generated on
for BmnRoot by
1.17.0