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