BmnRoot
26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Toggle main menu visibility
Loading...
Searching...
No Matches
BmnSiResiduals.cxx
Go to the documentation of this file.
1
#include "
BmnSiResiduals.h
"
2
3
BmnSiResiduals::BmnSiResiduals
(
Int_t
run_period,
Int_t
run_number,
Double_t
fieldScale)
4
:
isField
(
kFALSE
)
5
,
fDebug
(
kFALSE
)
6
,
outRes
(NULL)
7
,
isPrintToFile
(
kFALSE
)
8
,
isMergedDigits
(
kFALSE
)
9
{
10
fPeriod
= run_period;
11
fNumber
= run_number;
12
13
if
(
Abs
(fieldScale) > DBL_EPSILON)
14
isField
=
kTRUE
;
15
16
TString
gPathSiliconConfig =
gSystem
->Getenv(
"VMCWORKDIR"
);
17
gPathSiliconConfig +=
"/parameters/silicon/XMLConfigs/"
;
18
19
// Create Silicon detector --------------------------------------------------
20
TString
config = (
fPeriod
== 6) ?
"SiliconRunSpring2017.xml"
: (
fPeriod
== 7) ?
"SiliconRunSpring2018.xml"
:
""
;
21
22
fDetector
=
new
BmnSiliconStationSet
(gPathSiliconConfig + config);
23
24
fBranchSiHits
=
"BmnSiliconHit"
;
25
fBranchGlobalTracks
=
"BmnGlobalTrack"
;
26
fBranchResiduals
=
"BmnResiduals"
;
27
fBranchFairEventHeader
=
"EventHeader."
;
28
}
29
30
void
BmnSiResiduals::Finish
()
31
{
32
delete
fDetector
;
33
}
34
35
InitStatus
BmnSiResiduals::Init
()
36
{
37
FairRootManager* ioman = FairRootManager::Instance();
38
39
fSiHits
= (
TClonesArray
*)ioman->GetObject(
fBranchSiHits
.Data());
40
fGlobalTracks
= (
TClonesArray
*)ioman->GetObject(
fBranchGlobalTracks
.Data());
41
fFairEventHeader
= (
FairEventHeader
*)ioman->GetObject(
fBranchFairEventHeader
.Data());
42
43
fSiResiduals
=
new
TClonesArray
(
fBranchResiduals
.Data());
44
45
ioman->Register(
"BmnSiResiduals"
,
"RESID"
,
fSiResiduals
,
kTRUE
);
46
if
(
TString
(ioman->GetInFile()->GetName()).
Contains
(
"merge"
))
47
isMergedDigits
=
kTRUE
;
48
}
49
50
void
BmnSiResiduals::Exec
(
Option_t
* opt)
51
{
52
// fFairEventHeader->SetRunId((isMergedDigits) ? 0 : fNumber);
53
fSiResiduals
->Delete();
54
Residuals
();
55
}
56
57
void
BmnSiResiduals::Residuals
()
58
{
59
for
(
Int_t
iGlobTrack = 0; iGlobTrack <
fGlobalTracks
->GetEntriesFast(); iGlobTrack++) {
60
BmnGlobalTrack
* glTrack = (
BmnGlobalTrack
*)
fGlobalTracks
->UncheckedAt(iGlobTrack);
61
62
Double_t
Tx = glTrack->
GetParamFirst
()->GetTx();
63
Double_t
X0 = glTrack->
GetParamFirst
()->GetX();
64
Double_t
Ty = glTrack->
GetParamFirst
()->GetTy();
65
Double_t
Y0 = glTrack->
GetParamFirst
()->GetY();
66
67
Double_t
Z0 = glTrack->
GetParamFirst
()->GetZ();
68
69
// Int_t silIdx = glTrack->GetSilHitIndex();
70
// if (silIdx == -1)
71
// return;
72
vector<Int_t> silIndices = glTrack->GetSilHitIndices();
73
if
(silIndices.size() == 0)
74
return
;
75
76
for
(
Int_t
iHitIdx = 0; iHitIdx < silIndices.size(); iHitIdx++) {
77
Double_t
xRes = 0., yRes = 0.;
78
BmnSiliconHit
* hit = (
BmnSiliconHit
*)
fSiHits
->UncheckedAt(silIndices.at(iHitIdx));
79
Double_t
x = hit->GetX();
80
Double_t
y = hit->GetY();
81
Double_t
z = hit->GetZ();
82
83
Int_t
stat = hit->
GetStation
();
84
Int_t
mod = hit->
GetModule
();
85
86
if
(!
isField
) {
87
xRes = x - (X0 + Tx * (z - Z0));
88
yRes = y - (Y0 + Ty * (z - Z0));
89
}
90
91
BmnResiduals
* resid =
92
new
((*fSiResiduals)[
fSiResiduals
->GetEntriesFast()])
BmnResiduals
(stat, mod, xRes, yRes, 0.,
isField
);
93
resid->SetTrackId(iGlobTrack);
94
resid->SetHitId(silIndices.at(iHitIdx));
95
}
96
}
97
}
BmnSiResiduals.h
Int_t
int Int_t
kFALSE
constexpr Bool_t kFALSE
Double_t
double Double_t
kTRUE
constexpr Bool_t kTRUE
Option_t
const char Option_t
gSystem
R__EXTERN TSystem * gSystem
BmnGlobalTrack
BmnGlobalTrack.h.
Definition
BmnGlobalTrack.h:14
BmnHit::GetModule
Int_t GetModule()
Definition
BmnHit.h:36
BmnHit::GetStation
Short_t GetStation() const
Definition
BmnHit.h:35
BmnResiduals
Definition
BmnResiduals.h:20
BmnSiResiduals::fBranchResiduals
TString fBranchResiduals
Definition
BmnSiResiduals.h:65
BmnSiResiduals::isPrintToFile
Bool_t isPrintToFile
Definition
BmnSiResiduals.h:79
BmnSiResiduals::fSiResiduals
TClonesArray * fSiResiduals
Definition
BmnSiResiduals.h:73
BmnSiResiduals::fFairEventHeader
FairEventHeader * fFairEventHeader
Definition
BmnSiResiduals.h:75
BmnSiResiduals::BmnSiResiduals
BmnSiResiduals()
Definition
BmnSiResiduals.h:30
BmnSiResiduals::fNumber
Int_t fNumber
Definition
BmnSiResiduals.h:55
BmnSiResiduals::isField
Bool_t isField
Definition
BmnSiResiduals.h:59
BmnSiResiduals::fSiHits
TClonesArray * fSiHits
Definition
BmnSiResiduals.h:71
BmnSiResiduals::fGlobalTracks
TClonesArray * fGlobalTracks
Definition
BmnSiResiduals.h:68
BmnSiResiduals::fBranchFairEventHeader
TString fBranchFairEventHeader
Definition
BmnSiResiduals.h:66
BmnSiResiduals::fDebug
Bool_t fDebug
Definition
BmnSiResiduals.h:57
BmnSiResiduals::Finish
virtual void Finish()
Definition
BmnSiResiduals.cxx:30
BmnSiResiduals::outRes
FILE * outRes
Definition
BmnSiResiduals.h:81
BmnSiResiduals::isMergedDigits
Bool_t isMergedDigits
Definition
BmnSiResiduals.h:80
BmnSiResiduals::fBranchGlobalTracks
TString fBranchGlobalTracks
Definition
BmnSiResiduals.h:63
BmnSiResiduals::fBranchSiHits
TString fBranchSiHits
Definition
BmnSiResiduals.h:61
BmnSiResiduals::Init
virtual InitStatus Init()
Definition
BmnSiResiduals.cxx:35
BmnSiResiduals::Exec
virtual void Exec(Option_t *opt)
Definition
BmnSiResiduals.cxx:50
BmnSiResiduals::fDetector
BmnSiliconStationSet * fDetector
Definition
BmnSiResiduals.h:77
BmnSiResiduals::fPeriod
Int_t fPeriod
Definition
BmnSiResiduals.h:54
BmnSiResiduals::Residuals
void Residuals()
Definition
BmnSiResiduals.cxx:57
BmnSiliconHit
Definition
BmnSiliconHit.h:9
BmnSiliconStationSet
Definition
BmnSiliconStationSet.h:14
BmnTrack::GetParamFirst
FairTrackParam * GetParamFirst()
Definition
BmnTrack.h:63
FairEventHeader
TClonesArray
TString
TString::Contains
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
TMath::Abs
Double_t Abs(Double_t d)
alignment
BmnSiResiduals.cxx
Generated on
for BmnRoot by
1.17.0