2 #include "TPCPIDPullMCCorrection.hxx" 3 #include "HighlandAnalysisUtils.hxx" 4 #include "VersioningUtils.hxx" 10 TPCPIDPullMCCorrection::TPCPIDPullMCCorrection(){
15 _sigma[TPCPIDVariation::kMuon] =
16 new BinnedParams(std::string(getenv(
"PSYCHESYSTEMATICSROOT")) +
"/data",
"TPCPIDMuonSigRatio", BinnedParams::k2D_SYMMETRIC, versionUtils::Extension());
17 _sigma[TPCPIDVariation::kElectron] =
18 new BinnedParams(std::string(getenv(
"PSYCHESYSTEMATICSROOT")) +
"/data",
"TPCPIDEleSigRatio", BinnedParams::k2D_SYMMETRIC, versionUtils::Extension());
19 _sigma[TPCPIDVariation::kProton] =
20 new BinnedParams(std::string(getenv(
"PSYCHESYSTEMATICSROOT")) +
"/data",
"TPCPIDProtonSigRatio", BinnedParams::k2D_SYMMETRIC, versionUtils::Extension());
21 _mean[TPCPIDVariation::kMuon] =
22 new BinnedParams(std::string(getenv(
"PSYCHESYSTEMATICSROOT")) +
"/data",
"TPCPIDMuonMeanDiff", BinnedParams::k2D_SYMMETRIC, versionUtils::Extension());
23 _mean[TPCPIDVariation::kElectron] =
24 new BinnedParams(std::string(getenv(
"PSYCHESYSTEMATICSROOT")) +
"/data",
"TPCPIDEleMeanDiff", BinnedParams::k2D_SYMMETRIC, versionUtils::Extension());
25 _mean[TPCPIDVariation::kProton] =
26 new BinnedParams(std::string(getenv(
"PSYCHESYSTEMATICSROOT")) +
"/data",
"TPCPIDProtonMeanDiff", BinnedParams::k2D_SYMMETRIC, versionUtils::Extension());
36 std::cout <<
" TPCPIDPullMCCorrection::Apply(): IsMC " << spill.
GetIsMC() << std::endl;
45 for (
unsigned int i = 0; i < spill.
Bunches.size(); i++) {
52 for (Int_t j = 0; j < nTPC; j++)
58 std::cout <<
"TPCPIDPullMCCorrection::Apply() end " << std::endl;
66 Float_t& mean_var, Float_t& sigma_var,
86 part = TPCPIDVariation::kMuon;
89 part = TPCPIDVariation::kElectron;
92 part = TPCPIDVariation::kProton;
99 if (!
_mean[part] || !_sigma[part])
return false;
102 Float_t mean_err, sigma_err;
105 if (!
_mean[part]->GetBinValues(track.
Momentum, (Float_t) tpc, mean_var, mean_err))
return false;
106 if (!_sigma[part]->GetBinValues(track.
Momentum,(Float_t) tpc, sigma_var, sigma_err))
return false;
virtual void ApplyVariation(AnaTrackB *track, const ToyExperiment &exp)
Apply variation for a track, the most general case given a certain ToyExperiment. ...
std::vector< AnaBunchC * > Bunches
The reconstructed objects, split into timing bunches.
void Apply(AnaSpillC &spill)
Apply the correction to all the relevant objects: TPC constituent of an AnaTrack. ...
BinnedParams * _mean[kNPULLS]
bool GetVariation(const AnaTPCParticleB &tpcTrack, Float_t &mean_var, Float_t &sigma_var, const AnaTrackB &track)
Get the variation for a given TPC object.
HypEnum
Enum for particle hypothesis.
Float_t Momentum
The reconstructed momentum of the particle, at the start position.
Int_t PDG
The PDG code of this particle.
bool GetIsMC() const
Return whether this spill is from Monte Carlo or not.
Representation of a global track.
Representation of a TPC segment of a global track.
ToyExperiment _exp
Some default toy experiment, not used at the moment.
static int GetTPC(unsigned long BitField)
int GetAllTracksUsingDet(const AnaBunchB &bunch, SubDetId::SubDetEnum det, AnaTrackB *selTracks[])
AnaTrueParticleB * GetTrueParticle() const
Return a casted version of the AnaTrueObject associated.