BOSS 7.0.1
BESIII Offline Software System
Loading...
Searching...
No Matches
Analysis/Physics/PsiPrime/PipiJpsiAlg/PipiJpsiAlg-00-00-03/PipiJpsiAlg/PipiJpsi.h
Go to the documentation of this file.
1//psi'--> J/psi pion pion, J/psi --> di-leptons
2//Kai Zhu ([email protected])
3#ifndef Physics_Analysis_PipiJpsi_H
4#define Physics_Analysis_PipiJpsi_H
5
6#include "GaudiKernel/AlgFactory.h"
7#include "GaudiKernel/Algorithm.h"
8#include "GaudiKernel/NTuple.h"
9#include "trkInfo.h"
10
11class PipiJpsi : public Algorithm {
12
13public:
14 PipiJpsi(const std::string& name, ISvcLocator* pSvcLocator);
15 StatusCode initialize();
16 StatusCode execute();
17 StatusCode finalize();
18
19private:
20
21 // Declare r0, z0 cut for charged tracks
22 double m_vr0cut;
23 double m_vz0cut;
24
25 //
26 bool m_checkDedx;
27 bool m_checkTof;
28 bool m_eventrate;
29 int m_chan_det;
30 // declare the track angle cut and track's transverse momentum
31 double m_cosThetaCut;
32
33 // declare the cut angle between two pions to drop gamma conversion
34 double m_pipi_dang_cut;
35
36 // declare whether pick up sub-sample
37 bool m_subsample_flag, m_trigger_flag;
38
39 // declare energy/moentum to distinguish e and muon
40 double m_distin_emuon;
41
42 // define Ntuples here
43 NTuple::Tuple* m_tuple1; // charged track vertex
44 NTuple::Item<double> m_vx0;
45 NTuple::Item<double> m_vy0;
46 NTuple::Item<double> m_vz0;
47 NTuple::Item<double> m_vr0;
48
49 NTuple::Tuple* m_tuple2; // fake photon
50 NTuple::Item<double> m_dthe;
51 NTuple::Item<double> m_dphi;
52 NTuple::Item<double> m_dang;
53 NTuple::Item<double> m_eraw;
54 NTuple::Item<long> m_nGam;
55
56 NTuple::Tuple* m_tuple3; // dE/dx
57 NTuple::Item<double> m_ptrk;
58 NTuple::Item<double> m_chie;
59 NTuple::Item<double> m_chimu;
60 NTuple::Item<double> m_chipi;
61 NTuple::Item<double> m_chik;
62 NTuple::Item<double> m_chip;
63 NTuple::Item<double> m_probPH;
64 NTuple::Item<double> m_normPH;
65 NTuple::Item<double> m_ghit;
66 NTuple::Item<double> m_thit;
67
68 NTuple::Tuple* m_tuple4; // endcap tof
69 NTuple::Item<double> m_ptot_etof;
70 NTuple::Item<double> m_cntr_etof;
71 NTuple::Item<double> m_path_etof;
72 NTuple::Item<double> m_tof_etof;
73 NTuple::Item<double> m_te_etof;
74 NTuple::Item<double> m_tmu_etof;
75 NTuple::Item<double> m_tpi_etof;
76 NTuple::Item<double> m_tk_etof;
77 NTuple::Item<double> m_tp_etof;
78 NTuple::Item<double> m_ph_etof;
79 NTuple::Item<double> m_rhit_etof;
80 NTuple::Item<double> m_qual_etof;
81
82 NTuple::Tuple* m_tuple5; // barrel inner tof
83 NTuple::Item<double> m_ptot_btof1;
84 NTuple::Item<double> m_cntr_btof1;
85 NTuple::Item<double> m_path_btof1;
86 NTuple::Item<double> m_tof_btof1;
87 NTuple::Item<double> m_te_btof1;
88 NTuple::Item<double> m_tmu_btof1;
89 NTuple::Item<double> m_tpi_btof1;
90 NTuple::Item<double> m_tk_btof1;
91 NTuple::Item<double> m_tp_btof1;
92 NTuple::Item<double> m_ph_btof1;
93 NTuple::Item<double> m_zhit_btof1;
94 NTuple::Item<double> m_qual_btof1;
95
96 NTuple::Tuple* m_tuple6; // barrel outer tof
97 NTuple::Item<double> m_ptot_btof2;
98 NTuple::Item<double> m_cntr_btof2;
99 NTuple::Item<double> m_path_btof2;
100 NTuple::Item<double> m_tof_btof2;
101 NTuple::Item<double> m_te_btof2;
102 NTuple::Item<double> m_tmu_btof2;
103 NTuple::Item<double> m_tpi_btof2;
104 NTuple::Item<double> m_tk_btof2;
105 NTuple::Item<double> m_tp_btof2;
106 NTuple::Item<double> m_ph_btof2;
107 NTuple::Item<double> m_zhit_btof2;
108 NTuple::Item<double> m_qual_btof2;
109
110 // with the method of momentum selection
111 NTuple::Tuple* m_tuple8;
112 NTuple::Item<double> m_mom_lepm;
113 NTuple::Item<double> m_mom_lepp;
114 NTuple::Item<double> m_mom_pionp;
115 NTuple::Item<double> m_mom_pionm;
116 NTuple::Item<double> m_pipi_dang;
117 NTuple::Item<double> m_cms_lepp;
118 NTuple::Item<double> m_cms_lepm;
119 NTuple::Item<double> m_mass_twopi;
120 NTuple::Item<double> m_mass_jpsi;
121 NTuple::Item<double> m_mass_recoil;
122 NTuple::Item<double> m_inv_mass;
123 NTuple::Item<double> m_tot_e;
124 NTuple::Item<double> m_tot_px;
125 NTuple::Item<double> m_tot_py;
126 NTuple::Item<double> m_tot_pz;
127 NTuple::Item<double> m_ep_ratio;
128 NTuple::Item<long> m_event_flag; // 3 or 4 tracks, 4=>4 tracks, 0=> miss pi+, 1=> miss pi-, 2=> miss lepton+, 3=> miss lepton-
129 NTuple::Item<double> m_trans_ratio_lepm;
130 NTuple::Item<double> m_trans_ratio_lepp;
131 NTuple::Item<double> m_trans_ratio_pionp;
132 NTuple::Item<double> m_trans_ratio_pionm;
133 NTuple::Item<long> m_run;
134 NTuple::Item<long> m_event;
135 NTuple::Item<long> m_index;
136 NTuple::Array<double> m_cos_theta;
137 NTuple::Array<double> m_phi;
138 NTuple::Matrix<double> m_four_mom;
139 // we don't need smear, actually, assume one track of pi pi is missing, the recoil mass is actually the invariant of pair-lepton
140 NTuple::Item<long> m_pion_matched;
141 NTuple::Item<long> m_lep_matched;
142 // book MCtruth
143 NTuple::Item<long> m_idxmc;
144 NTuple::Array<long> m_pdgid;
145 NTuple::Array<long> m_motheridx;
146 NTuple::Item<double> m_true_pionp; // pions' momentum from MC truth
147 NTuple::Item<double> m_true_pionm;
148
149};
150
151
152#endif
StatusCode finalize()
Definition: PipiJpsi.cxx:763
StatusCode execute()
Definition: PipiJpsi.cxx:287
StatusCode initialize()
Definition: PipiJpsi.cxx:84