#include <MdcDedxTrk.h>
Public Member Functions | |
MdcDedxTrk (RecMdcTrack &trk) | |
MdcDedxTrk (RecMdcKalTrack &trk_kal, int pid) | |
MdcDedxTrk () | |
~MdcDedxTrk () | |
void | set_ExTrk (RecMdcTrack &trk) |
void | set_ExTrk_Kal (RecMdcKalTrack &trk_kal, int pid) |
double | cal_dedx (float) |
double | cal_dedx_bitrunc (float, int, int &) |
double | cal_dedx_median (float) |
double | cal_dedx_geometric (float) |
double | cal_dedx_geometric_trunc (float) |
double | cal_dedx_harmonic (float) |
double | cal_dedx_harmonic_trunc (float) |
double | cal_dedx_transform (int) |
double | cal_dedx_log (float, int) |
double | SpaceChargeCorrec (double, double, int, double) |
void | set_dEdx (int l, float dEdx_meas, int trkalg, int runflag, int vflag[3], double t0, vector< double > &DedxCurve_Parameter, vector< double > &DedxSigma_Parameter, MdcDedxCorrection *) |
void | set_phlist (const vector< double > &phlist) |
void | set_phlist_hit (const vector< double > &phlist) |
void | setVecDedxHits (const DedxHitRefVec &vecdedxhit) |
vector< double > | get_phlist (void) |
vector< double > | get_phlist_hit (void) |
DedxHitRefVec | getVecDedxHits () const |
RecMdcTrack * | trk_ptr () const |
RecMdcKalTrack * | trk_ptr_kal () const |
int | stat () const |
int | trk_id () const |
int | nsample () const |
int | quality () const |
double | dedx () const |
int | charge () const |
double | P () const |
double | theta () const |
double | phi () const |
double | Pt () const |
double | expect (int pid) const |
double | exp_sigma (int pid) const |
double | prob (int pid) const |
double | chi_dedx (int pid) const |
double * | pexpect () |
double * | pexp_sigma () |
double * | pprob () |
double * | pchi_dedx () |
Private Attributes | |
double | dedx_exp [5] |
double | ex_sigma [5] |
double | pid_prob [5] |
double | chi_ex [5] |
double | m_dEdx |
float | m_truncate |
RecMdcTrack * | m_trk |
RecMdcKalTrack * | m_trk_kal |
int | m_stat |
int | m_trk_id |
int | m_quality |
int | m_charge |
float | m_P |
double | m_theta |
double | m_phi |
int | m_nsample |
double | m_pl_rp |
vector< double > | m_phlist |
vector< double > | m_phlist_hit |
DedxHitRefVec | m_vecdedxhit |
Definition at line 21 of file MdcDedxTrk.h.
MdcDedxTrk::MdcDedxTrk | ( | RecMdcTrack & | trk | ) |
Definition at line 43 of file MdcDedxTrk.cxx.
References m_charge, m_dEdx, m_nsample, m_P, m_phi, m_pl_rp, m_quality, m_stat, m_theta, m_trk, m_trk_id, m_trk_kal, m_truncate, and set_ExTrk().
00044 { 00045 m_trk = 0; 00046 m_trk_kal = 0; 00047 m_stat = -1; 00048 m_trk_id = 0; 00049 m_quality = -99; 00050 m_charge = 0; 00051 m_P = 0; 00052 m_theta = 0; 00053 m_phi = 0; 00054 m_pl_rp = 0; 00055 m_nsample = 0; 00056 m_dEdx = 0; 00057 m_truncate = 0.7; 00058 00059 set_ExTrk( trk ); 00060 #ifdef DEBUG 00061 std::cout<<"MdcDedxTrk(2) constructed!"<<std::endl; 00062 #endif 00063 }
MdcDedxTrk::MdcDedxTrk | ( | RecMdcKalTrack & | trk_kal, | |
int | pid | |||
) |
Definition at line 65 of file MdcDedxTrk.cxx.
References m_charge, m_dEdx, m_nsample, m_P, m_phi, m_pl_rp, m_quality, m_stat, m_theta, m_trk, m_trk_id, m_trk_kal, m_truncate, and set_ExTrk_Kal().
00066 { 00067 m_trk = 0; 00068 m_trk_kal = 0; 00069 m_stat = -1; 00070 m_trk_id = 0; 00071 m_quality = -99; 00072 m_charge = 0; 00073 m_P = 0; 00074 m_theta = 0; 00075 m_phi = 0; 00076 m_pl_rp = 0; 00077 m_nsample = 0; 00078 m_dEdx = 0; 00079 m_truncate = 0.7; 00080 00081 set_ExTrk_Kal( trk_kal, pid ); 00082 #ifdef DEBUG 00083 std::cout<<"MdcDedxTrk(2) kal constructed!"<<std::endl; 00084 #endif 00085 }
MdcDedxTrk::MdcDedxTrk | ( | ) |
Definition at line 14 of file MdcDedxTrk.cxx.
References chi_ex, dedx_exp, ex_sigma, m_charge, m_dEdx, m_nsample, m_P, m_phi, m_pl_rp, m_quality, m_stat, m_theta, m_trk, m_trk_id, m_trk_kal, m_truncate, and pid_prob.
00015 { 00016 m_trk = 0; 00017 m_trk_kal = 0; 00018 m_stat = -1; 00019 m_trk_id = 0; 00020 m_quality = -99; 00021 m_charge = 0; 00022 m_P = 0; 00023 m_theta = 0; 00024 m_phi = 0; 00025 m_pl_rp = 0; 00026 m_nsample = 0; 00027 00028 m_dEdx = 0; 00029 m_truncate = 1; 00030 for( unsigned a = 0; a < 5 ; a++ ) 00031 { 00032 dedx_exp[a]=0.0; 00033 ex_sigma[a]=0.0; 00034 pid_prob[a]=0.0; 00035 chi_ex[a]=999.0; 00036 } 00037 00038 #ifdef DEBUG 00039 std::cout<<"MdcDedxTrk(1) constructed!"<<std::endl; 00040 #endif 00041 }
MdcDedxTrk::~MdcDedxTrk | ( | ) |
Definition at line 87 of file MdcDedxTrk.cxx.
00088 { 00089 #ifdef DEBUG 00090 std::cout<<"MdcDedxTrk destructed!!!"<<std::endl; 00091 #endif 00092 }
double MdcDedxTrk::cal_dedx | ( | float | ) |
Definition at line 153 of file MdcDedxTrk.cxx.
References genRecEmupikp::i, m_phlist, and m_truncate.
00154 { 00155 m_truncate = truncate; 00156 sort(m_phlist.begin(),m_phlist.end()); 00157 int nsampl = (int)( m_phlist.size()*truncate ); 00158 double qSum = 0; 00159 unsigned int i = 0; 00160 for(vector<double>::iterator ql= m_phlist.begin();ql!=m_phlist.end();ql++) 00161 { 00162 i++; 00163 if(i<= nsampl) qSum += (*ql); 00164 } 00165 00166 float trunc=qSum/nsampl; 00167 return trunc; 00168 std::cout<<"MdcDedxTrk::cal_dedx()!!!"<<std::endl; 00169 }
double MdcDedxTrk::cal_dedx_bitrunc | ( | float | , | |
int | , | |||
int & | ||||
) |
Definition at line 171 of file MdcDedxTrk.cxx.
References genRecEmupikp::i, m_phlist, and m_truncate.
00172 { 00173 m_truncate = truncate; 00174 sort(m_phlist.begin(),m_phlist.end()); 00175 int nsampl = (int)( m_phlist.size()*truncate ); 00176 int smpl = (int)(m_phlist.size()*(truncate+0.05)); 00177 int min_cut = (int)( m_phlist.size()*0.05 + 0.5 ); 00178 double qSum = 0; 00179 unsigned i = 0; 00180 for(vector<double>::iterator ql= m_phlist.begin();ql!=m_phlist.end();ql++) 00181 { 00182 i++; 00183 if(i<= smpl && i>=min_cut ) qSum += (*ql); 00184 } 00185 double trunc=-99; 00186 usedhit = smpl-min_cut+1; 00187 if(usedhit>0) trunc=qSum/usedhit; 00188 00189 return trunc; 00190 std::cout<<"MdcDedxTrk::cal_dedx()!!!"<<std::endl; 00191 }
double MdcDedxTrk::cal_dedx_geometric | ( | float | ) |
Definition at line 207 of file MdcDedxTrk.cxx.
References m_phlist.
00208 { 00209 sort(m_phlist.begin(),m_phlist.end()); 00210 00211 int nsampl = m_phlist.size(); 00212 double qSum = 1.0; 00213 for(vector<double>::iterator ql= m_phlist.begin();ql!=m_phlist.end();ql++){ 00214 qSum *= (*ql); 00215 } 00216 00217 double trunc = pow(qSum,1/double(nsampl)); 00218 return trunc; 00219 std::cout<<"MdcDedxTrk::cal_dedx()!!!"<<std::endl; 00220 }
double MdcDedxTrk::cal_dedx_geometric_trunc | ( | float | ) |
Definition at line 222 of file MdcDedxTrk.cxx.
References genRecEmupikp::i, m_phlist, and m_truncate.
00223 { 00224 m_truncate = truncate; 00225 sort(m_phlist.begin(),m_phlist.end()); 00226 int nsampl = (int)( m_phlist.size()*truncate ); 00227 double qSum = 1.0; 00228 unsigned i = 0; 00229 for(vector<double>::iterator ql= m_phlist.begin();ql!=m_phlist.end();ql++){ 00230 i++; 00231 if( i<= nsampl ) 00232 qSum *= (*ql); 00233 } 00234 00235 double trunc = pow(qSum,1/double(nsampl)); 00236 return trunc; 00237 00238 std::cout<<"MdcDedxTrk::cal_dedx()!!!"<<std::endl; 00239 }
double MdcDedxTrk::cal_dedx_harmonic | ( | float | ) |
Definition at line 241 of file MdcDedxTrk.cxx.
References m_phlist.
00242 { 00243 sort(m_phlist.begin(),m_phlist.end()); 00244 00245 int nsampl = m_phlist.size(); 00246 double qSum = 0; 00247 for(vector<double>::iterator ql= m_phlist.begin();ql!=m_phlist.end();ql++){ 00248 qSum += 1/(*ql); 00249 } 00250 00251 float trunc=nsampl/qSum; 00252 return trunc; 00253 std::cout<<"MdcDedxTrk::cal_dedx()!!!"<<std::endl; 00254 }
double MdcDedxTrk::cal_dedx_harmonic_trunc | ( | float | ) |
Definition at line 256 of file MdcDedxTrk.cxx.
References genRecEmupikp::i, m_phlist, and m_truncate.
00257 { 00258 m_truncate = truncate; 00259 sort(m_phlist.begin(),m_phlist.end()); 00260 int nsampl = (int)( m_phlist.size()*truncate ); 00261 double qSum = 0; 00262 unsigned i = 0; 00263 for(vector<double>::iterator ql= m_phlist.begin();ql!=m_phlist.end();ql++){ 00264 i++; 00265 if( i<= nsampl ) 00266 qSum += 1/(*ql); 00267 } 00268 00269 float trunc= nsampl/qSum; 00270 return trunc; 00271 std::cout<<"MdcDedxTrk::cal_dedx()!!!"<<std::endl; 00272 }
double MdcDedxTrk::cal_dedx_log | ( | float | , | |
int | ||||
) |
Definition at line 291 of file MdcDedxTrk.cxx.
References genRecEmupikp::i, and m_phlist.
00292 { 00293 double qSum = 0; 00294 unsigned i = 0; 00295 for(vector<double>::iterator ql= m_phlist.begin();ql!=m_phlist.end();ql++){ 00296 i++; 00297 qSum += log(*ql); 00298 } 00299 00300 float trunc=qSum/m_phlist.size(); 00301 return trunc; 00302 std::cout<<"MdcDedxTrk::cal_dedx_log()!!!"<<std::endl; 00303 }
double MdcDedxTrk::cal_dedx_median | ( | float | ) |
Definition at line 193 of file MdcDedxTrk.cxx.
References m_phlist, and nsample().
00194 { 00195 sort(m_phlist.begin(),m_phlist.end()); 00196 00197 int nsample = m_phlist.size(); 00198 double median; 00199 if( fmod(double(nsample),2.0) ) { 00200 median = m_phlist[(nsample-1)/2]; 00201 } else { 00202 median= 0.5*( m_phlist[nsample/2] + m_phlist[nsample/2-1] ); 00203 } 00204 return median; 00205 }
double MdcDedxTrk::cal_dedx_transform | ( | int | ) |
Definition at line 274 of file MdcDedxTrk.cxx.
References m_phlist.
00275 { 00276 sort(m_phlist.begin(),m_phlist.end()); 00277 00278 int nsampl = m_phlist.size(); 00279 double qSum = 0; 00280 for(vector<double>::iterator ql= m_phlist.begin();ql!=m_phlist.end();ql++){ 00281 qSum += 1/sqrt(*ql); 00282 } 00283 00284 float trunc=1/qSum; 00285 00286 return trunc; 00287 std::cout<<"MdcDedxTrk::cal_dedx()!!!"<<std::endl; 00288 }
int MdcDedxTrk::charge | ( | ) | const [inline] |
double MdcDedxTrk::chi_dedx | ( | int | pid | ) | const [inline] |
double MdcDedxTrk::dedx | ( | ) | const [inline] |
double MdcDedxTrk::exp_sigma | ( | int | pid | ) | const [inline] |
double MdcDedxTrk::expect | ( | int | pid | ) | const [inline] |
vector<double> MdcDedxTrk::get_phlist | ( | void | ) | [inline] |
vector<double> MdcDedxTrk::get_phlist_hit | ( | void | ) | [inline] |
DedxHitRefVec MdcDedxTrk::getVecDedxHits | ( | ) | const [inline] |
int MdcDedxTrk::nsample | ( | ) | const [inline] |
Definition at line 60 of file MdcDedxTrk.h.
References m_nsample.
Referenced by cal_dedx_median(), and set_dEdx().
00060 {return m_nsample;}
double MdcDedxTrk::P | ( | ) | const [inline] |
double* MdcDedxTrk::pchi_dedx | ( | ) | [inline] |
double* MdcDedxTrk::pexp_sigma | ( | ) | [inline] |
double* MdcDedxTrk::pexpect | ( | ) | [inline] |
double MdcDedxTrk::phi | ( | void | ) | const [inline] |
double* MdcDedxTrk::pprob | ( | ) | [inline] |
double MdcDedxTrk::prob | ( | int | pid | ) | const [inline] |
double MdcDedxTrk::Pt | ( | ) | const [inline] |
int MdcDedxTrk::quality | ( | ) | const [inline] |
void MdcDedxTrk::set_dEdx | ( | int | l, | |
float | dEdx_meas, | |||
int | trkalg, | |||
int | runflag, | |||
int | vflag[3], | |||
double | t0, | |||
vector< double > & | DedxCurve_Parameter, | |||
vector< double > & | DedxSigma_Parameter, | |||
MdcDedxCorrection * | ||||
) |
Definition at line 307 of file MdcDedxTrk.cxx.
References chi_ex, dedx_exp, MdcDedxCorrection::dedx_pid_exp(), MdcDedxCorrection::dedx_pid_exp_old(), ex_sigma, m_dEdx, m_P, m_phlist, m_pl_rp, m_theta, m_truncate, nsample(), and pid_prob.
00308 { 00309 #ifdef DEBUG 00310 cout<<"in MdcDedxTrk::set_dEdx() landau: "<<landau<<" dedx: "<<dEdx<<" nsample(): "<<nsample()<<" ph size: "<<m_phlist.size()<<" m_P: "<<m_P<<" theta: "<<m_theta<<" pl-rp: "<<m_pl_rp<<endl; 00311 #endif 00312 00313 m_dEdx = dEdx; 00314 int dedxhit_use = (int)(m_phlist.size()*m_truncate); 00315 00316 //some old data with od methods 00317 if(runflag ==1 || runflag ==2 ) 00318 ex_calib->dedx_pid_exp_old( landau, runflag, (float)dEdx, (int)dedxhit_use, 00319 (float)m_P, (float)m_theta, (float)t0,(float)m_pl_rp, 00320 dedx_exp, ex_sigma, pid_prob, chi_ex); 00321 //for 2009 psip data and after 00322 else 00323 ex_calib->dedx_pid_exp( vflag, (float)dEdx, trkalg,(int)dedxhit_use, 00324 (float)m_P, (float)m_theta, (float)t0,(float)m_pl_rp, 00325 dedx_exp, ex_sigma, pid_prob, chi_ex, DedxCurve_Parameter, DedxSigma_Parameter); 00326 00327 #ifdef DEBUG 00328 std::cout<<"MdcDedxTrk::set_dEdx()!!!"<<std::endl; 00329 #endif 00330 }
void MdcDedxTrk::set_ExTrk | ( | RecMdcTrack & | trk | ) |
Definition at line 94 of file MdcDedxTrk.cxx.
References chi_ex, dedx_exp, ex_sigma, RecMdcTrack::getNhits(), DstMdcTrack::helix(), m_charge, m_nsample, m_P, m_phi, m_pl_rp, m_quality, m_stat, m_theta, m_trk, m_trk_id, pid_prob, DstMdcTrack::stat(), and DstMdcTrack::trackId().
Referenced by MdcDedxTrk().
00095 { 00096 for( unsigned a = 0; a < 5 ; a++ ) 00097 { 00098 dedx_exp[a]=0.0; 00099 ex_sigma[a]=0.0; 00100 pid_prob[a]=0.0; 00101 chi_ex[a]=0.0; 00102 } 00103 m_stat = 1; 00104 m_trk = &trk; 00105 m_trk_id = trk.trackId(); 00106 m_quality = trk.stat(); 00107 00108 m_charge = ( trk.helix(2) > 0 )? 1 : -1; 00109 float m_Pt = 1.0/fabs( trk.helix(2) ); 00110 m_P = m_Pt*sqrt(1 + trk.helix(4)*trk.helix(4)); 00111 m_theta = M_PI_2 - atan( trk.helix(4) ); 00112 m_phi = ( trk.helix(1) < 3*M_PI_2 )? trk.helix(1)+M_PI_2 : trk.helix(1)-3*M_PI_2; 00113 m_nsample = trk.getNhits(); 00114 m_pl_rp = 1.5; 00115 //cout<<"set_ExTrk: "<<trk.helix(0)<<" "<<trk.helix(1)<<" "<<trk.helix(2)<<" "<<trk.helix(3)<<" "<<trk.helix(4)<<endl; 00116 00117 #ifdef DEBUG 00118 std::cout<<"MdcDedxTrk::set_ExTrk(&trk)!!!"<<std::endl; 00119 #endif 00120 }
void MdcDedxTrk::set_ExTrk_Kal | ( | RecMdcKalTrack & | trk_kal, | |
int | pid | |||
) |
Definition at line 122 of file MdcDedxTrk.cxx.
References chi_ex, dedx_exp, ex_sigma, DstMdcKalTrack::getFHelix(), RecMdcKalTrack::getNhits(), DstMdcKalTrack::getStat(), m_charge, m_nsample, m_P, m_phi, m_pl_rp, m_quality, m_stat, m_theta, m_trk_id, m_trk_kal, pid_prob, and DstMdcKalTrack::trackId().
Referenced by MdcDedxTrk().
00123 { 00124 DstMdcKalTrack* dstTrk = &trk_kal; 00125 for( unsigned a = 0; a < 5 ; a++ ) 00126 { 00127 dedx_exp[a]=0.0; 00128 ex_sigma[a]=0.0; 00129 pid_prob[a]=0.0; 00130 chi_ex[a]=0.0; 00131 } 00132 if(pid<0 || pid>4) pid = 2; 00133 m_stat = 1; 00134 m_trk_kal = &trk_kal; 00135 m_trk_id = trk_kal.trackId(); 00136 m_quality = dstTrk->getStat(pid); 00137 00138 HepVector kal_helix = dstTrk->getFHelix(pid); 00139 m_charge = ( kal_helix[2] > 0 )? 1 : -1; 00140 float m_Pt = 1.0/fabs( kal_helix[2] ); 00141 m_P = m_Pt*sqrt(1 + kal_helix[4]*kal_helix[4]); 00142 m_theta = M_PI_2 - atan( kal_helix[4] ); 00143 m_phi = ( kal_helix[1] < 3*M_PI_2 )? kal_helix[1]+M_PI_2 : kal_helix[1]-3*M_PI_2; 00144 m_nsample = trk_kal.getNhits(pid); 00145 m_pl_rp = 1.5; 00146 //cout<<"set_ExTrk_Kal: "<<kal_helix[0]<<" "<<kal_helix[1]<<" "<<kal_helix[2]<<" "<<kal_helix[3]<<" "<<kal_helix[4]<<endl; 00147 #ifdef DEBUG 00148 std::cout<<"MdcDedxTrk::set_ExTrk_Kal(&trk_kal)!!!"<<std::endl; 00149 #endif 00150 }
void MdcDedxTrk::set_phlist | ( | const vector< double > & | phlist | ) | [inline] |
Definition at line 45 of file MdcDedxTrk.h.
References m_phlist.
Referenced by MdcDedxRecon::execute(), MdcDedxRecon::kaltrackrec(), and MdcDedxRecon::mdctrackrec().
00045 {m_phlist = phlist;}
void MdcDedxTrk::set_phlist_hit | ( | const vector< double > & | phlist | ) | [inline] |
Definition at line 46 of file MdcDedxTrk.h.
References m_phlist_hit.
Referenced by MdcDedxRecon::execute(), MdcDedxRecon::kaltrackrec(), and MdcDedxRecon::mdctrackrec().
00046 {m_phlist_hit = phlist;}
void MdcDedxTrk::setVecDedxHits | ( | const DedxHitRefVec & | vecdedxhit | ) | [inline] |
Definition at line 47 of file MdcDedxTrk.h.
References m_vecdedxhit.
Referenced by MdcDedxRecon::execute(), MdcDedxRecon::kaltrackrec(), and MdcDedxRecon::mdctrackrec().
00047 { m_vecdedxhit= vecdedxhit;}
double MdcDedxTrk::SpaceChargeCorrec | ( | double | , | |
double | , | |||
int | , | |||
double | ||||
) |
Definition at line 333 of file MdcDedxTrk.cxx.
Referenced by MdcDedxCorrection::dedx_pid_exp_old().
00334 { 00335 const int par_cand( 5 ); 00336 const float Charge_Mass[par_cand] = {0.00051100, 0.10566, 0.13957, 0.4937, 0.93827 }; 00337 double beta_G; 00338 double e_Par[5] = {143.349, 1.7315, 0.192616, 2.90437, 1.08248}; 00339 double Beta_Gamma[22] ={0.373026, 0.479605, 0.586184, 0.692763, 0.799342, 782.779, 1565.56, 00340 2348.34, 17.2727, 18.1245, 1.43297, 2.14946, 12.1803, 13.6132, 6.62515, 10.4109, 00341 14.1967, 17.9825, 21.7683, 26.0274, 30.7596, 35.4919 }; 00342 double K_par[22] ={4.64411e-05, 5.86544e-05, 8.05289e-05, 8.46981e-05, 8.92014e-05, 4.74517e-05, 00343 4.51684e-05, 5.32732e-05, 6.12803e-05, 6.14592e-05, 8.08608e-05, 6.73184e-05, 5.46448e-05, 00344 6.1377e-05, 6.57385e-05, 7.03053e-05, 6.61171e-05, 6.86824e-05, 6.246e-05, 7.25988e-05, 00345 7.11034e-05, 6.24924e-05 }; 00346 double D_par[22] ={0.0871504, 0.0956379, 0.117193, 0.118647, 0.127203, 0.0566449, 0.0529198, 00347 0.0642525, 0.0764562, 0.081341, 0.0952263, 0.0987536, 0.0639901, 0.0845994,0.0777062, 00348 0.0823206, 0.0783874, 0.079537, 0.0815792, 0.0849875, 0.0824751,0.0776296 }; 00349 double DSqr_par[22] = {0.00759519, 0.0091466, 0.0137341, 0.0140772, 0.0161807, 0.00320864, 00350 0.00280051, 0.00412839, 0.00584555, 0.00661636, 0.00906805, 0.00975227, 0.00409473, 00351 0.00715706, 0.00603826, 0.00677668, 0.00614458, 0.00632613, 0.00665516, 0.00722288, 00352 0.00680214, 0.00602635}; 00353 00354 beta_G = mom/Charge_Mass[Particle]; 00355 if(beta_G <0.3) beta_G =0.3; 00356 double bet=beta_G/TMath::Sqrt(beta_G*beta_G+1); 00357 double fterm=TMath::Log(e_Par[2]+1/pow(beta_G,e_Par[4])); 00358 double fitval=e_Par[0]/pow(bet,e_Par[3])*(e_Par[1]-pow(bet,e_Par[3])-fterm); 00359 TGraphErrors *gr1 = new TGraphErrors(22,Beta_Gamma, K_par,0,0); 00360 TGraphErrors *gr2 = new TGraphErrors(22,Beta_Gamma, DSqr_par,0,0); 00361 00362 double par[3]; 00363 par[0] = fitval; 00364 par[1] = gr1->Eval(m_theta); 00365 par[2] = gr2->Eval(m_theta); 00366 Double_t y = fabs(cos(m_theta)); 00367 double electron_par[3] ={334.032, 6.20658e-05, 0.00525673}; 00368 double arg= TMath::Sqrt(y*y+ par[2]); 00369 //double cal_factor =par[0]*TMath::Exp(-(par[1]* par[0])/arg); 00370 double cal_factor =TMath::Exp(-(par[1]* par[0])/arg); 00371 double arg_electron = TMath::Sqrt(y*y + electron_par[2]); 00372 //double electron_factor = electron_par[0]*TMath::Exp(-(electron_par[1]* electron_par[0])/arg); 00373 double electron_factor = TMath::Exp(-(electron_par[1]* electron_par[0])/arg_electron); 00374 //cout<<"cal_factor = "<<cal_factor<<" electron_factor = "<<electron_factor<<endl; 00375 double dedx_cal = dEdx/(cal_factor/electron_factor); 00376 //double dedx_cal = dEdx/cal_factor; 00377 //cout<<"m_theta= "<<m_theta<<" y ="<<y<<" beta_G = "<<beta_G <<" dEdx = "<<dEdx<<" cal dedx = "<<dedx_cal<<endl; 00378 delete gr1; 00379 delete gr2; 00380 return dedx_cal; 00381 }
int MdcDedxTrk::stat | ( | ) | const [inline] |
double MdcDedxTrk::theta | ( | ) | const [inline] |
int MdcDedxTrk::trk_id | ( | ) | const [inline] |
Definition at line 58 of file MdcDedxTrk.h.
References m_trk_id.
Referenced by MdcDedxRecon::execute(), MdcDedxRecon::kaltrackrec(), and MdcDedxRecon::mdctrackrec().
00058 {return m_trk_id;}
RecMdcTrack* MdcDedxTrk::trk_ptr | ( | ) | const [inline] |
RecMdcKalTrack* MdcDedxTrk::trk_ptr_kal | ( | ) | const [inline] |
double MdcDedxTrk::chi_ex[5] [private] |
Definition at line 81 of file MdcDedxTrk.h.
Referenced by chi_dedx(), MdcDedxTrk(), pchi_dedx(), set_dEdx(), set_ExTrk(), and set_ExTrk_Kal().
double MdcDedxTrk::dedx_exp[5] [private] |
Definition at line 78 of file MdcDedxTrk.h.
Referenced by expect(), MdcDedxTrk(), pexpect(), set_dEdx(), set_ExTrk(), and set_ExTrk_Kal().
double MdcDedxTrk::ex_sigma[5] [private] |
Definition at line 79 of file MdcDedxTrk.h.
Referenced by exp_sigma(), MdcDedxTrk(), pexp_sigma(), set_dEdx(), set_ExTrk(), and set_ExTrk_Kal().
int MdcDedxTrk::m_charge [private] |
Definition at line 91 of file MdcDedxTrk.h.
Referenced by charge(), MdcDedxTrk(), set_ExTrk(), and set_ExTrk_Kal().
double MdcDedxTrk::m_dEdx [private] |
int MdcDedxTrk::m_nsample [private] |
Definition at line 95 of file MdcDedxTrk.h.
Referenced by MdcDedxTrk(), nsample(), set_ExTrk(), and set_ExTrk_Kal().
float MdcDedxTrk::m_P [private] |
Definition at line 92 of file MdcDedxTrk.h.
Referenced by MdcDedxTrk(), P(), Pt(), set_dEdx(), set_ExTrk(), and set_ExTrk_Kal().
double MdcDedxTrk::m_phi [private] |
Definition at line 94 of file MdcDedxTrk.h.
Referenced by MdcDedxTrk(), phi(), set_ExTrk(), and set_ExTrk_Kal().
vector<double> MdcDedxTrk::m_phlist [private] |
Definition at line 98 of file MdcDedxTrk.h.
Referenced by cal_dedx(), cal_dedx_bitrunc(), cal_dedx_geometric(), cal_dedx_geometric_trunc(), cal_dedx_harmonic(), cal_dedx_harmonic_trunc(), cal_dedx_log(), cal_dedx_median(), cal_dedx_transform(), get_phlist(), set_dEdx(), and set_phlist().
vector<double> MdcDedxTrk::m_phlist_hit [private] |
double MdcDedxTrk::m_pl_rp [private] |
Definition at line 96 of file MdcDedxTrk.h.
Referenced by MdcDedxTrk(), set_dEdx(), set_ExTrk(), and set_ExTrk_Kal().
int MdcDedxTrk::m_quality [private] |
Definition at line 90 of file MdcDedxTrk.h.
Referenced by MdcDedxTrk(), quality(), set_ExTrk(), and set_ExTrk_Kal().
int MdcDedxTrk::m_stat [private] |
Definition at line 87 of file MdcDedxTrk.h.
Referenced by MdcDedxTrk(), set_ExTrk(), set_ExTrk_Kal(), and stat().
double MdcDedxTrk::m_theta [private] |
Definition at line 93 of file MdcDedxTrk.h.
Referenced by MdcDedxTrk(), Pt(), set_dEdx(), set_ExTrk(), set_ExTrk_Kal(), and theta().
RecMdcTrack* MdcDedxTrk::m_trk [private] |
int MdcDedxTrk::m_trk_id [private] |
Definition at line 88 of file MdcDedxTrk.h.
Referenced by MdcDedxTrk(), set_ExTrk(), set_ExTrk_Kal(), and trk_id().
RecMdcKalTrack* MdcDedxTrk::m_trk_kal [private] |
Definition at line 86 of file MdcDedxTrk.h.
Referenced by MdcDedxTrk(), set_ExTrk_Kal(), and trk_ptr_kal().
float MdcDedxTrk::m_truncate [private] |
Definition at line 83 of file MdcDedxTrk.h.
Referenced by cal_dedx(), cal_dedx_bitrunc(), cal_dedx_geometric_trunc(), cal_dedx_harmonic_trunc(), MdcDedxTrk(), and set_dEdx().
DedxHitRefVec MdcDedxTrk::m_vecdedxhit [private] |
double MdcDedxTrk::pid_prob[5] [private] |
Definition at line 80 of file MdcDedxTrk.h.
Referenced by MdcDedxTrk(), pprob(), prob(), set_dEdx(), set_ExTrk(), and set_ExTrk_Kal().