/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Reconstruction/MdcDedxAlg/MdcDedxAlg-00-06-57/MdcDedxAlg/MdcDedxRecon.h

Go to the documentation of this file.
00001 //    BesIII MDC dE/dx Reconstruction Module
00002 //    Class: MdcDedxRecon
00003 //    Created by Dayong WANG 2003/11
00004 
00005 #include <vector>
00006 #include <iostream>
00007 #include <fstream>
00008 #include <string>
00009 #include "GaudiKernel/Algorithm.h"
00010 #include "GaudiKernel/ISvcLocator.h"
00011 #include "AIDA/IHistogram1D.h"
00012 #include "AIDA/IHistogram2D.h"
00013 #include "GaudiKernel/NTuple.h"
00014 #include "DedxCorrecSvc/DedxCorrecSvc.h"
00015 #include "DedxCurSvc/DedxCurSvc.h"
00016 #include "MdcGeomSvc/MdcGeomSvc.h"
00017 
00018 #include "MdcDedxAlg/MdcDedxTrk.h"
00019 #include "MdcDedxAlg/MdcDedxCorrection.h"
00020 
00021 #include "TFile.h"
00022 #include "TObjArray.h"
00023 #include "TFolder.h"
00024 #include "TH1F.h"
00025 
00026 class DedxCorrection;
00027 class MdcDedxTrk;
00028 
00029 class MdcDedxRecon:public Algorithm  {
00030 
00031     public:
00032         MdcDedxRecon (const std::string& name, ISvcLocator* pSvcLocator ); 
00033         ~MdcDedxRecon() {};
00034 
00035         StatusCode initialize();
00036         StatusCode execute();
00037         StatusCode finalize();
00038         StatusCode beginRun(); 
00039 
00040         const std::vector<MdcDedxTrk>& tracks(void) const; 
00041         void clearTables(); 
00042 
00043         void mdctrackrec(RecMdcTrackCol::iterator trk, Identifier mdcid, double tes, int RunNO,int runFlag, MsgStream log);
00044         void kaltrackrec(RecMdcKalTrackCol::iterator trk, Identifier mdcid, double tes, int RunNO,int runFlag, MsgStream log);
00045         void switchtomdctrack(int trkid, Identifier mdcid, double tes, int RunNO,int runFlag, MsgStream log);
00046 
00047 
00048     private:
00049         int   calib_flag; 
00050         int   landau;
00051         int   ntpFlag;
00052         int   doNewGlobal;
00053         int   recalg;  //reconstruction method: 
00054         //0:RecMdcTrack; 1:RecMdcKalTrack; 2:RecMdcTrack when no RecMdcKalTrack 
00055         int ParticleFlag;//particle type flag: 0: electron, 1:muon, 2: pion, 3:kaon, 4:proton
00056         int m_alg;  // algorithm 1: bi-truncation; 2: transformation; 3: logorithm mean;
00057         float truncate; // truncation rate
00058         std::string m_rootfile;   
00059 
00060         IDedxCurSvc* dedxcursvc;      
00061         IMdcGeomSvc* geosvc;
00062         IDedxCorrecSvc* exsvc;
00063         MdcDedxCorrection * ex_calib;
00064         std::vector<MdcDedxTrk> ex_trks;
00065         std::vector<int> m_trkalgs;
00066         int m_trkalg;
00067 
00068         RecMdcDedxCol* dedxList;
00069         RecMdcDedx*  resdedx;
00070         RecMdcDedxHitCol* dedxhitList;
00071         RecMdcDedxHit* dedxhit;
00072         DedxHitRefVec* dedxhitrefvec;
00073 
00074         //root file
00075         TObjArray* m_hlist;
00076         TFolder* m_hitlevel;
00077         TH1F* m_hitNo_wire;
00078 
00079         //Ntuple file
00080         NTuple::Tuple* m_nt1;
00081         NTuple::Item<float>  m_phtm;
00082         //NTuple::Item<float>  m_median; 
00083         //NTuple::Item<float>  m_geometric;
00084         //NTuple::Item<float>  m_geometric_trunc;
00085         //NTuple::Item<float>  m_harmonic;
00086         //NTuple::Item<float>  m_harmonic_trunc;
00087         //NTuple::Item<float>  m_transform;
00088         //NTuple::Item<float>  m_logtrunc;   
00089         NTuple::Item<float>  m_dEdx_meas;
00090 
00091         NTuple::Item<float>  m_ptrk;
00092         NTuple::Item<float>  m_costheta;
00093         NTuple::Item<float>  m_sintheta;
00094         NTuple::Item<float>  m_charge;
00095         NTuple::Item<float>  m_runNO;                                   
00096         NTuple::Item<float>  m_evtNO;
00097         NTuple::Item<float>  m_t0;
00098         NTuple::Item<float>  m_trackId;
00099         NTuple::Item<float>  m_poca_x;
00100         NTuple::Item<float>  m_poca_y;
00101         NTuple::Item<float>  m_poca_z;
00102         NTuple::Item<float>  m_recalg;
00103 
00104         NTuple::Item<float>  m_nhit;
00105         NTuple::Item<float>  m_usedhit;
00106         NTuple::Item<long>   m_nphlisthit;
00107         NTuple::Array<double> m_dEdx_hit;
00108 
00109         NTuple::Array<float>  m_probpid;
00110         NTuple::Array<float>  m_expectid;
00111         NTuple::Array<float>  m_sigmaid;
00112         NTuple::Item<float>  m_parttype;
00113         NTuple::Item<float>  m_prob;
00114         NTuple::Item<float>  m_expect;
00115         NTuple::Item<float>  m_sigma;
00116         NTuple::Item<float>  m_chidedx;
00117         NTuple::Item<float>  m_chidedxe;
00118         NTuple::Item<float>  m_chidedxmu;
00119         NTuple::Item<float>  m_chidedxpi;
00120         NTuple::Item<float>  m_chidedxk;
00121         NTuple::Item<float>  m_chidedxp;
00122 
00123 
00124         NTuple::Tuple* m_nt2;
00125         NTuple::Item<double>  m_charge1;
00126         NTuple::Item<double>  m_phraw;
00127         NTuple::Item<double>  m_exraw;   
00128         NTuple::Item<float>  m_wire; 
00129         NTuple::Item<float>  m_localwid;
00130         NTuple::Item<double> m_runNO1;
00131         NTuple::Item<float>  m_nhit_hit;
00132         NTuple::Item<float>  m_doca_in;
00133         NTuple::Item<float>  m_doca_ex;
00134         NTuple::Item<float>  m_driftdist;
00135         NTuple::Item<float>  m_eangle;
00136         NTuple::Item<float>  m_costheta1;
00137         NTuple::Item<float>  m_pathL;
00138         NTuple::Item<float>  m_layer;
00139         NTuple::Item<float>  m_ptrk1;
00140         NTuple::Item<float>  m_ptrk_hit;
00141         NTuple::Item<float>  m_t01;
00142         NTuple::Item<float>  m_tdc_raw;
00143         NTuple::Item<float>  m_driftT;
00144         NTuple::Item<float>  m_trackId1;
00145 };

Generated on Tue Nov 29 23:13:25 2016 for BOSS_7.0.2 by  doxygen 1.4.7