8isMergedDigits(kFALSE) {
12 if (Abs(fieldScale) > DBL_EPSILON)
15 TString gPathSiliconConfig = gSystem->Getenv(
"VMCWORKDIR");
16 gPathSiliconConfig +=
"/parameters/silicon/XMLConfigs/";
19 TString
config = (fPeriod == 6) ?
"SiliconRunSpring2017.xml" : (fPeriod == 7) ?
"SiliconRunSpring2018.xml" :
"";
23 fBranchSiHits =
"BmnSiliconHit";
24 fBranchGlobalTracks =
"BmnGlobalTrack";
25 fBranchResiduals =
"BmnResiduals";
26 fBranchFairEventHeader =
"EventHeader.";
34 FairRootManager* ioman = FairRootManager::Instance();
36 fSiHits = (TClonesArray*) ioman->GetObject(fBranchSiHits.Data());
37 fGlobalTracks = (TClonesArray*) ioman->GetObject(fBranchGlobalTracks.Data());
38 fFairEventHeader = (FairEventHeader*) ioman->GetObject(fBranchFairEventHeader.Data());
40 fSiResiduals =
new TClonesArray(fBranchResiduals.Data());
42 ioman->Register(
"BmnSiResiduals",
"RESID", fSiResiduals, kTRUE);
43 if (TString(ioman->GetInFile()->GetName()).Contains(
"merge"))
44 isMergedDigits = kTRUE;
50 fSiResiduals->Delete();
54void BmnSiResiduals::Residuals() {
55 for (Int_t iGlobTrack = 0; iGlobTrack < fGlobalTracks->GetEntriesFast(); iGlobTrack++) {
68 vector <Int_t> silIndices = glTrack->GetSilHitIndices();
69 if (silIndices.size() == 0)
72 for (Int_t iHitIdx = 0; iHitIdx < silIndices.size(); iHitIdx++) {
73 Double_t xRes = 0., yRes = 0.;
75 Double_t x = hit->GetX();
76 Double_t y = hit->GetY();
77 Double_t z = hit->GetZ();
83 xRes = x - (X0 + Tx * (z - Z0));
84 yRes = y - (Y0 + Ty * (z - Z0));
87 BmnResiduals* resid =
new((*fSiResiduals)[fSiResiduals->GetEntriesFast()])
BmnResiduals(stat, mod, xRes, yRes, 0., isField);
88 resid->SetTrackId(iGlobTrack);
89 resid->SetHitId(silIndices.at(iHitIdx));
Short_t GetStation() const
virtual InitStatus Init()
virtual void Exec(Option_t *opt)
FairTrackParam * GetParamFirst()