BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
PrimaryVertex.h
Go to the documentation of this file.
1#ifndef Analysis_PRIMARYVTX_H
2#define Analysis_PRIMARYVTX_H
3
4#include "CLHEP/Matrix/Vector.h"
5#include "EvtRecEvent/EvtRecPrimaryVertex.h"
6#include "EvtRecEvent/EvtRecTrack.h"
7#include "GaudiKernel/Algorithm.h"
8#include "GaudiKernel/NTuple.h"
9#include "TH1D.h"
10
11using CLHEP::HepVector;
12
13class EvtRecEvent;
14
15class PrimaryVertex : public Algorithm {
16public:
17 PrimaryVertex( const std::string& name, ISvcLocator* pSvcLocator );
18 StatusCode initialize();
19 StatusCode execute();
20 StatusCode finalize();
21
22private:
23 StatusCode RegisterEvtRecPrimaryVertex( EvtRecPrimaryVertex* aNewEvtRecPrimaryVertex,
24 MsgStream& log );
25
26 void SelectGoodChargedTracks( SmartDataPtr<EvtRecEvent>& recEvent,
27 SmartDataPtr<EvtRecTrackCol>& recTrackCol,
28 std::vector<int>& icp, std::vector<int>& icm,
29 std::vector<int>& iGood );
30
31private:
32 int m_sel_number[15];
33
34 int m_trackNumberCut;
35 double m_vz0Cut;
36 double m_cosThetaCut;
37 int m_fitMethod;
38 double m_globalChisqCut;
39 double m_chisqCut;
40 int m_trackIteration;
41 int m_vertexIteration;
42 double m_chi2CutforTrkIter;
43 int m_freedomCut;
44 double m_chi2CutforSmooth;
45 /*
46 //particle ID cut
47 bool m_useDedx;
48 bool m_useTof1;
49 bool m_useTof2;
50 bool m_useTofE;
51 bool m_useTofQ;
52 bool m_useEmc;
53 bool m_useMuc;
54 double m_PidProbCut;*/
55
56 int m_output; // switch of output PrimaryVertex.root
57
58 // define NTuples
59 NTuple::Tuple* m_tuple1; // Global vertex fit results
60 NTuple::Item<double> m_chig;
61 NTuple::Item<long> m_ndofg;
62 NTuple::Item<double> m_probg;
63 NTuple::Item<double> m_gvx;
64 NTuple::Item<double> m_gvy;
65 NTuple::Item<double> m_gvz;
66
67 NTuple::Tuple* m_tuple2; // chi-square of smooth
68 NTuple::Item<double> m_chis;
69 NTuple::Item<double> m_chif;
70 NTuple::Item<double> m_probs;
71 NTuple::Item<double> m_probf;
72
73 NTuple::Tuple* m_tuple3;
74 NTuple::Item<double> m_pull_drho;
75 NTuple::Item<double> m_pull_phi;
76 NTuple::Item<double> m_pull_kapha;
77 NTuple::Item<double> m_pull_dz;
78 NTuple::Item<double> m_pull_lamb;
79 NTuple::Item<double> m_pull_momentum;
80
81 NTuple::Tuple* m_tuple4; // Kalman vertex fit results
82 NTuple::Item<double> m_chik;
83 NTuple::Item<long> m_ndofk;
84 NTuple::Item<double> m_probk;
85 NTuple::Item<double> m_kvx;
86 NTuple::Item<double> m_kvy;
87 NTuple::Item<double> m_kvz;
88};
89#endif
StatusCode finalize()
StatusCode initialize()
PrimaryVertex(const std::string &name, ISvcLocator *pSvcLocator)
StatusCode execute()