BmnRoot
26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Toggle main menu visibility
Loading...
Searching...
No Matches
BmnBCHitProducer.cxx
Go to the documentation of this file.
1
#include "
BmnBCHitProducer.h
"
2
3
#include "
BmnBCPoint.h
"
4
#include "FairRootManager.h"
5
#include "
TSystem.h
"
6
7
static
Float_t
workTime
= 0.0;
8
static
int
entries
= 0;
9
10
BmnBCHitProducer::BmnBCHitProducer
()
11
:
fOnlyPrimary
(
kFALSE
)
12
,
fUseRealEffects
(
kFALSE
)
13
{
14
fInputBranchName
=
"BCPoint"
;
15
fOutputHitsBranchName
=
"BmnBCHit"
;
16
fOutputHitMatchesBranchName
=
"BmnBCHitMatch"
;
17
18
fVerbose = 1;
19
}
20
21
BmnBCHitProducer::~BmnBCHitProducer
() {}
22
23
InitStatus
BmnBCHitProducer::Init
()
24
{
25
26
FairRootManager* ioman = FairRootManager::Instance();
27
28
fBmnBCPointsArray
= (
TClonesArray
*)ioman->GetObject(
fInputBranchName
);
29
30
fBmnBCHitsArray
=
new
TClonesArray
(
fOutputHitsBranchName
);
31
ioman->Register(
fOutputHitsBranchName
,
"BC"
,
fBmnBCHitsArray
,
kTRUE
);
32
33
if
(fVerbose)
34
cout <<
" BmnBCHitProducer::Init() finished\n\n"
;
35
return
kSUCCESS;
36
}
37
38
void
BmnBCHitProducer::Exec
(
Option_t
* opt)
39
{
40
clock_t tStart = clock();
41
fBmnBCHitsArray
->Delete();
42
BmnBCPoint
* BCPoint;
43
Double_t
ELoss1 = 0;
44
Double_t
ELoss2 = 0;
45
Double_t
ELoss3 = 0;
46
Double_t
ELoss4 = 0;
47
Int_t
NumberofHits = 0;
48
vector<Int_t> chargesBC3;
49
vector<Int_t> chargesBC4;
50
51
for
(
Int_t
ipoint = 0; ipoint <
fBmnBCPointsArray
->GetEntriesFast(); ipoint++) {
52
BCPoint = (
BmnBCPoint
*)
fBmnBCPointsArray
->At(ipoint);
53
if
(BCPoint->
GetStation
() == 1) {
54
ELoss1 += BCPoint->GetEnergyLoss();
55
}
else
if
(BCPoint->
GetStation
() == 2) {
56
ELoss2 += BCPoint->GetEnergyLoss();
57
}
else
if
(BCPoint->
GetStation
() == 3) {
58
ELoss3 += BCPoint->GetEnergyLoss();
59
chargesBC3.push_back(BCPoint->
GetCharge
());
60
}
else
if
(BCPoint->
GetStation
() == 4) {
61
ELoss4 += BCPoint->GetEnergyLoss();
62
chargesBC4.push_back(BCPoint->
GetCharge
());
63
}
64
NumberofHits++;
65
}
66
new
((*fBmnBCHitsArray)[
fBmnBCHitsArray
->GetEntriesFast()])
67
BmnBCHit
(ELoss1, ELoss2, ELoss3, ELoss4, NumberofHits, chargesBC3, chargesBC4);
68
// vector <Double_t> ELoss = {ELoss1, ELoss2, ELoss3, ELoss4};
69
70
if
(!
fBmnBCPointsArray
) {
71
Error
(
" BmnBCHitProducer::Exec()"
,
" !!! Unknown branch name !!! "
);
72
return
;
73
}
74
75
if
(fVerbose) {
76
cout <<
" BmnBCHitProducer::Exec(), Number of BmnBCPoints = "
<<
fBmnBCPointsArray
->GetEntriesFast() <<
"\n"
;
77
}
78
79
if
(fVerbose)
80
cout <<
" BmnBCHitProducer::Exec() finished\n\n"
;
81
entries
++;
82
clock_t tFinish = clock();
83
workTime
+= ((
Float_t
)(tFinish - tStart)) / CLOCKS_PER_SEC;
84
}
85
86
void
BmnBCHitProducer::Finish
()
87
{
88
cout <<
"Work time of the BC HitProducer: "
<<
workTime
<< endl;
89
}
entries
static int entries
Definition
BmnBCHitProducer.cxx:8
Int_t
int Int_t
Float_t
float Float_t
kFALSE
constexpr Bool_t kFALSE
Double_t
double Double_t
kTRUE
constexpr Bool_t kTRUE
Option_t
const char Option_t
Error
void Error(const char *location, const char *msgfmt,...)
TSystem.h
BmnBCHitProducer::Init
virtual InitStatus Init()
Definition
BmnBCHitProducer.cxx:23
BmnBCHitProducer::fUseRealEffects
Bool_t fUseRealEffects
Definition
BmnBCHitProducer.h:39
BmnBCHitProducer::~BmnBCHitProducer
virtual ~BmnBCHitProducer()
Definition
BmnBCHitProducer.cxx:21
BmnBCHitProducer::fBmnBCHitsArray
TClonesArray * fBmnBCHitsArray
Output array of BC Hits.
Definition
BmnBCHitProducer.h:36
BmnBCHitProducer::fOutputHitsBranchName
TString fOutputHitsBranchName
Definition
BmnBCHitProducer.h:29
BmnBCHitProducer::Finish
virtual void Finish()
Definition
BmnBCHitProducer.cxx:86
BmnBCHitProducer::fOutputHitMatchesBranchName
TString fOutputHitMatchesBranchName
Definition
BmnBCHitProducer.h:30
BmnBCHitProducer::fBmnBCPointsArray
TClonesArray * fBmnBCPointsArray
Input array of BC Points.
Definition
BmnBCHitProducer.h:33
BmnBCHitProducer::fOnlyPrimary
Bool_t fOnlyPrimary
Definition
BmnBCHitProducer.h:38
BmnBCHitProducer::fInputBranchName
TString fInputBranchName
Definition
BmnBCHitProducer.h:28
BmnBCHitProducer::Exec
virtual void Exec(Option_t *opt)
Definition
BmnBCHitProducer.cxx:38
BmnBCHitProducer::BmnBCHitProducer
BmnBCHitProducer()
Definition
BmnBCHitProducer.cxx:10
BmnBCHit
Definition
BmnBCHit.h:8
BmnBCPoint
Definition
BmnBCPoint.h:21
BmnBCPoint::GetStation
Double_t GetStation() const
Definition
BmnBCPoint.h:75
BmnBCPoint::GetCharge
Double_t GetCharge()
Definition
BmnBCPoint.h:70
TClonesArray
BmnBCHitProducer.h
BmnBCPoint.h
detectors
bc
BmnBCHitProducer.cxx
Generated on
for BmnRoot by
1.17.0