HighLAND
Public Types | Public Member Functions | Protected Attributes | List of all members
TPCPIDVariation Class Referenceabstract

#include <TPCPIDVariation.hxx>

Inheritance diagram for TPCPIDVariation:
TPCPIDPullMCCorrection TPCPIDSystematics

Public Types

enum  HypEnum {
  kMuon = 0, kElectron, kProton, kPion,
  kKaon, kNPULLS
}
 Enum for particle hypothesis.
 

Public Member Functions

 TPCPIDVariation ()
 Instantiate the PID variation,.
 
virtual void ApplyVariation (AnaTrackB *track, const ToyExperiment &exp)
 Apply variation for a track, the most general case given a certain ToyExperiment.
 
virtual bool GetVariation (const AnaTPCParticleB &tpcTrack, Float_t &mean_var, Float_t &sigma_var, const AnaTrackB &track, const ToyExperiment &exp)=0
 
virtual bool GetPIDParams (const AnaTPCParticleB &tpcTrack, Float_t &dEdxExp, Float_t &dEdxSigma, const AnaTrackB &track)
 

Protected Attributes

BinnedParams_mean [kNPULLS]
 
BinnedParams_sigma [kNPULLS]
 

Detailed Description

This variation that smears that the measured dEdXMeas (CT) for the TPC segments of the track The smearing is done assuming the variation based on pull parameters

Definition at line 12 of file TPCPIDVariation.hxx.

Member Function Documentation

§ GetPIDParams()

bool TPCPIDVariation::GetPIDParams ( const AnaTPCParticleB tpcTrack,
Float_t &  dEdxExp,
Float_t &  dEdxSigma,
const AnaTrackB track 
)
virtual

Get the expected dEdX and error, keep it virtual so that one can easily add new hypothesis, e.g. kaons Global track is also provided so that one can use it for example to retrieve the PID info

Definition at line 89 of file TPCPIDVariation.cxx.

91  {
92  //**************************************************
93 
94  // Need true particle
95  if (!track.GetTrueParticle()) return false;
96 
97  // Get the expected dEdx and error on the dEdx depending on the true particle of the
98  // (global) track
99 
100  Int_t PDG = abs(track.GetTrueParticle()->PDG);
101 
102  switch (PDG){
103  case 13: // Muon
104  dEdxExp = (Float_t)tpcTrack.dEdxexpMuon;
105  dEdxSigma = (Float_t)tpcTrack.dEdxSigmaMuon;
106  break;
107  case 211: // Pion
108  dEdxExp = (Float_t)tpcTrack.dEdxexpPion;
109  dEdxSigma = (Float_t)tpcTrack.dEdxSigmaPion;
110  break;
111  case 11: // Electron
112  dEdxExp = (Float_t)tpcTrack.dEdxexpEle;
113  dEdxSigma = (Float_t)tpcTrack.dEdxSigmaEle;
114  break;
115  case 2212: // Proton
116  dEdxExp = (Float_t)tpcTrack.dEdxexpProton;
117  dEdxSigma = (Float_t)tpcTrack.dEdxSigmaProton;
118  break;
119  default:
120  return false;
121  break;
122  }
123 
124  // Is it needed?
125  if (dEdxSigma == -99999 || dEdxExp ==-99999) return false;
126  if (dEdxSigma == -0xABCDEF || dEdxExp ==-0xABCDEF) return false;
127 
128  return true;
129 
130 }
Float_t dEdxexpMuon
Expected dE/dx for a muon, based on the reconstructed momentum.
Float_t dEdxexpProton
Expected dE/dx for a proton, based on the reconstructed momentum.
Float_t dEdxSigmaProton
Expected error on the dE/dx measurement, for the proton hypothesis.
Float_t dEdxexpPion
Expected dE/dx for a pion, based on the reconstructed momentum.
Float_t dEdxexpEle
Expected dE/dx for an electron, based on the reconstructed momentum.
Float_t dEdxSigmaEle
Expected error on the dE/dx measurement, for the electron hypothesis.
Int_t PDG
The PDG code of this particle.
Float_t dEdxSigmaMuon
Expected error on the dE/dx measurement, for the muon hypothesis.
Float_t dEdxSigmaPion
Expected error on the dE/dx measurement, for the pion hypothesis.
AnaTrueParticleB * GetTrueParticle() const
Return a casted version of the AnaTrueObject associated.

§ GetVariation()

virtual bool TPCPIDVariation::GetVariation ( const AnaTPCParticleB tpcTrack,
Float_t &  mean_var,
Float_t &  sigma_var,
const AnaTrackB track,
const ToyExperiment exp 
)
pure virtual

Get the variation, two params: one for mean and one for sigma Sigma_var: is the param to control how one wants to scale the pull sigma: (pull_sigma_new/pull_sigma_old) Mean_var: the shift one wants to apply to pull mean: pull_mean_new - pull_mean_old In principle should be enough to have it for the TPC segment but in the "regular" TPC PID syst code the corresponding truth track and momentum are retrived from the global track so keep it as a parameter as well Toy experiment is used to retrieve the variation

Implemented in TPCPIDPullMCCorrection, and TPCPIDSystematics.

Member Data Documentation

§ _mean

BinnedParams* TPCPIDVariation::_mean[kNPULLS]
protected

Expect that the derived classes should use some data to store the params for the variations so keep the data-storage here

Definition at line 66 of file TPCPIDVariation.hxx.


The documentation for this class was generated from the following files: