BmnRoot
26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Toggle main menu visibility
Loading...
Searching...
No Matches
BmnPVGetter.cxx
Go to the documentation of this file.
1
#include "
BmnPVGetter.h
"
2
3
BmnPVGetter::BmnPVGetter
(
TString
fname,
Long64_t
nEvs)
4
{
5
fDstTreeName
=
"bmndata"
;
6
fDstFileName
= fname;
7
fPVertexName
=
"BmnVertex"
;
8
fEvHeaderName
=
"DstEventHeader."
;
9
fDstFile
=
nullptr
;
10
fDstTree
=
nullptr
;
11
fPVertex
=
nullptr
;
12
fEvHeader
=
nullptr
;
13
iEv
= -1;
14
doNext
=
kTRUE
;
15
if
(nEvs == 0LL)
16
nFEvents
= LONG_LONG_MAX;
17
else
18
nFEvents
= nEvs;
19
}
20
21
BmnPVGetter::~BmnPVGetter
() {}
22
23
InitStatus
BmnPVGetter::Init
()
24
{
25
if
(fVerbose > 0)
26
printf(
"Primary Vertex Extractor init\n"
);
27
28
fDstFile
=
new
TFile
(
fDstFileName
,
"READ"
);
29
if
(
fDstFile
->IsOpen() ==
kFALSE
) {
30
printf(
"\n!!!!\ncannot open file %s !\n"
,
fDstFileName
.Data());
31
return
kFATAL;
32
}
33
fDstTree
= (
TTree
*)
fDstFile
->Get(
fDstTreeName
.Data());
34
if
(
fDstTree
->SetBranchAddress(
fPVertexName
.Data(), &
fPVertex
) < 0)
35
return
kFATAL;
36
if
(
fDstTree
->SetBranchAddress(
fEvHeaderName
.Data(), &
fEvHeader
) < 0)
37
return
kFATAL;
38
nFEvents
=
Min
(
fDstTree
->GetEntries(),
nFEvents
);
39
if
(fVerbose > 0)
40
printf(
"Primary Vertex Extractor : will run up to %lld events.\n"
,
nFEvents
);
41
42
FairRootManager* ioman = FairRootManager::Instance();
43
if
(NULL == ioman)
44
Fatal
(
"Init"
,
"FairRootManager is not instantiated"
);
45
46
fPVertexShow
=
new
TClonesArray
(
CbmVertex::Class
(), 1);
// out
47
ioman->Register(
fPVertexName
,
"GEM"
,
fPVertexShow
,
kTRUE
);
// last arg: save to file
48
fEvHeaderShow
=
new
DstEventHeader
();
// out
49
ioman->Register(
fEvHeaderName
,
""
,
fEvHeaderShow
,
kTRUE
);
// last arg: save to file
50
51
return
kSUCCESS;
52
}
53
54
void
BmnPVGetter::Exec
(
Option_t
* option)
55
{
56
if
(
doNext
)
57
NextFileEvent
();
58
doNext
=
kFALSE
;
59
}
60
61
void
BmnPVGetter::Finish
()
62
{
63
printf(
"\n%s: Iterated over %lld of %lld events\n"
,
typeid
(*this).name(),
iEv
+ 1,
nFEvents
);
64
fDstFile
->Close();
65
delete
fDstFile
;
66
}
67
68
void
BmnPVGetter::FinishEvent
()
69
{
70
if
(fVerbose > 1)
71
printf(
"PVG Finish: fVZ %f getsave = %d\n"
,
fVZ
,
fRunSimInst
->GetSaveEvent());
72
if
(
Abs
(
fVZ
) <
Abs
(
CutValidZ
) &&
fRunSimInst
->GetSaveEvent() ==
kFALSE
)
73
return
;
74
doNext
=
kTRUE
;
75
}
76
77
void
BmnPVGetter::NextFileEvent
()
78
{
79
// do {
80
fPVertexShow
->Delete();
81
fDstTree
->GetEntry(++
iEv
);
82
printf(
"\nPVs on event %lld eventID = %u\n"
,
iEv
,
fEvHeader
->GetEventId());
83
for
(
Int_t
iTrack = 0; iTrack <
fPVertex
->GetEntriesFast(); iTrack++) {
84
CbmVertex
*
v
= (
CbmVertex
*)
fPVertex
->UncheckedAt(iTrack);
85
fGen
->SetBeam(
v
->GetX(),
v
->GetY(), 0.0, 0.0);
86
fGen
->SetTarget(
v
->GetZ(), 0.0);
87
fVZ
=
v
->GetZ();
88
if
(fVerbose > 1)
89
printf(
"v( %f %f %f)\n"
,
v
->GetX(),
v
->GetY(),
v
->GetZ());
90
}
91
// } while (vz < MinValidZ);
92
fPVertexShow
->AbsorbObjects(
fPVertex
);
93
// if (fVZ < MinValidZ)
94
// fRunSimInst->SetSaveEvent(kFALSE);
95
fEvHeaderShow
->SetEventId(
fEvHeader
->GetEventId());
96
if
(
iEv
==
nFEvents
- 1)
97
fRunSimInst
->GetMCApp()->StopMCRun();
98
}
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,...)
BmnPVGetter::Init
InitStatus Init()
Definition
BmnPVGetter.cxx:23
BmnPVGetter::fVZ
Double_t fVZ
Definition
BmnPVGetter.h:60
BmnPVGetter::~BmnPVGetter
virtual ~BmnPVGetter()
Definition
BmnPVGetter.cxx:21
BmnPVGetter::fDstFileName
TString fDstFileName
Definition
BmnPVGetter.h:49
BmnPVGetter::BmnPVGetter
BmnPVGetter(TString fname, Long64_t nEvs=0)
Definition
BmnPVGetter.cxx:3
BmnPVGetter::fEvHeader
DstEventHeader * fEvHeader
Definition
BmnPVGetter.h:54
BmnPVGetter::doNext
Bool_t doNext
Definition
BmnPVGetter.h:61
BmnPVGetter::NextFileEvent
void NextFileEvent()
Definition
BmnPVGetter.cxx:77
BmnPVGetter::fGen
FairPrimaryGenerator * fGen
Definition
BmnPVGetter.h:47
BmnPVGetter::Finish
void Finish()
Definition
BmnPVGetter.cxx:61
BmnPVGetter::FinishEvent
void FinishEvent()
Definition
BmnPVGetter.cxx:68
BmnPVGetter::Exec
void Exec(Option_t *option)
Definition
BmnPVGetter.cxx:54
BmnPVGetter::fDstTree
TTree * fDstTree
Definition
BmnPVGetter.h:53
BmnPVGetter::fRunSimInst
BmnFairRunSim * fRunSimInst
Definition
BmnPVGetter.h:46
BmnPVGetter::fPVertexShow
TClonesArray * fPVertexShow
Definition
BmnPVGetter.h:57
BmnPVGetter::fEvHeaderName
TString fEvHeaderName
Definition
BmnPVGetter.h:51
BmnPVGetter::fDstTreeName
TString fDstTreeName
Definition
BmnPVGetter.h:48
BmnPVGetter::nFEvents
Long64_t nFEvents
Definition
BmnPVGetter.h:59
BmnPVGetter::fPVertex
TClonesArray * fPVertex
Definition
BmnPVGetter.h:56
BmnPVGetter::fEvHeaderShow
DstEventHeader * fEvHeaderShow
Definition
BmnPVGetter.h:55
BmnPVGetter::fPVertexName
TString fPVertexName
Definition
BmnPVGetter.h:50
BmnPVGetter::iEv
Long64_t iEv
Definition
BmnPVGetter.h:58
BmnPVGetter::fDstFile
TFile * fDstFile
Definition
BmnPVGetter.h:52
CbmVertex
CbmVertex.h.
Definition
CbmVertex.h:21
DstEventHeader
Definition
DstEventHeader.h:10
TClonesArray
TFile
TNamed::Class
static TClass * Class()
TString
TTree
CutValidZ
#define CutValidZ
Definition
BmnFairRunSim.h:13
TMath::Min
Double_t Min(Double_t a, Double_t b)
TMath::Abs
Double_t Abs(Double_t d)
BmnPVGetter.h
reconstruction
bmnrecotools
BmnPVGetter.cxx
Generated on
for BmnRoot by
1.17.0