BOSS 7.0.9
BESIII Offline Software System
Loading...
Searching...
No Matches
ParticleIDBase Class Referenceabstract

#include <ParticleIDBase.h>

+ Inheritance diagram for ParticleIDBase:

Public Member Functions

 ParticleIDBase ()
 
virtual ~ParticleIDBase ()
 
virtual void init ()=0
 
virtual void calculate ()=0
 
virtual bool IsPidInfoValid () const =0
 
virtual double chi (int n) const =0
 
virtual double prob (int n) const =0
 
virtual int ndof () const =0
 
EvtRecTrackPidTrk () const
 
void setRecTrack (EvtRecTrack *trk)
 
double chiMinCut () const
 
void setChiMinCut (const double chi=4)
 
double chiMaxCut () const
 
void setChiMaxCut (const double chi=6)
 
double pdfMinSigmaCut () const
 
void setPdfMinSigmaCut (const double pdf=4)
 
double getRunNo () const
 
void setRunNo (const double runh=8093)
 
double p ()
 
double pt ()
 
double charge ()
 
double xmass (int n)
 
double velc ()
 
double probCalculate (double chi2, int n)
 
double pdfCalculate (double offset, double sigma)
 
double interpolation (double *x, double *y, double x1)
 
double pol2 (double x, double *par)
 
double pol3 (double x, double *par)
 
double pol4 (double x, double *par)
 
int useDedx () const
 
int useTof () const
 
int useTof1 () const
 
int useTof2 () const
 
int useTofE () const
 
int useTofQ () const
 
int useTofC () const
 
int useTofCorr () const
 
int useEmc () const
 
int useMuc () const
 
int onlyPionKaon () const
 
int onlyPionKaonProton () const
 
int onlyPionKaonElectron () const
 
int all () const
 
int onlyElectron () const
 
int onlyMuon () const
 
int onlyPion () const
 
int onlyKaon () const
 
int onlyProton () const
 
int methodLikelihood () const
 
int methodProbability () const
 
int methodNeuronNetwork () const
 
int dedxValid () const
 
int tofValid () const
 
int tofeValid () const
 
int tofqValid () const
 
int tofcValid () const
 
int tofcorrValid () const
 
int emcValid () const
 
int mucValid () const
 
void set_path (const char *s_path=0)
 
void set_path (std::string s_path)
 

Protected Member Functions

virtual int particleIDCalculation ()=0
 
virtual int LikelihoodCalculation ()=0
 

Static Protected Attributes

static std::string path = ""
 

Detailed Description

Definition at line 21 of file ParticleIDBase.h.

Constructor & Destructor Documentation

◆ ParticleIDBase()

ParticleIDBase::ParticleIDBase ( )

Definition at line 43 of file ParticleIDBase.cxx.

44{
45 m_trk = 0;
46 m_chimin_cut = 4;
47 m_chimax_cut = 6;
48 m_pdfsigmamin_cut=99;
49
50#ifndef BEAN
51 if( path.empty() ) set_path(0);
52#endif
53}
static std::string path
void set_path(const char *s_path=0)

◆ ~ParticleIDBase()

virtual ParticleIDBase::~ParticleIDBase ( )
inlinevirtual

Definition at line 26 of file ParticleIDBase.h.

26{;}

Member Function Documentation

◆ all()

int ParticleIDBase::all ( ) const
inline

Definition at line 79 of file ParticleIDBase.h.

79{return (IDENTIFY_ELECTRON | IDENTIFY_PION | IDENTIFY_KAON | IDENTIFY_PROTON);}

◆ calculate()

virtual void ParticleIDBase::calculate ( )
pure virtual

◆ charge()

double ParticleIDBase::charge ( )

Definition at line 116 of file ParticleIDBase.cxx.

116 {
117 double val = 999;
118 if(!m_trk) return val;
119 if(!m_trk->isMdcTrackValid()) return val;
120 RecMdcTrack *mdcTrk = m_trk->mdcTrack();
121 val = mdcTrk->charge() + 0.0;
122 return val;
123}
const int charge() const
Definition: DstMdcTrack.h:53
bool isMdcTrackValid()
Definition: EvtRecTrack.h:43
RecMdcTrack * mdcTrack()
Definition: EvtRecTrack.h:53

Referenced by DedxPID::CorrDedx(), TofCorrPID::offsetTof(), TofEPID::offsetTofE(), DedxPID::particleIDCalculation(), Tof1PID::particleIDCalculation(), Tof2PID::particleIDCalculation(), TofCorrPID::particleIDCalculation(), TofCorrPID::sigmaTof(), and TofEPID::sigmaTofE().

◆ chi()

virtual double ParticleIDBase::chi ( int  n) const
pure virtual

◆ chiMaxCut()

double ParticleIDBase::chiMaxCut ( ) const
inline

Definition at line 40 of file ParticleIDBase.h.

40{return m_chimax_cut;}

Referenced by TofCorrPID::correlationCheck(), and TofCorrPID::particleIDCalculation().

◆ chiMinCut()

◆ dedxValid()

int ParticleIDBase::dedxValid ( ) const
inline

Definition at line 91 of file ParticleIDBase.h.

91{return DEDX_VALID;}

◆ emcValid()

int ParticleIDBase::emcValid ( ) const
inline

Definition at line 97 of file ParticleIDBase.h.

97{return EMC_VALID;}

◆ getRunNo()

double ParticleIDBase::getRunNo ( ) const
inline

◆ init()

virtual void ParticleIDBase::init ( )
pure virtual

◆ interpolation()

double ParticleIDBase::interpolation ( double *  x,
double *  y,
double  x1 
)

Definition at line 125 of file ParticleIDBase.cxx.

125 {
126 double c1 = (y[0]-y[1])*(x[1]-x[2])-(x[0]-x[1])*(y[1]-y[2]);
127 double c2 = (x[0]*x[0]-x[1]*x[1])*(x[1]-x[2])-(x[1]*x[1]-x[2]*x[2])*(x[0]-x[1]);
128 double c = c1/c2;
129 double b1 = (y[0]-y[1])*(x[1]*x[1]-x[2]*x[2])-(x[0]*x[0]-x[1]*x[1])*(y[1]-y[2]);
130 double b2 = (x[0]-x[1])*(x[1]*x[1]-x[2]*x[2])-(x[1]-x[2])*(x[0]*x[0]-x[1]*x[1]);
131 double b = b1/b2;
132 double a = y[0] - b*x[0]-c*x[0]*x[0];
133 double y1 = a + b*x1 +c*x1*x1;
134 return y1;
135}
Double_t x[10]
double y[1000]
const double b
Definition: slope.cxx:9

◆ IsPidInfoValid()

virtual bool ParticleIDBase::IsPidInfoValid ( ) const
pure virtual

◆ LikelihoodCalculation()

virtual int ParticleIDBase::LikelihoodCalculation ( )
protectedpure virtual

◆ methodLikelihood()

int ParticleIDBase::methodLikelihood ( ) const
inline

Definition at line 87 of file ParticleIDBase.h.

87{return LIKELIHOOD_PID;}

◆ methodNeuronNetwork()

int ParticleIDBase::methodNeuronNetwork ( ) const
inline

Definition at line 89 of file ParticleIDBase.h.

89{return NEURONNETWORK_PID;}

◆ methodProbability()

◆ mucValid()

int ParticleIDBase::mucValid ( ) const
inline

Definition at line 98 of file ParticleIDBase.h.

98{return MUC_VALID;}

◆ ndof()

virtual int ParticleIDBase::ndof ( ) const
pure virtual

◆ onlyElectron()

◆ onlyKaon()

◆ onlyMuon()

◆ onlyPion()

◆ onlyPionKaon()

int ParticleIDBase::onlyPionKaon ( ) const
inline

Definition at line 76 of file ParticleIDBase.h.

76{return (IDENTIFY_PION | IDENTIFY_KAON);}

◆ onlyPionKaonElectron()

int ParticleIDBase::onlyPionKaonElectron ( ) const
inline

Definition at line 78 of file ParticleIDBase.h.

78{return (IDENTIFY_PION | IDENTIFY_KAON | IDENTIFY_ELECTRON);}

◆ onlyPionKaonProton()

int ParticleIDBase::onlyPionKaonProton ( ) const
inline

Definition at line 77 of file ParticleIDBase.h.

77{return (IDENTIFY_PION | IDENTIFY_KAON | IDENTIFY_PROTON);}

Referenced by DQAJpsi2PPbarAlg::execute(), DQAKsKpi::execute(), DQAKsKpiDEDX::execute(), Single::execute(), Signal::execute(), and TestV::execute().

◆ onlyProton()

◆ p()

double ParticleIDBase::p ( )

Definition at line 100 of file ParticleIDBase.cxx.

100 {
101 double val = 999;
102 if(!m_trk) return val;
103 if(!m_trk->isMdcTrackValid()) return val;
104 RecMdcTrack *mdcTrk = m_trk->mdcTrack();
105 val = mdcTrk->p();
106 return val;
107}
const double p() const
Definition: DstMdcTrack.h:58

Referenced by DedxPID::cal_par(), DedxPID::iterate(), TofCorrPID::particleIDCalculation(), and probCalculate().

◆ particleIDCalculation()

virtual int ParticleIDBase::particleIDCalculation ( )
protectedpure virtual

◆ pdfCalculate()

double ParticleIDBase::pdfCalculate ( double  offset,
double  sigma 
)

Definition at line 91 of file ParticleIDBase.cxx.

91 {
92 // const double pi = 3.141592653589793238;
93 const double pi = M_PI;
94 const double twoPi = 2*pi;
95 double chi2 = -0.5*offset*offset/(sigma*sigma);
96 double pdf = exp(chi2)/(sigma*sqrt(twoPi));
97 return pdf;
98}
TTree * sigma
const double twoPi
Definition: MdcSeg.cxx:33
#define M_PI
Definition: TConstant.h:4
EvtComplex exp(const EvtComplex &c)
const float pi
Definition: vector3.h:133

Referenced by TofCorrPID::correlationCheck(), ParticleID::LikelihoodCalculation(), DedxPID::particleIDCalculation(), Tof1PID::particleIDCalculation(), Tof2PID::particleIDCalculation(), TofCorrPID::particleIDCalculation(), TofCPID::particleIDCalculation(), TofEPID::particleIDCalculation(), and TofPID::particleIDCalculation().

◆ pdfMinSigmaCut()

◆ PidTrk()

◆ pol2()

double ParticleIDBase::pol2 ( double  x,
double *  par 
)

Definition at line 137 of file ParticleIDBase.cxx.

137 {
138 double y=x;
139 // return par[0] + (par[1] * y) +(par[2] * y * y);
140 return par[0] + y*(par[1] + y*(par[2]));
141}

◆ pol3()

double ParticleIDBase::pol3 ( double  x,
double *  par 
)

Definition at line 143 of file ParticleIDBase.cxx.

143 {
144 double y=x;
145 // return par[0] + (par[1] * y) +(par[2] * y * y)+(par[3] * y * y*y);
146 return par[0] + y*(par[1] + y*(par[2] + y*(par[3])));
147}

◆ pol4()

double ParticleIDBase::pol4 ( double  x,
double *  par 
)

Definition at line 149 of file ParticleIDBase.cxx.

149 {
150 double y=x;
151 // return par[0] + (par[1] * y) +(par[2] * y * y)+(par[3] * y * y*y) + (par[4] * y * y*y*y);
152 return par[0] + y*(par[1] + y*(par[2] + y*(par[3] + y*(par[4]))));
153}

◆ prob()

virtual double ParticleIDBase::prob ( int  n) const
pure virtual

◆ probCalculate()

double ParticleIDBase::probCalculate ( double  chi2,
int  n 
)

◆ pt()

double ParticleIDBase::pt ( )

Definition at line 108 of file ParticleIDBase.cxx.

108 {
109 double val = 999;
110 if(!m_trk) return val;
111 if(!m_trk->isMdcTrackValid()) return val;
112 RecMdcTrack *mdcTrk = m_trk->mdcTrack();
113 val = mdcTrk->pxy();
114 return val;
115}
const double pxy() const
Definition: DstMdcTrack.h:54

◆ set_path() [1/2]

void ParticleIDBase::set_path ( const char *  s_path = 0)

Definition at line 55 of file ParticleIDBase.cxx.

56{
57 if ( s_path ) {
58 path = string(s_path);
59 } else {
60 char* env_path = getenv("PARTICLEIDROOT");
61 if ( !env_path ) {
62 cout << " ParticleIDBase::set_path ERROR:"
63 " the environment PARTICLEIDROOT not defined " << endl;
64 exit(1);
65 }
66 path = string(env_path);
67 }
68}

Referenced by ParticleIDBase().

◆ set_path() [2/2]

void ParticleIDBase::set_path ( std::string  s_path)
inline

Definition at line 105 of file ParticleIDBase.h.

105{path = s_path;}

◆ setChiMaxCut()

void ParticleIDBase::setChiMaxCut ( const double  chi = 6)
inline

Definition at line 41 of file ParticleIDBase.h.

41{m_chimax_cut = chi;}
virtual double chi(int n) const =0

Referenced by ParticleID::init().

◆ setChiMinCut()

◆ setPdfMinSigmaCut()

void ParticleIDBase::setPdfMinSigmaCut ( const double  pdf = 4)
inline

Definition at line 43 of file ParticleIDBase.h.

43{m_pdfsigmamin_cut= pdf;}

Referenced by TofPID::particleIDCalculation().

◆ setRecTrack()

◆ setRunNo()

void ParticleIDBase::setRunNo ( const double  runh = 8093)
inline

Definition at line 45 of file ParticleIDBase.h.

45{m_runno = runh;}

◆ tofcorrValid()

int ParticleIDBase::tofcorrValid ( ) const
inline

Definition at line 96 of file ParticleIDBase.h.

96{return TOFCorr_VALID;}

◆ tofcValid()

int ParticleIDBase::tofcValid ( ) const
inline

Definition at line 95 of file ParticleIDBase.h.

95{return TOFC_VALID;}

◆ tofeValid()

int ParticleIDBase::tofeValid ( ) const
inline

Definition at line 93 of file ParticleIDBase.h.

93{return TOFE_VALID;}

◆ tofqValid()

int ParticleIDBase::tofqValid ( ) const
inline

Definition at line 94 of file ParticleIDBase.h.

94{return TOFQ_VALID;}

◆ tofValid()

int ParticleIDBase::tofValid ( ) const
inline

Definition at line 92 of file ParticleIDBase.h.

92{return TOF_VALID;}

◆ useDedx()

◆ useEmc()

int ParticleIDBase::useEmc ( ) const
inline

Definition at line 72 of file ParticleIDBase.h.

72{return USE_EMC;}

Referenced by BeamParams::execute().

◆ useMuc()

int ParticleIDBase::useMuc ( ) const
inline

Definition at line 73 of file ParticleIDBase.h.

73{return USE_MUC;}

Referenced by BeamParams::execute().

◆ useTof()

int ParticleIDBase::useTof ( ) const
inline

Definition at line 65 of file ParticleIDBase.h.

65{return USE_TOF;}

◆ useTof1()

◆ useTof2()

◆ useTofC()

int ParticleIDBase::useTofC ( ) const
inline

Definition at line 70 of file ParticleIDBase.h.

70{return USE_TOFC;}

◆ useTofCorr()

int ParticleIDBase::useTofCorr ( ) const
inline

◆ useTofE()

int ParticleIDBase::useTofE ( ) const
inline

Definition at line 68 of file ParticleIDBase.h.

68{return USE_TOFE;}

Referenced by Rhopi::execute(), DQAKsKpiDEDX::execute(), BeamParams::execute(), and Single::execute().

◆ useTofQ()

int ParticleIDBase::useTofQ ( ) const
inline

Definition at line 69 of file ParticleIDBase.h.

69{return USE_TOFQ;}

Referenced by DQAKsKpiDEDX::execute(), and BeamParams::execute().

◆ velc()

double ParticleIDBase::velc ( )

Definition at line 77 of file ParticleIDBase.cxx.

77 {
78 // double vel = 29.9792458; // tof_path unit in cm.
79 double vel = 299.792458; // tof path unit in mm
80 return vel;
81}

Referenced by Tof1PID::particleIDCalculation(), Tof2PID::particleIDCalculation(), TofCPID::particleIDCalculation(), and TofEPID::particleIDCalculation().

◆ xmass()

double ParticleIDBase::xmass ( int  n)

Definition at line 71 of file ParticleIDBase.cxx.

71 {
72 double mass[5] = {0.000511, 0.105658, 0.139570,0.493677, 0.938272};
73 if(n < 0 || n >=5) return 0.0;
74 return mass[n];
75}
double mass
const Int_t n

Member Data Documentation

◆ path


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