Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

MdcPerformance.h

Go to the documentation of this file.
00001 #ifndef MDCPERFORMANCE_H
00002 #define MDCPERFORMANCE_H
00003 #include "GaudiKernel/Algorithm.h"
00004 #include <string>
00005 #include <vector>
00006 #include "CLHEP/Vector/ThreeVector.h"
00007 #include "CLHEP/HepPDT/ParticleDataTable.hh"
00008 #include "GaudiKernel/NTuple.h"
00009 #include "McTruth/McParticle.h"
00010 #include "McTruth/MdcMcHit.h"
00011 #include "RawDataProviderSvc/RawDataProviderSvc.h"
00012 #include "MdcGeomSvc/IMdcGeomSvc.h"
00013 #include "MdcGeomSvc/MdcGeoWire.h"
00014 #include "MdcGeomSvc/MdcGeoLayer.h"
00015 #include "MagneticField/IMagneticFieldSvc.h"
00016 #include "BField/BField.h"
00017 #include "MdcNavigation/MdcCheckUtil.h"
00018 class MdcDetector;
00019 
00020 class MdcPerformance:public Algorithm {
00021 public:
00022   MdcPerformance (const std::string& name, ISvcLocator* pSvcLocator);
00023   StatusCode initialize();
00024   StatusCode execute();
00025   StatusCode finalize();
00026 
00027 private:
00028   StatusCode bookNTuple();
00029   StatusCode fillInit();
00030   StatusCode fillRawEvent();
00031   StatusCode getNoiseThroughRawDigi();
00032   StatusCode fillRecEvent();
00033   StatusCode fillRecTrack(const RecMdcTrack* tk);
00034 
00035   HepPDT::ParticleDataTable* m_particleTable;
00036   RawDataProviderSvc*        m_rawDataProviderSvc; 
00037   IMagneticFieldSvc*         m_pIMF;
00038   const MdcDetector *        m_gm;
00039   double Bz;
00040 
00041   int    havedigi[43][288]; 
00042   short  multiTdcCount[43][288];
00043   bool   m_doSag;
00044   bool   m_rawData;
00045   long   t_eventNo;
00046   long   t_runNo;
00047   double t_t0;
00048   double t_t0Stat;
00049   double t_t0Truth;
00050   int    t_timing;
00051   int    t_nTk;
00052   double t_recTkNum;
00053   int    t_mcTkNum;
00054   int    t_patRecTk ;
00055   int    t_mdcxRecTk;
00056   int    t_trkRecoTk;
00057 
00058   bool              m_keepFirstTdc; 
00059   bool              m_poca;
00060   int               m_maxMdcDigi;
00061   bool              m_keepBadTdc;
00062   bool              m_dropHot;
00063   bool              m_keepUnmatch;
00064   double            m_mass;
00065   MdcCheckUtil*     m_mdcCheckUtil;
00066 
00067   NTuple::Tuple*  m_tupleRawEvt;
00068   NTuple::Tuple*  m_tuple1;
00069   NTuple::Item<double>             m_t3_recTk;
00070   NTuple::Item<long>               m_t3_TrkReco;
00071   NTuple::Item<long>               m_t3_PatRec;
00072   NTuple::Item<double>             m_t3_evtNo;
00073   NTuple::Item<long>               m_t3_runNo;
00074   NTuple::Item<double>             m_t3_t0; 
00075   NTuple::Item<double>             m_t3_t0Truth; 
00076   NTuple::Item<long>               m_t3_t0Stat; 
00077   //trigger
00078   NTuple::Item<long>               m_trig_index;
00079   NTuple::Array<long>              m_trig_cond;
00080   NTuple::Array<long>              m_trig_chan;
00081   NTuple::Item<long>               m_trig_timewindow;
00082   NTuple::Item<long>               m_trig_timetype;
00083 
00084   NTuple::Item<long>               m_t3_nDigi;
00085   NTuple::Item<long>               m_t3_nDigiUnmatch;
00086   NTuple::Array<long>              m_t3_layer;
00087   NTuple::Array<long>              m_t3_wire;
00088   NTuple::Array<long>              m_t3_gwire;
00089   NTuple::Array<double>            m_t3_rt;
00090   NTuple::Array<double>            m_t3_rc;
00091   NTuple::Array<long>              m_t3_ovfl;
00092 
00093   NTuple::Item<double>             m_evtNo;
00094   NTuple::Item<double>             m_runNo;
00095   NTuple::Item<double>             m_d0;
00096   NTuple::Item<double>             m_phi0;
00097   NTuple::Item<double>             m_cpa;
00098   NTuple::Item<double>             m_z0;
00099   NTuple::Item<double>             m_tanl;
00100   NTuple::Item<double>             m_d0E;
00101   NTuple::Item<double>             m_phi0E;
00102   NTuple::Item<double>             m_cpaE;
00103   NTuple::Item<double>             m_z0E;
00104   NTuple::Item<double>             m_tanlE;
00105   NTuple::Item<double>             m_q;
00106   NTuple::Item<double>             m_recTkNum;
00107   NTuple::Item<double>             m_p;
00108   NTuple::Item<double>             m_pt;
00109   NTuple::Item<double>             m_pz;
00110   NTuple::Item<double>             m_pcms;
00111 
00112   NTuple::Item<long>               m_nHit;
00113   NTuple::Item<long>               m_nAct;
00114   NTuple::Item<long>               m_nSt;
00115   NTuple::Item<long>               m_nDof;
00116   NTuple::Item<double>             m_fiTerm;
00117   NTuple::Item<double>             m_chi2;
00118   NTuple::Item<double>             m_chi2Dof;
00119   NTuple::Item<double>             m_chi2Prob;
00120   NTuple::Item<long>               m_tkStat;
00121 
00122 
00123   NTuple::Item<long>               m_tkId;
00124   NTuple::Array<long>              m_layer;
00125   NTuple::Array<long>              m_wire;
00126   NTuple::Array<double>            m_gwire;
00127   NTuple::Array<double>            m_resid;
00128   NTuple::Array<double>            m_driftD;
00129   NTuple::Array<double>            m_driftT;
00130   NTuple::Array<double>            m_doca;
00131   NTuple::Array<double>            m_entra;
00132   NTuple::Array<double>            m_zhit;
00133   NTuple::Array<double>            m_chi2add;
00134   NTuple::Array<double>            m_flaglr;
00135   NTuple::Array<double>            m_Tdc;
00136   NTuple::Array<double>            m_Adc;
00137   NTuple::Array<long>            m_hitStat;
00138 
00139 
00140 };
00141 
00142 #endif

Generated on Wed Feb 2 15:42:00 2011 for BOSS6.5.5 by  doxygen 1.3.9.1