1#ifndef ParticleID_ParticleID_H
2#define ParticleID_ParticleID_H
26#include "ParticleID/ParticleIDBase.h"
27#include "ParticleID/DedxPID.h"
28#include "ParticleID/TofPID.h"
29#include "ParticleID/TofEPID.h"
30#include "ParticleID/TofQPID.h"
31#include "ParticleID/TofCPID.h"
32#include "ParticleID/TofCorrPID.h"
33#include "ParticleID/EmcPID.h"
34#include "ParticleID/MucPID.h"
89 void setNhitCut(
const int nhitcuth = 5) {m_nhitcut = nhitcuth;}
94 void setMethod(
const int method) {m_method = (m_method | method);}
97 void usePidSys(
const int pidsys) {m_pidsys = (m_pidsys | pidsys);}
103 void identify(
const int pidcase) {m_pidcase = (m_pidcase | pidcase);}
113 double chi(
int n)
const {
return m_chisq[
n];}
114 double prob(
int n)
const {
return m_prob[
n];}
115 int ndof()
const {
return m_ndof;}
118 double pdf(
int n)
const {
return m_pdf[
n];}
119 double lhf(
int n)
const {
return m_likelihoodfraction[
n];}
146 if(
lhf(0)>0.02)
return 1.0;
147 if(
lhf(1)>0.02)
return 8.5;
148 if(
lhf(2)>0.02)
return 2.0;
149 if(
lhf(3)>0.02)
return 4.0;
150 if(
lhf(4)>0.02)
return 5.0;
154 return m_tofcorrpid->
ipmt();
157 return m_tofcorrpid->
dt(ipar,
ipmt);
169 return m_tofcorrpid->
offset(ipar);
172 return m_tofcorrpid->
sigma(ipar);
183 bool IsDedxInfoUsed()
const {
return ((m_pidsys &
useDedx()) ==
useDedx());}
184 bool IsTofInfoUsed()
const {
return ((m_pidsys &
useTof()) ==
useTof());}
185 bool IsTof1InfoUsed()
const {
return ((m_pidsys &
useTof1()) ==
useTof1());}
186 bool IsTof2InfoUsed()
const {
return ((m_pidsys &
useTof2()) ==
useTof2());}
187 bool IsTofEInfoUsed()
const {
return ((m_pidsys &
useTofE()) ==
useTofE());}
188 bool IsTofQInfoUsed()
const {
return ((m_pidsys &
useTofQ()) ==
useTofQ());}
189 bool IsTofCInfoUsed()
const {
return ((m_pidsys &
useTofC()) ==
useTofC());}
191 bool IsEmcInfoUsed()
const {
return ((m_pidsys &
useEmc()) ==
useEmc());}
192 bool IsMucInfoUsed()
const {
return ((m_pidsys &
useMuc()) ==
useMuc());}
208 double m_likelihoodfraction[5];
209 double m_TotalLikelihood;
228#include "ParticleID/ParticleID.icc"
double chiMuc(int n) const
int neuronPIDCalculation()
double dtCorr(int ipar, int ipmt)
void setMethod(const int method)
double probEmc(int n) const
double probTof(int n) const
double chiTof2(int n) const
bool IsTofEInfoValid() const
bool IsEmcInfoValid() const
int LikelihoodCalculation()
double chiTofE(int n) const
double probTofCorr(int n) const
bool IsTofCorrInfoValid() const
bool IsTofCInfoValid() const
bool IsTofInfoValid() const
void identify(const int pidcase)
double probElectron() const
void usePidSys(const int pidsys)
void setNhitCut(const int nhitcuth=5)
double chiTofQ(int n) const
double probTofC(int n) const
bool IsTofQInfoValid() const
int particleIDCalculation()
static ParticleID * instance()
double probTofQ(int n) const
bool IsPidInfoValid() const
bool IsDedxInfoValid() const
double probDedx(int n) const
double dt(int ipar, int ipmt)
double chiTofC(int n) const
double chiCorr(int ipar, int ipmt)
double chiTof1(int n) const
double chiEmc(int n) const
double sigCorr(int ipar, int ipmt)
double probProton() const
bool IsMucInfoValid() const
double pdfElectron() const
double chiTof(int n) const
double probTofE(int n) const
double chiTofCorr(int n) const
double probMuc(int n) const
double chiDedx(int n) const
double dtCorr(int ipar, int ipmt) const
double chiCorr(int ipar, int ipmt) const
double sigCorr(int ipar, int ipmt) const
double sigma(int n) const
double offset(int n) const
double dt(int ipar, int ipmt) const