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