1 #include "ToFCorrection.hxx" 2 #include "VersioningUtils.hxx" 3 #include "ND280AnalysisUtils.hxx" 5 #include "Parameters.hxx" 12 _RandomGenerator = NULL;
14 InitializeRandomGenerator();
17 _P0D_FGD1_ToF_MC_TrueFwd_Track_Mean = (Float_t)ND::params().GetParameterD(
"highlandCorrections.ToF.P0D_FGD1_MC_TrueFwd_Track_Mean");
18 _P0D_FGD1_ToF_MC_TrueFwd_Track_Sigma = (Float_t)ND::params().GetParameterD(
"highlandCorrections.ToF.P0D_FGD1_MC_TrueFwd_Track_Sigma");
19 _P0D_FGD1_ToF_MC_TrueBwd_Track_Mean = (Float_t)ND::params().GetParameterD(
"highlandCorrections.ToF.P0D_FGD1_MC_TrueBwd_Track_Mean");
20 _P0D_FGD1_ToF_MC_TrueBwd_Track_Sigma = (Float_t)ND::params().GetParameterD(
"highlandCorrections.ToF.P0D_FGD1_MC_TrueBwd_Track_Sigma");
21 _P0D_FGD1_ToF_Sand_Track_Mean = (Float_t)ND::params().GetParameterD(
"highlandCorrections.ToF.P0D_FGD1_Sand_Track_Mean");
22 _P0D_FGD1_ToF_Sand_Track_Sigma = (Float_t)ND::params().GetParameterD(
"highlandCorrections.ToF.P0D_FGD1_Sand_Track_Sigma");
24 _FGD1_FGD2_ToF_MC_TrueFwd_Mean = (Float_t)ND::params().GetParameterD(
"highlandCorrections.ToF.FGD1_FGD2_MC_TrueFwd_Mean");
25 _FGD1_FGD2_ToF_MC_TrueFwd_Sigma = (Float_t)ND::params().GetParameterD(
"highlandCorrections.ToF.FGD1_FGD2_MC_TrueFwd_Sigma");
26 _FGD1_FGD2_ToF_MC_TrueBwd_Mean = (Float_t)ND::params().GetParameterD(
"highlandCorrections.ToF.FGD1_FGD2_MC_TrueBwd_Mean");
27 _FGD1_FGD2_ToF_MC_TrueBwd_Sigma = (Float_t)ND::params().GetParameterD(
"highlandCorrections.ToF.FGD1_FGD2_MC_TrueBwd_Sigma");
28 _FGD1_FGD2_ToF_Sand_Mean = (Float_t)ND::params().GetParameterD(
"highlandCorrections.ToF.FGD1_FGD2_Sand_Mean");
29 _FGD1_FGD2_ToF_Sand_Sigma = (Float_t)ND::params().GetParameterD(
"highlandCorrections.ToF.FGD1_FGD2_Sand_Sigma");
31 _ECal_FGD1_ToF_MC_LAStartFgd_TrueFwd_Shower_Mean = (Float_t)ND::params().GetParameterD(
"highlandCorrections.ToF.ECal_FGD1_MC_LAStartFgd_TrueFwd_Shower_Mean");
32 _ECal_FGD1_ToF_MC_LAStartFgd_TrueFwd_Shower_Sigma = (Float_t)ND::params().GetParameterD(
"highlandCorrections.ToF.ECal_FGD1_MC_LAStartFgd_TrueFwd_Shower_Sigma");
33 _ECal_FGD1_ToF_MC_LAStartFgd_TrueBwd_Shower_Mean = (Float_t)ND::params().GetParameterD(
"highlandCorrections.ToF.ECal_FGD1_MC_LAStartFgd_TrueBwd_Shower_Mean");
34 _ECal_FGD1_ToF_MC_LAStartFgd_TrueBwd_Shower_Sigma = (Float_t)ND::params().GetParameterD(
"highlandCorrections.ToF.ECal_FGD1_MC_LAStartFgd_TrueBwd_Shower_Sigma");
35 _ECal_FGD1_ToF_MC_LAStartFgd_TrueFwd_Track_Mean = (Float_t)ND::params().GetParameterD(
"highlandCorrections.ToF.ECal_FGD1_MC_LAStartFgd_TrueFwd_Track_Mean");
36 _ECal_FGD1_ToF_MC_LAStartFgd_TrueFwd_Track_Sigma = (Float_t)ND::params().GetParameterD(
"highlandCorrections.ToF.ECal_FGD1_MC_LAStartFgd_TrueFwd_Track_Sigma");
37 _ECal_FGD1_ToF_MC_LAStartFgd_TrueBwd_Track_Mean = (Float_t)ND::params().GetParameterD(
"highlandCorrections.ToF.ECal_FGD1_MC_LAStartFgd_TrueBwd_Track_Mean");
38 _ECal_FGD1_ToF_MC_LAStartFgd_TrueBwd_Track_Sigma = (Float_t)ND::params().GetParameterD(
"highlandCorrections.ToF.ECal_FGD1_MC_LAStartFgd_TrueBwd_Track_Sigma");
39 _ECal_FGD1_ToF_Sand_LAStartFgd_Shower_Mean = (Float_t)ND::params().GetParameterD(
"highlandCorrections.ToF.ECal_FGD1_Sand_LAStartFgd_Shower_Mean");
40 _ECal_FGD1_ToF_Sand_LAStartFgd_Shower_Sigma = (Float_t)ND::params().GetParameterD(
"highlandCorrections.ToF.ECal_FGD1_Sand_LAStartFgd_Shower_Sigma");
41 _ECal_FGD1_ToF_Sand_LAStartFgd_Track_Mean = (Float_t)ND::params().GetParameterD(
"highlandCorrections.ToF.ECal_FGD1_Sand_LAStartFgd_Track_Mean");
42 _ECal_FGD1_ToF_Sand_LAStartFgd_Track_Sigma = (Float_t)ND::params().GetParameterD(
"highlandCorrections.ToF.ECal_FGD1_Sand_LAStartFgd_Track_Sigma");
44 _ECal_FGD1_ToF_MC_LAEndFgd_TrueFwd_Shower_Mean = (Float_t)ND::params().GetParameterD(
"highlandCorrections.ToF.ECal_FGD1_MC_LAEndFgd_TrueFwd_Shower_Mean");
45 _ECal_FGD1_ToF_MC_LAEndFgd_TrueFwd_Shower_Sigma = (Float_t)ND::params().GetParameterD(
"highlandCorrections.ToF.ECal_FGD1_MC_LAEndFgd_TrueFwd_Shower_Sigma");
46 _ECal_FGD1_ToF_MC_LAEndFgd_TrueBwd_Shower_Mean = (Float_t)ND::params().GetParameterD(
"highlandCorrections.ToF.ECal_FGD1_MC_LAEndFgd_TrueBwd_Shower_Mean");
47 _ECal_FGD1_ToF_MC_LAEndFgd_TrueBwd_Shower_Sigma = (Float_t)ND::params().GetParameterD(
"highlandCorrections.ToF.ECal_FGD1_MC_LAEndFgd_TrueBwd_Shower_Sigma");
48 _ECal_FGD1_ToF_MC_LAEndFgd_TrueFwd_Track_Mean = (Float_t)ND::params().GetParameterD(
"highlandCorrections.ToF.ECal_FGD1_MC_LAEndFgd_TrueFwd_Track_Mean");
49 _ECal_FGD1_ToF_MC_LAEndFgd_TrueFwd_Track_Sigma = (Float_t)ND::params().GetParameterD(
"highlandCorrections.ToF.ECal_FGD1_MC_LAEndFgd_TrueFwd_Track_Sigma");
50 _ECal_FGD1_ToF_MC_LAEndFgd_TrueBwd_Track_Mean = (Float_t)ND::params().GetParameterD(
"highlandCorrections.ToF.ECal_FGD1_MC_LAEndFgd_TrueBwd_Track_Mean");
51 _ECal_FGD1_ToF_MC_LAEndFgd_TrueBwd_Track_Sigma = (Float_t)ND::params().GetParameterD(
"highlandCorrections.ToF.ECal_FGD1_MC_LAEndFgd_TrueBwd_Track_Sigma");
53 _ECal_FGD1_ToF_MC_HAStartFgd_TrueFwd_Shower_Mean = (Float_t)ND::params().GetParameterD(
"highlandCorrections.ToF.ECal_FGD1_MC_HAStartFgd_TrueFwd_Shower_Mean");
54 _ECal_FGD1_ToF_MC_HAStartFgd_TrueFwd_Shower_Sigma = (Float_t)ND::params().GetParameterD(
"highlandCorrections.ToF.ECal_FGD1_MC_HAStartFgd_TrueFwd_Shower_Sigma");
55 _ECal_FGD1_ToF_MC_HAStartFgd_TrueBwd_Shower_Mean = (Float_t)ND::params().GetParameterD(
"highlandCorrections.ToF.ECal_FGD1_MC_HAStartFgd_TrueBwd_Shower_Mean");
56 _ECal_FGD1_ToF_MC_HAStartFgd_TrueBwd_Shower_Sigma = (Float_t)ND::params().GetParameterD(
"highlandCorrections.ToF.ECal_FGD1_MC_HAStartFgd_TrueBwd_Shower_Sigma");
57 _ECal_FGD1_ToF_MC_HAStartFgd_TrueFwd_Track_Mean = (Float_t)ND::params().GetParameterD(
"highlandCorrections.ToF.ECal_FGD1_MC_HAStartFgd_TrueFwd_Track_Mean");
58 _ECal_FGD1_ToF_MC_HAStartFgd_TrueFwd_Track_Sigma = (Float_t)ND::params().GetParameterD(
"highlandCorrections.ToF.ECal_FGD1_MC_HAStartFgd_TrueFwd_Track_Sigma");
59 _ECal_FGD1_ToF_MC_HAStartFgd_TrueBwd_Track_Mean = (Float_t)ND::params().GetParameterD(
"highlandCorrections.ToF.ECal_FGD1_MC_HAStartFgd_TrueBwd_Track_Mean");
60 _ECal_FGD1_ToF_MC_HAStartFgd_TrueBwd_Track_Sigma = (Float_t)ND::params().GetParameterD(
"highlandCorrections.ToF.ECal_FGD1_MC_HAStartFgd_TrueBwd_Track_Sigma");
61 _ECal_FGD1_ToF_Sand_HAStartFgd_Shower_Mean = (Float_t)ND::params().GetParameterD(
"highlandCorrections.ToF.ECal_FGD1_Sand_HAStartFgd_Shower_Mean");
62 _ECal_FGD1_ToF_Sand_HAStartFgd_Shower_Sigma = (Float_t)ND::params().GetParameterD(
"highlandCorrections.ToF.ECal_FGD1_Sand_HAStartFgd_Shower_Sigma");
63 _ECal_FGD1_ToF_Sand_HAStartFgd_Track_Mean = (Float_t)ND::params().GetParameterD(
"highlandCorrections.ToF.ECal_FGD1_Sand_HAStartFgd_Track_Mean");
64 _ECal_FGD1_ToF_Sand_HAStartFgd_Track_Sigma = (Float_t)ND::params().GetParameterD(
"highlandCorrections.ToF.ECal_FGD1_Sand_HAStartFgd_Track_Sigma");
66 _ECal_FGD1_ToF_MC_HAEndFgd_TrueFwd_Shower_Mean = (Float_t)ND::params().GetParameterD(
"highlandCorrections.ToF.ECal_FGD1_MC_HAEndFgd_TrueFwd_Shower_Mean");
67 _ECal_FGD1_ToF_MC_HAEndFgd_TrueFwd_Shower_Sigma = (Float_t)ND::params().GetParameterD(
"highlandCorrections.ToF.ECal_FGD1_MC_HAEndFgd_TrueFwd_Shower_Sigma");
68 _ECal_FGD1_ToF_MC_HAEndFgd_TrueBwd_Shower_Mean = (Float_t)ND::params().GetParameterD(
"highlandCorrections.ToF.ECal_FGD1_MC_HAEndFgd_TrueBwd_Shower_Mean");
69 _ECal_FGD1_ToF_MC_HAEndFgd_TrueBwd_Shower_Sigma = (Float_t)ND::params().GetParameterD(
"highlandCorrections.ToF.ECal_FGD1_MC_HAEndFgd_TrueBwd_Shower_Sigma");
70 _ECal_FGD1_ToF_MC_HAEndFgd_TrueFwd_Track_Mean = (Float_t)ND::params().GetParameterD(
"highlandCorrections.ToF.ECal_FGD1_MC_HAEndFgd_TrueFwd_Track_Mean");
71 _ECal_FGD1_ToF_MC_HAEndFgd_TrueFwd_Track_Sigma = (Float_t)ND::params().GetParameterD(
"highlandCorrections.ToF.ECal_FGD1_MC_HAEndFgd_TrueFwd_Track_Sigma");
72 _ECal_FGD1_ToF_MC_HAEndFgd_TrueBwd_Track_Mean = (Float_t)ND::params().GetParameterD(
"highlandCorrections.ToF.ECal_FGD1_MC_HAEndFgd_TrueBwd_Track_Mean");
73 _ECal_FGD1_ToF_MC_HAEndFgd_TrueBwd_Track_Sigma = (Float_t)ND::params().GetParameterD(
"highlandCorrections.ToF.ECal_FGD1_MC_HAEndFgd_TrueBwd_Track_Sigma");
74 _ECal_FGD1_ToF_Sand_HAEndFgd_Shower_Mean = (Float_t)ND::params().GetParameterD(
"highlandCorrections.ToF.ECal_FGD1_Sand_HAEndFgd_Shower_Mean");
75 _ECal_FGD1_ToF_Sand_HAEndFgd_Shower_Sigma = (Float_t)ND::params().GetParameterD(
"highlandCorrections.ToF.ECal_FGD1_Sand_HAEndFgd_Shower_Sigma");
76 _ECal_FGD1_ToF_Sand_HAEndFgd_Track_Mean = (Float_t)ND::params().GetParameterD(
"highlandCorrections.ToF.ECal_FGD1_Sand_HAEndFgd_Track_Mean");
77 _ECal_FGD1_ToF_Sand_HAEndFgd_Track_Sigma = (Float_t)ND::params().GetParameterD(
"highlandCorrections.ToF.ECal_FGD1_Sand_HAEndFgd_Track_Sigma");
79 _apply_ToF_based_Flip = (bool)ND::params().GetParameterI(
"psycheSystematics.ToF.ApplyToFFlip");
84 ToFCorrection::~ToFCorrection() {
87 delete _RandomGenerator;
91 void ToFCorrection::InitializeRandomGenerator(){
93 if (!_RandomGenerator){
94 _RandomGenerator =
new TRandom3();
95 SetRandomSeed(ND::params().GetParameterI(
"highlandCorrections.ToF.RandomSeed"));
103 if (_RandomGenerator)
104 return _RandomGenerator->GetSeed();
111 if (_RandomGenerator)
112 _RandomGenerator->SetSeed(seed);
126 if (!isMC && !isSandMC)
return;
128 for (UInt_t i = 0; i < spill.
Bunches.size(); i++) {
130 for (UInt_t j = 0; j < bunch->
Particles.size(); j++) {
132 if (!track)
continue;
136 if (topo == ToFSenseCorrector::kToFInvalid)
continue;
138 ApplyToFSmear(*track, topo, isSandMC);
140 if (!_apply_ToF_based_Flip)
continue;
156 if(!trueTrack)
return;
165 if(topo == ToFSenseCorrector::kToFTopo_FGD1FGD2)
166 track.
ToF.FGD1_FGD2 += TrueIsFwd ? _RandomGenerator->Gaus(_FGD1_FGD2_ToF_MC_TrueFwd_Mean,
167 TMath::Sqrt(_FGD1_FGD2_ToF_MC_TrueFwd_Sigma)):
168 _RandomGenerator->Gaus(_FGD1_FGD2_ToF_MC_TrueBwd_Mean, TMath::Sqrt(_FGD1_FGD2_ToF_MC_TrueBwd_Sigma));
171 if(topo == ToFSenseCorrector::kToFTopo_FGD1P0D_Track)
172 track.
ToF.P0D_FGD1 += TrueIsFwd ? _RandomGenerator->Gaus(_P0D_FGD1_ToF_MC_TrueFwd_Track_Mean,
173 TMath::Sqrt(_P0D_FGD1_ToF_MC_TrueFwd_Track_Sigma) ):
174 _RandomGenerator->Gaus(_P0D_FGD1_ToF_MC_TrueBwd_Track_Mean, TMath::Sqrt(_P0D_FGD1_ToF_MC_TrueBwd_Track_Sigma));
177 if(topo == ToFSenseCorrector::kToFTopo_FGD1ECAL_LAStartFgd_Track)
178 track.
ToF.ECal_FGD1 += TrueIsFwd ? _RandomGenerator->Gaus(_ECal_FGD1_ToF_MC_LAStartFgd_TrueFwd_Track_Mean,
179 TMath::Sqrt(_ECal_FGD1_ToF_MC_LAStartFgd_TrueFwd_Track_Sigma)):
180 _RandomGenerator->Gaus(_ECal_FGD1_ToF_MC_LAStartFgd_TrueBwd_Track_Mean,
181 TMath::Sqrt(_ECal_FGD1_ToF_MC_LAStartFgd_TrueBwd_Track_Sigma));
182 if(topo == ToFSenseCorrector::kToFTopo_FGD1ECAL_LAStartFgd_Shower)
183 track.
ToF.ECal_FGD1 += TrueIsFwd ? _RandomGenerator->Gaus(_ECal_FGD1_ToF_MC_LAStartFgd_TrueFwd_Shower_Mean,
184 TMath::Sqrt(_ECal_FGD1_ToF_MC_LAStartFgd_TrueFwd_Shower_Sigma)):
185 _RandomGenerator->Gaus(_ECal_FGD1_ToF_MC_LAStartFgd_TrueBwd_Shower_Mean,
186 TMath::Sqrt(_ECal_FGD1_ToF_MC_LAStartFgd_TrueBwd_Shower_Sigma));
187 if(topo == ToFSenseCorrector::kToFTopo_FGD1ECAL_LAEndFgd_Track)
188 track.
ToF.ECal_FGD1 += TrueIsFwd ? _RandomGenerator->Gaus(_ECal_FGD1_ToF_MC_LAEndFgd_TrueFwd_Track_Mean,
189 TMath::Sqrt(_ECal_FGD1_ToF_MC_LAEndFgd_TrueFwd_Track_Sigma)) :
190 _RandomGenerator->Gaus(_ECal_FGD1_ToF_MC_LAEndFgd_TrueBwd_Track_Mean ,
191 TMath::Sqrt(_ECal_FGD1_ToF_MC_LAEndFgd_TrueBwd_Track_Sigma));
192 if(topo == ToFSenseCorrector::kToFTopo_FGD1ECAL_LAEndFgd_Shower)
193 track.
ToF.ECal_FGD1 += TrueIsFwd ? _RandomGenerator->Gaus(_ECal_FGD1_ToF_MC_LAEndFgd_TrueFwd_Shower_Mean, TMath::Sqrt(_ECal_FGD1_ToF_MC_LAEndFgd_TrueFwd_Shower_Sigma)) : _RandomGenerator->Gaus(_ECal_FGD1_ToF_MC_LAEndFgd_TrueBwd_Shower_Mean , TMath::Sqrt(_ECal_FGD1_ToF_MC_LAEndFgd_TrueBwd_Shower_Sigma));
194 if(topo == ToFSenseCorrector::kToFTopo_FGD1ECAL_HAStartFgd_Track)
195 track.
ToF.ECal_FGD1 += TrueIsFwd ? _RandomGenerator->Gaus(_ECal_FGD1_ToF_MC_HAStartFgd_TrueFwd_Track_Mean, TMath::Sqrt(_ECal_FGD1_ToF_MC_HAStartFgd_TrueFwd_Track_Sigma)) : _RandomGenerator->Gaus(_ECal_FGD1_ToF_MC_HAStartFgd_TrueBwd_Track_Mean , TMath::Sqrt(_ECal_FGD1_ToF_MC_HAStartFgd_TrueBwd_Track_Sigma));
196 if(topo == ToFSenseCorrector::kToFTopo_FGD1ECAL_HAStartFgd_Shower)
197 track.
ToF.ECal_FGD1 += TrueIsFwd ? _RandomGenerator->Gaus(_ECal_FGD1_ToF_MC_HAStartFgd_TrueFwd_Shower_Mean, TMath::Sqrt(_ECal_FGD1_ToF_MC_HAStartFgd_TrueFwd_Shower_Sigma)) : _RandomGenerator->Gaus(_ECal_FGD1_ToF_MC_HAStartFgd_TrueBwd_Shower_Mean , TMath::Sqrt(_ECal_FGD1_ToF_MC_HAStartFgd_TrueBwd_Shower_Sigma));
198 if(topo == ToFSenseCorrector::kToFTopo_FGD1ECAL_HAEndFgd_Track)
199 track.
ToF.ECal_FGD1 += TrueIsFwd ? _RandomGenerator->Gaus(_ECal_FGD1_ToF_MC_HAEndFgd_TrueFwd_Track_Mean, TMath::Sqrt(_ECal_FGD1_ToF_MC_HAEndFgd_TrueFwd_Track_Sigma)) : _RandomGenerator->Gaus(_ECal_FGD1_ToF_MC_HAEndFgd_TrueBwd_Track_Mean , TMath::Sqrt(_ECal_FGD1_ToF_MC_HAEndFgd_TrueBwd_Track_Sigma));
200 if(topo == ToFSenseCorrector::kToFTopo_FGD1ECAL_HAEndFgd_Shower)
201 track.
ToF.ECal_FGD1 += TrueIsFwd ? _RandomGenerator->Gaus(_ECal_FGD1_ToF_MC_HAEndFgd_TrueFwd_Shower_Mean, TMath::Sqrt(_ECal_FGD1_ToF_MC_HAEndFgd_TrueFwd_Shower_Sigma)) : _RandomGenerator->Gaus(_ECal_FGD1_ToF_MC_HAEndFgd_TrueBwd_Shower_Mean , TMath::Sqrt(_ECal_FGD1_ToF_MC_HAEndFgd_TrueBwd_Shower_Sigma));
207 if(topo == ToFSenseCorrector::kToFTopo_FGD1FGD2)
208 track.
ToF.FGD1_FGD2 += _RandomGenerator->Gaus(_FGD1_FGD2_ToF_Sand_Mean , TMath::Sqrt(_FGD1_FGD2_ToF_Sand_Sigma));
211 if(topo == ToFSenseCorrector::kToFTopo_FGD1P0D_Track)
212 track.
ToF.P0D_FGD1 += _RandomGenerator->Gaus(_P0D_FGD1_ToF_Sand_Track_Mean , TMath::Sqrt(_P0D_FGD1_ToF_Sand_Track_Sigma) );
215 if(topo == ToFSenseCorrector::kToFTopo_FGD1ECAL_LAStartFgd_Track)
216 track.
ToF.ECal_FGD1 += _RandomGenerator->Gaus(_ECal_FGD1_ToF_Sand_LAStartFgd_Track_Mean , TMath::Sqrt(_ECal_FGD1_ToF_Sand_LAStartFgd_Track_Sigma));
217 if(topo == ToFSenseCorrector::kToFTopo_FGD1ECAL_LAStartFgd_Shower)
218 track.
ToF.ECal_FGD1 += _RandomGenerator->Gaus(_ECal_FGD1_ToF_Sand_LAStartFgd_Shower_Mean , TMath::Sqrt(_ECal_FGD1_ToF_Sand_LAStartFgd_Shower_Sigma));
219 if(topo == ToFSenseCorrector::kToFTopo_FGD1ECAL_HAStartFgd_Track)
220 track.
ToF.ECal_FGD1 += _RandomGenerator->Gaus(_ECal_FGD1_ToF_Sand_HAStartFgd_Track_Mean , TMath::Sqrt(_ECal_FGD1_ToF_Sand_HAStartFgd_Track_Sigma));
221 if(topo == ToFSenseCorrector::kToFTopo_FGD1ECAL_HAStartFgd_Shower)
222 track.
ToF.ECal_FGD1 += _RandomGenerator->Gaus(_ECal_FGD1_ToF_Sand_HAStartFgd_Shower_Mean , TMath::Sqrt(_ECal_FGD1_ToF_Sand_HAStartFgd_Shower_Sigma));
223 if(topo == ToFSenseCorrector::kToFTopo_FGD1ECAL_HAEndFgd_Track)
224 track.
ToF.ECal_FGD1 += _RandomGenerator->Gaus(_ECal_FGD1_ToF_Sand_HAEndFgd_Track_Mean , TMath::Sqrt(_ECal_FGD1_ToF_Sand_HAEndFgd_Track_Sigma));
225 if(topo == ToFSenseCorrector::kToFTopo_FGD1ECAL_HAEndFgd_Shower)
226 track.
ToF.ECal_FGD1 += _RandomGenerator->Gaus(_ECal_FGD1_ToF_Sand_HAEndFgd_Shower_Mean , TMath::Sqrt(_ECal_FGD1_ToF_Sand_HAEndFgd_Shower_Sigma));
void SetRandomSeed(UInt_t seed)
And change the seed.
Representation of a global track.
static bool IsForward(const AnaTrackB &track)
Check whether a track is forward going.
std::vector< AnaBunchC * > Bunches
The reconstructed objects, split into timing bunches.
void Apply(AnaSpillC &spill)
Apply the correction to all relevant tracks.
AnaToF ToF
Times of flight between pairs of detectors.
All corrections should be registered with the CorrectionManager.
static void FlipTrack(AnaTrackB &track)
Flip a track.
Representation of a true Monte Carlo trajectory/particle.
static ToFTopology GetToFTopology(const AnaTrackB &track)
bool GetIsMC() const
Return whether this spill is from Monte Carlo or not.
UInt_t GetRandomSeed() const
The only thing we allow for the generator is to get the seed.
bool GetIsSandMC() const
Return whether this spill is from Sand Monte Carlo or not.
std::vector< AnaParticleB * > Particles
AnaTrueParticleB * GetTrueParticle() const
Return a casted version of the AnaTrueObject associated.