/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Reconstruction/PrimaryVertexAlg/PrimaryVertexAlg-00-00-04/PrimaryVertexAlg/PrimaryVertex.h

Go to the documentation of this file.
00001 #ifndef Analysis_PRIMARYVTX_H
00002 #define Analysis_PRIMARYVTX_H
00003 
00004 #include "GaudiKernel/AlgFactory.h"
00005 #include "GaudiKernel/Algorithm.h"
00006 #include "GaudiKernel/NTuple.h"
00007 #include "TH1D.h"
00008 #include "CLHEP/Matrix/Vector.h"
00009 #include "EvtRecEvent/EvtRecPrimaryVertex.h"
00010 #include "EvtRecEvent/EvtRecTrack.h"
00011 
00012 using CLHEP::HepVector;
00013 
00014 class EvtRecEvent;
00015 
00016 class PrimaryVertex : public Algorithm {
00017  public:
00018   PrimaryVertex(const std::string& name, ISvcLocator* pSvcLocator);
00019   StatusCode initialize();
00020   StatusCode execute();
00021   StatusCode finalize();
00022 
00023  private:
00024   StatusCode RegisterEvtRecPrimaryVertex(
00025       EvtRecPrimaryVertex* aNewEvtRecPrimaryVertex,
00026       MsgStream& log);
00027 
00028   void SelectGoodChargedTracks(
00029       SmartDataPtr<EvtRecEvent>& recEvent,
00030       SmartDataPtr<EvtRecTrackCol>& recTrackCol,
00031       std::vector<int>& icp, std::vector<int>& icm, std::vector<int>& iGood);
00032 
00033  private:
00034   int m_sel_number[15];
00035 
00036   int m_trackNumberCut;
00037   double m_vz0Cut;
00038   double m_cosThetaCut; 
00039   int m_fitMethod;
00040   double m_globalChisqCut; 
00041   double m_chisqCut;
00042   int m_trackIteration;
00043   int m_vertexIteration;
00044   double m_chi2CutforTrkIter;
00045   int m_freedomCut;
00046   double m_chi2CutforSmooth;
00047   /*
00048   //particle ID cut
00049   bool m_useDedx;
00050   bool m_useTof1;
00051   bool m_useTof2;
00052   bool m_useTofE;
00053   bool m_useTofQ;
00054   bool m_useEmc;
00055   bool m_useMuc;
00056   double m_PidProbCut;*/
00057 
00058   int m_output; //switch of output PrimaryVertex.root
00059 
00060   // define NTuples
00061   NTuple::Tuple* m_tuple1; // Global vertex fit results
00062   NTuple::Item<double>  m_chig;
00063   NTuple::Item<long>    m_ndofg;
00064   NTuple::Item<double>  m_probg;
00065   NTuple::Item<double>  m_gvx;
00066   NTuple::Item<double>  m_gvy;
00067   NTuple::Item<double>  m_gvz;
00068 
00069   NTuple::Tuple* m_tuple2; // chi-square of smooth
00070   NTuple::Item<double>  m_chis;
00071   NTuple::Item<double>  m_chif;
00072   NTuple::Item<double>  m_probs;
00073   NTuple::Item<double>  m_probf;
00074   
00075   NTuple::Tuple* m_tuple3;
00076   NTuple::Item<double> m_pull_drho;
00077   NTuple::Item<double> m_pull_phi;
00078   NTuple::Item<double> m_pull_kapha;
00079   NTuple::Item<double> m_pull_dz;
00080   NTuple::Item<double> m_pull_lamb;
00081   NTuple::Item<double> m_pull_momentum;
00082 
00083   NTuple::Tuple* m_tuple4; // Kalman vertex fit results
00084   NTuple::Item<double>  m_chik;
00085   NTuple::Item<long>    m_ndofk;
00086   NTuple::Item<double>  m_probk;
00087   NTuple::Item<double>  m_kvx;
00088   NTuple::Item<double>  m_kvy;
00089   NTuple::Item<double>  m_kvz;
00090 };
00091 #endif

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