BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
DedxCalib Class Referenceabstract

#include <DedxCalib.h>

Inheritance diagram for DedxCalib:

Public Member Functions

 DedxCalib (const std::string &name, ISvcLocator *pSvcLocator)
 ~DedxCalib ()
StatusCode initialize ()
StatusCode execute ()
StatusCode finalize ()
virtual void genNtuple ()=0
virtual void initializing ()=0
virtual void BookHists ()=0
virtual void FillHists ()=0
virtual void AnalyseHists ()=0
virtual void WriteHists ()=0

Protected Member Functions

double cal_dedx_bitrunc (float truncate, std::vector< double > phlist)
double cal_dedx (float truncate, std::vector< double > phlist)
void getCurvePar ()
void set_dEdx (int landau, float dEdx, int trkalg, int runflag, int dedxhit_use, float ptrk, float theta, float pl_rp, int vflag[3], double t0)
void ReadRecFileList ()

Protected Attributes

IMdcGeomSvcgeosvc
IDedxCorrecSvcexsvc
float truncate
vector< double > Curve_Para
vector< double > Sigma_Para
int vFlag [3]
double m_dedx_exp [5]
double m_ex_sigma [5]
double m_pid_prob [5]
double m_chi_ex [5]
vector< string > m_recFileVector
int ParticleFlag
int m_calibflag
int m_phShapeFlag
std::string m_eventType
std::string m_recFileList
std::string m_rootfile
std::string m_curvefile

Detailed Description

Definition at line 11 of file DedxCalib.h.

Constructor & Destructor Documentation

◆ DedxCalib()

DedxCalib::DedxCalib ( const std::string & name,
ISvcLocator * pSvcLocator )

Definition at line 12 of file DedxCalib.cxx.

13 : Algorithm( name, pSvcLocator ) {
14 declareProperty( "ParticleType", ParticleFlag = -1 );
15 declareProperty( "EventType", m_eventType = "isBhabha" );
16 declareProperty( "CalibFlag", m_calibflag = 63 );
17 declareProperty( "PhShapeFlag", m_phShapeFlag = 0 );
18 declareProperty( "TruncRate", truncate = 0.7 );
19 declareProperty( "RecFileList", m_recFileList = "no file" );
20 declareProperty( "RootFile", m_rootfile = "no file" );
21 declareProperty( "CurveFile", m_curvefile = std::string( "no rootfile" ) );
22}
std::string m_curvefile
Definition DedxCalib.h:58
int ParticleFlag
Definition DedxCalib.h:52
int m_phShapeFlag
Definition DedxCalib.h:54
std::string m_rootfile
Definition DedxCalib.h:57
std::string m_recFileList
Definition DedxCalib.h:56
int m_calibflag
Definition DedxCalib.h:53
std::string m_eventType
Definition DedxCalib.h:55
float truncate
Definition DedxCalib.h:32

Referenced by DedxCalibCostheta::DedxCalibCostheta(), DedxCalibDocaEAng::DedxCalibDocaEAng(), DedxCalibEAng::DedxCalibEAng(), DedxCalibEvent::DedxCalibEvent(), DedxCalibLayerGain::DedxCalibLayerGain(), DedxCalibMomentum::DedxCalibMomentum(), DedxCalibRunByRun::DedxCalibRunByRun(), DedxCalibTzero::DedxCalibTzero(), DedxCalibWireGain::DedxCalibWireGain(), and DedxSaveWireGain::DedxSaveWireGain().

◆ ~DedxCalib()

DedxCalib::~DedxCalib ( )
inline

Definition at line 14 of file DedxCalib.h.

14{};

Member Function Documentation

◆ AnalyseHists()

void DedxCalib::AnalyseHists ( )
pure virtual

◆ BookHists()

void DedxCalib::BookHists ( )
pure virtual

◆ cal_dedx()

double DedxCalib::cal_dedx ( float truncate,
std::vector< double > phlist )
protected

Definition at line 119 of file DedxCalib.cxx.

119 {
120 sort( phlist.begin(), phlist.end() );
121 int smpl = (int)( phlist.size() * ( truncate + 0.05 ) );
122 int min_cut = 0;
123 double qSum = 0;
124 unsigned i = 0;
125 for ( vector<double>::iterator ql = phlist.begin(); ql != phlist.end(); ql++ )
126 {
127 i++;
128 if ( i <= smpl && i >= min_cut ) qSum += ( *ql );
129 }
130 double trunc = -99;
131 int usedhit = smpl - min_cut + 1;
132 if ( usedhit > 0 ) trunc = qSum / usedhit;
133
134 return trunc;
135}

◆ cal_dedx_bitrunc()

double DedxCalib::cal_dedx_bitrunc ( float truncate,
std::vector< double > phlist )
protected

Definition at line 101 of file DedxCalib.cxx.

101 {
102 sort( phlist.begin(), phlist.end() );
103 int smpl = (int)( phlist.size() * ( truncate + 0.05 ) );
104 int min_cut = (int)( phlist.size() * 0.05 + 0.5 );
105 double qSum = 0;
106 unsigned i = 0;
107 for ( vector<double>::iterator ql = phlist.begin(); ql != phlist.end(); ql++ )
108 {
109 i++;
110 if ( i <= smpl && i >= min_cut ) qSum += ( *ql );
111 }
112 double trunc = -99;
113 int usedhit = smpl - min_cut + 1;
114 if ( usedhit > 0 ) trunc = qSum / usedhit;
115
116 return trunc;
117}

Referenced by DedxCalibLayerGain::AnalyseHists(), DedxCalibCostheta::FillHists(), DedxCalibMomentum::FillHists(), DedxCalibRunByRun::FillHists(), and DedxCalibTzero::FillHists().

◆ execute()

StatusCode DedxCalib::execute ( )

Definition at line 53 of file DedxCalib.cxx.

53 {
54 MsgStream log( msgSvc(), name() );
55 log << MSG::INFO << "DedxCalib execute()" << endmsg;
56
57 genNtuple();
58 FillHists();
60 WriteHists();
61
62 return StatusCode::SUCCESS;
63}
IMessageSvc * msgSvc()
virtual void genNtuple()=0
Definition DedxCalib.cxx:74
virtual void WriteHists()=0
Definition DedxCalib.cxx:82
virtual void AnalyseHists()=0
Definition DedxCalib.cxx:80
virtual void FillHists()=0
Definition DedxCalib.cxx:78

◆ FillHists()

void DedxCalib::FillHists ( )
pure virtual

◆ finalize()

StatusCode DedxCalib::finalize ( )

Definition at line 65 of file DedxCalib.cxx.

65 {
66 MsgStream log( msgSvc(), name() );
67 log << MSG::INFO << "DedxCalib finalize()" << endmsg;
68
69 return StatusCode::SUCCESS;
70}

◆ genNtuple()

void DedxCalib::genNtuple ( )
pure virtual

◆ getCurvePar()

void DedxCalib::getCurvePar ( )
protected

Definition at line 137 of file DedxCalib.cxx.

139{
140 if ( m_curvefile == "no rootfile" )
141 {
142 cout << "no curve file! can not calculate chi!!! " << endl;
143 return;
144 }
145
146 double Curve[100];
147 double Sigma[100];
148 int CurveSize, SigmaSize;
149 TFile* f = new TFile( m_curvefile.c_str() );
150 TTree* curve = (TTree*)f->Get( "curve" );
151 TTree* sigma = (TTree*)f->Get( "sigma" );
152 curve->SetBranchAddress( "CurveSize", &CurveSize );
153 curve->SetBranchAddress( "curve", Curve );
154 sigma->SetBranchAddress( "SigmaSize", &SigmaSize );
155 sigma->SetBranchAddress( "sigma", Sigma );
156 curve->GetEntry( 0 );
157 sigma->GetEntry( 0 );
158
159 for ( int i = 0; i < CurveSize; i++ ) // get the dedx curve parameters
160 {
161 cout << Curve[i] << endl;
162 if ( i == 0 ) vFlag[0] = (int)Curve[i]; // first element is dedx curve version
163 else Curve_Para.push_back( Curve[i] ); // dedx curve parameters
164 }
165 for ( int i = 0; i < SigmaSize; i++ )
166 {
167 cout << Sigma[i] << endl;
168 if ( i == 0 ) vFlag[1] = (int)Sigma[i]; // dedx sigma version: 2: psip; 3:jpsi
169 else Sigma_Para.push_back( Sigma[i] ); // dedx sigma parameters
170 }
171 // if(runflag>0) vFlag[2]=0;
172 // else vFlag[2]=1;
173}
TFile f("ana_bhabha660a_dqa_mcPat_zy_old.root")
*******INTEGER m_nBinMax INTEGER m_NdiMax !No of bins in histogram for cell exploration division $ !Last vertex $ !Last active cell $ !Last cell in buffer $ !No of sampling when dividing cell $ !No of function total $ !Flag for random ceel for $ !Flag for type of for Sigma
Definition FoamA.h:83
int vFlag[3]
Definition DedxCalib.h:41
vector< double > Sigma_Para
Definition DedxCalib.h:40
vector< double > Curve_Para
Definition DedxCalib.h:39

Referenced by initialize().

◆ initialize()

StatusCode DedxCalib::initialize ( )

Definition at line 24 of file DedxCalib.cxx.

24 {
25 MsgStream log( msgSvc(), name() );
26 log << MSG::INFO << "DedxCalib initialze()" << endmsg;
27
28 StatusCode gesc = service( "MdcGeomSvc", geosvc );
29 if ( gesc == StatusCode::SUCCESS ) { log << MSG::INFO << "MdcGeomSvc is running" << endmsg; }
30 else
31 {
32 log << MSG::ERROR << "MdcGeomSvc is failed" << endmsg;
33 return StatusCode::SUCCESS;
34 }
35
36 StatusCode scex = service( "DedxCorrecSvc", exsvc );
37 if ( scex == StatusCode::SUCCESS )
38 { log << MSG::INFO << "Hi, DedxCorrectSvc is running" << endl; }
39 else
40 {
41 log << MSG::ERROR << "DedxCorrectSvc is failed" << endl;
42 return StatusCode::SUCCESS;
43 }
44 exsvc->set_flag( m_calibflag );
45
47 BookHists();
49
50 return StatusCode::SUCCESS;
51}
void getCurvePar()
IDedxCorrecSvc * exsvc
Definition DedxCalib.h:29
virtual void BookHists()=0
Definition DedxCalib.cxx:76
virtual void initializing()=0
Definition DedxCalib.cxx:72
IMdcGeomSvc * geosvc
Definition DedxCalib.h:28

◆ initializing()

void DedxCalib::initializing ( )
pure virtual

◆ ReadRecFileList()

void DedxCalib::ReadRecFileList ( )
protected

Definition at line 84 of file DedxCalib.cxx.

84 {
85
86 MsgStream log( msgSvc(), name() );
87 log << MSG::INFO << "DedxCalib::ReadRecFileList()" << endmsg;
88
89 ifstream filea( m_recFileList.c_str(), ifstream::in );
90 cout << m_recFileList.c_str() << endl;
91
92 string runlist;
93 filea >> runlist;
94 do {
95 m_recFileVector.push_back( runlist );
96 cout << runlist.c_str() << endl;
97 filea >> runlist;
98 } while ( filea );
99}
vector< string > m_recFileVector
Definition DedxCalib.h:50

Referenced by DedxCalibCostheta::BookHists(), DedxCalibDocaEAng::BookHists(), DedxCalibEAng::BookHists(), DedxCalibLayerGain::BookHists(), DedxCalibMomentum::BookHists(), DedxCalibRunByRun::BookHists(), DedxCalibTzero::BookHists(), DedxCalibWireGain::BookHists(), and DedxSaveWireGain::BookHists().

◆ set_dEdx()

void DedxCalib::set_dEdx ( int landau,
float dEdx,
int trkalg,
int runflag,
int dedxhit_use,
float ptrk,
float theta,
float pl_rp,
int vflag[3],
double t0 )
protected

Definition at line 175 of file DedxCalib.cxx.

176 {
177 // landau: 1:landau distribution; 0:gaus distribution
178 // pl_rp: 1.5, not know what
179 // getCurvePar(runflag);
180 if ( runflag > 0 ) vFlag[2] = 0;
181 else vFlag[2] = 1;
182
183 // some old data with old methods
184 if ( runflag == 1 || runflag == 2 )
185 dedx_pid_exp_old( landau, runflag, (float)dEdx, (int)dedxhit_use, (float)ptrk,
186 (float)theta, (float)t0, (float)pl_rp, m_dedx_exp, m_ex_sigma,
188 // for 2009 psip data and after
189 else
190 dedx_pid_exp( vflag, (float)dEdx, trkalg, (int)dedxhit_use, (float)ptrk, (float)theta,
191 (float)t0, (float)pl_rp, m_dedx_exp, m_ex_sigma, m_pid_prob, m_chi_ex,
193}
void dedx_pid_exp_old(int landau, int runflag, float dedx, int Nohit, float mom, float theta, float t0, float lsamp, double dedx_exp[5], double ex_sigma[5], double pid_prob[5], double chi_dedx[5])
void dedx_pid_exp(int vflag[3], float dedx, int trkalg, int Nohit, float mom, float theta, float t0, float lsamp, double dedx_exp[5], double ex_sigma[5], double pid_prob[5], double chi_dedx[5], std::vector< double > &par, std::vector< double > &sig_par)
double m_chi_ex[5]
Definition DedxCalib.h:48
double m_pid_prob[5]
Definition DedxCalib.h:47
double m_dedx_exp[5]
Definition DedxCalib.h:45
double m_ex_sigma[5]
Definition DedxCalib.h:46

Referenced by DedxCalibCostheta::FillHists(), DedxCalibMomentum::FillHists(), and DedxCalibTzero::FillHists().

◆ WriteHists()

void DedxCalib::WriteHists ( )
pure virtual

Member Data Documentation

◆ Curve_Para

vector<double> DedxCalib::Curve_Para
protected

Definition at line 39 of file DedxCalib.h.

Referenced by getCurvePar(), and set_dEdx().

◆ exsvc

◆ geosvc

IMdcGeomSvc* DedxCalib::geosvc
protected

Definition at line 28 of file DedxCalib.h.

Referenced by DedxCalibEvent::genNtuple(), and initialize().

◆ m_calibflag

int DedxCalib::m_calibflag
protected

Definition at line 53 of file DedxCalib.h.

Referenced by DedxCalib(), and initialize().

◆ m_chi_ex

double DedxCalib::m_chi_ex[5]
protected

◆ m_curvefile

std::string DedxCalib::m_curvefile
protected

Definition at line 58 of file DedxCalib.h.

Referenced by DedxCalib(), and getCurvePar().

◆ m_dedx_exp

double DedxCalib::m_dedx_exp[5]
protected

Definition at line 45 of file DedxCalib.h.

Referenced by set_dEdx().

◆ m_eventType

std::string DedxCalib::m_eventType
protected

Definition at line 55 of file DedxCalib.h.

Referenced by DedxCalib(), and DedxCalibEvent::genNtuple().

◆ m_ex_sigma

double DedxCalib::m_ex_sigma[5]
protected

Definition at line 46 of file DedxCalib.h.

Referenced by set_dEdx().

◆ m_phShapeFlag

◆ m_pid_prob

double DedxCalib::m_pid_prob[5]
protected

Definition at line 47 of file DedxCalib.h.

Referenced by set_dEdx().

◆ m_recFileList

std::string DedxCalib::m_recFileList
protected

Definition at line 56 of file DedxCalib.h.

Referenced by DedxCalib(), and ReadRecFileList().

◆ m_recFileVector

◆ m_rootfile

◆ ParticleFlag

int DedxCalib::ParticleFlag
protected

◆ Sigma_Para

vector<double> DedxCalib::Sigma_Para
protected

Definition at line 40 of file DedxCalib.h.

Referenced by getCurvePar(), and set_dEdx().

◆ truncate

◆ vFlag

int DedxCalib::vFlag[3]
protected

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