BOSS 7.0.8
BESIII Offline Software System
Loading...
Searching...
No Matches
LTagTool.h
Go to the documentation of this file.
1
2#ifndef CLASS_DTAGTOOL_H
3#define CLASS_DTAGTOOL_H
4
5#include "GaudiKernel/ObjectVector.h"
6#include "GaudiKernel/AlgFactory.h"
7#include "GaudiKernel/Algorithm.h"
8#include "GaudiKernel/NTuple.h"
9#include "GaudiKernel/IDataProviderSvc.h"
10
11#include "CLHEP/Vector/LorentzVector.h"
16
17
18#include <iostream>
19
20using namespace std;
21
22typedef EvtRecDTagCol::iterator DTagToolIterator;
23typedef EvtRecPi0Col::iterator pi0Iterator;
24typedef EvtRecVeeVertexCol::iterator ksIterator;
25
26
28
29 public:
30
32
34
35 //LTag operations
36 bool isDTagListEmpty() { return m_isdtaglistempty; }
37 void setPID(bool pid) {m_pid = pid;}
38
39
40
41 EvtRecDTagCol::iterator modes_begin(){ return m_iterbegin;}
42 EvtRecDTagCol::iterator modes_end(){ return m_iterend;}
43 EvtRecPi0Col::iterator pi0_begin(){ return m_pi0iterbegin;}
44 EvtRecVeeVertexCol::iterator ks_begin(){ return m_ksiterbegin;}
45
46
47 vector<int> D0modes() { return m_d0modes;}
48 vector<int> Dpmodes() { return m_dpmodes;}
49 vector<int> Dsmodes() { return m_dsmodes;}
50
51 vector<int> mode(EvtRecDTag::DecayMode decaymode);
52 vector<int> mode(int decaymode);
53
54
55
56 bool findSTag(EvtRecDTag::DecayMode mode, int tagcharm);
58 bool findDTag(EvtRecDTag::DecayMode mode1, EvtRecDTag::DecayMode mode2,string smass="mbc");
59 //bool findDTag(EvtRecDTag::DecayMode mode1, int tagcharm1,EvtRecDTag::DecayMode mode2, int tagcharm2,string smass="mbc" );
61 bool findADTag(EvtRecDTag::DecayMode mode1, int tagcharm1,EvtRecDTag::DecayMode mode2, int tagcharm2 );
62
63 bool findSTag(int mode, int tagcharm);
64 bool findSTag(int mode);
65 bool findDTag(int mode1, int mode2, string smass="mbc");
66 // bool findDTag(int mode1, int tagcharm1,int mode2, int tagcharm2,string smass="mbc" );
67 bool findDTag(int mode1, int tagcharm1,int mode2, int tagcharm2);//deltaE
68 bool findADTag(int mode1, int mode2);
69 bool findADTag(int mode1, int tagcharm1,int mode2, int tagcharm2);
70//add by lipr
71 int count() { return m_count;}
72 int veto(DTagToolIterator iter_tp);
89 HepLorentzVector getP4(RecEmcShower* gTrk);
90 void savepi0(RecEmcShower *shr1,RecEmcShower *shr2,double& pi0_chis,HepLorentzVector& p4_pi0,HepLorentzVector& p4_pi0_1c,WTrackParameter& wvlmd);
91 void saveeta(RecEmcShower *shr1,RecEmcShower *shr2,double& eta_chis,HepLorentzVector& p4_eta,HepLorentzVector& p4_eta_1c,WTrackParameter& wvlmd);
92void savelmd(RecMdcKalTrack* ppFlmdTrk,RecMdcKalTrack* pimFlmdTrk,double& lmd_1chis,double& lmd_2chis,double& lmd_dl,double& lmd_dle,double& lmd_lchue,HepLorentzVector& p4_lmd_1s,HepLorentzVector& p4_lmd_2s,int& lmd_state,WTrackParameter& wvlmd);
93void saveks(RecMdcKalTrack* pipTrk,RecMdcKalTrack* pimTrk,double& ks_1chis,double& ks_2chis,double& ks_dl,double& ks_dle,double& ks_lchue,HepLorentzVector& p4_ks_1s,HepLorentzVector& p4_ks_2s, int& ks_state,WTrackParameter& wvks);
94
95
96 EvtRecDTagCol::iterator stag(){ return m_iterstag;}
97 EvtRecDTagCol::iterator dtag1(){ return m_iterdtag1;}
98 EvtRecDTagCol::iterator dtag2(){ return m_iterdtag2;}
99 vector<EvtRecDTagCol::iterator> vdtag1(){ return m_viterdtag1;}
100 vector<EvtRecDTagCol::iterator> vdtag2(){ return m_viterdtag2;}
101
102
103 void operator<< ( EvtRecDTagCol::iterator iter);
104
105
106 //other utilities
107 HepLorentzVector pi0p4(EvtRecPi0Col::iterator pi0Itr, bool isconstrain=true);
108 vector<int> pi0Id(EvtRecDTagCol::iterator iter, int numpi0=1);
109 vector<int> ksId(EvtRecDTagCol::iterator iter, int numks=1);
110 HepLorentzVector p4shower(RecEmcShower* shower);
111 HepLorentzVector p4(RecMdcKalTrack* mdcKalTrack, int pid);
116 int numofShowerAboveThreshold(int threshold);
117 bool shareTracks(EvtRecDTagCol::iterator iter1, EvtRecDTagCol::iterator iter2);
118
119
120 void clear();
121 void name(){ cout<<" I am the dtag tool"<<endl;}
122
123 protected:
124
125 IDataProviderSvc* eventSvc();
126
127
128 private:
129
130 bool m_isdtaglistempty;
131
132 IDataProviderSvc* m_evtSvc;
133
134
135
136 EvtRecDTagCol::iterator m_iterbegin;
137 EvtRecDTagCol::iterator m_iterend;
138 EvtRecPi0Col::iterator m_pi0iterbegin;
139 EvtRecPi0Col::iterator m_pi0iterend;
140 EvtRecVeeVertexCol::iterator m_ksiterbegin;
141 EvtRecVeeVertexCol::iterator m_ksiterend;
142
143
144 bool m_pid;
145
146 EvtRecDTagCol::iterator m_iterstag;
147 EvtRecDTagCol::iterator m_iterdtag1;
148 EvtRecDTagCol::iterator m_iterdtag2;
149 vector<EvtRecDTagCol::iterator> m_viterdtag1;
150 vector<EvtRecDTagCol::iterator> m_viterdtag2;
151
152
153 int m_count;
154
155 vector<int> m_d0modes;
156 vector<int> m_dpmodes;
157 vector<int> m_dsmodes;
158
159 EvtRecTrackIterator m_chargebegin;
160 EvtRecTrackIterator m_chargeend;
161 EvtRecTrackIterator m_showerbegin;
162 EvtRecTrackIterator m_showerend;
163
164
165};
166
167
168
169
170#endif
EvtRecTrackCol::iterator EvtRecTrackIterator
Definition: EvtRecTrack.h:111
EvtStreamInputIterator< typename Generator::result_type > iter(Generator gen, int N=0)
EvtRecVeeVertexCol::iterator ksIterator
Definition: LTagTool.h:24
EvtRecPi0Col::iterator pi0Iterator
Definition: LTagTool.h:23
EvtRecDTagCol::iterator DTagToolIterator
Definition: LTagTool.h:22
void savepi0(RecEmcShower *shr1, RecEmcShower *shr2, double &pi0_chis, HepLorentzVector &p4_pi0, HepLorentzVector &p4_pi0_1c, WTrackParameter &wvlmd)
void clear()
IDataProviderSvc * eventSvc()
void name()
Definition: LTagTool.h:121
EvtRecDTagCol::iterator modes_end()
Definition: LTagTool.h:42
int savemode32(DTagToolIterator iter_tp)
EvtRecDTagCol::iterator stag()
Definition: LTagTool.h:96
int savemode62(DTagToolIterator iter_tp)
vector< int > Dpmodes()
Definition: LTagTool.h:48
int savemode31(DTagToolIterator iter_tp)
int savemode4(DTagToolIterator iter_tp)
vector< int > Dsmodes()
Definition: LTagTool.h:49
int savemode61(DTagToolIterator iter_tp)
int savemode64(DTagToolIterator iter_tp)
bool findADTag(EvtRecDTag::DecayMode mode1, EvtRecDTag::DecayMode mode2)
bool findDTag(int mode1, int tagcharm1, int mode2, int tagcharm2)
bool cosmicandleptonVeto()
HepLorentzVector p4shower(RecEmcShower *shower)
vector< int > mode(EvtRecDTag::DecayMode decaymode)
vector< int > mode(int decaymode)
EvtRecPi0Col::iterator pi0_begin()
Definition: LTagTool.h:43
int savemode30(DTagToolIterator iter_tp)
int savemode3(DTagToolIterator iter_tp)
bool isGoodTrack(EvtRecTrack *trk)
HepLorentzVector p4(RecMdcKalTrack *mdcKalTrack, int pid)
vector< EvtRecDTagCol::iterator > vdtag1()
Definition: LTagTool.h:99
int numofShowerAboveThreshold()
void savelmd(RecMdcKalTrack *ppFlmdTrk, RecMdcKalTrack *pimFlmdTrk, double &lmd_1chis, double &lmd_2chis, double &lmd_dl, double &lmd_dle, double &lmd_lchue, HepLorentzVector &p4_lmd_1s, HepLorentzVector &p4_lmd_2s, int &lmd_state, WTrackParameter &wvlmd)
int savemode0(DTagToolIterator iter_tp)
bool isDTagListEmpty()
Definition: LTagTool.h:36
bool findDTag(EvtRecDTag::DecayMode mode1, EvtRecDTag::DecayMode mode2, string smass="mbc")
vector< int > D0modes()
Definition: LTagTool.h:47
int veto(DTagToolIterator iter_tp)
bool findSTag(EvtRecDTag::DecayMode mode)
int savemode34(DTagToolIterator iter_tp)
int savemode60(DTagToolIterator iter_tp)
int savemode2(DTagToolIterator iter_tp)
int savemode1(DTagToolIterator iter_tp)
bool findADTag(int mode1, int mode2)
bool isGoodShower(EvtRecTrack *trk)
EvtRecDTagCol::iterator modes_begin()
Definition: LTagTool.h:41
int numofShowerAboveThreshold(int threshold)
void operator<<(EvtRecDTagCol::iterator iter)
int count()
Definition: LTagTool.h:71
bool shareTracks(EvtRecDTagCol::iterator iter1, EvtRecDTagCol::iterator iter2)
HepLorentzVector getP4(RecEmcShower *gTrk)
bool findADTag(EvtRecDTag::DecayMode mode1, int tagcharm1, EvtRecDTag::DecayMode mode2, int tagcharm2)
bool findSTag(EvtRecDTag::DecayMode mode, int tagcharm)
void saveks(RecMdcKalTrack *pipTrk, RecMdcKalTrack *pimTrk, double &ks_1chis, double &ks_2chis, double &ks_dl, double &ks_dle, double &ks_lchue, HepLorentzVector &p4_ks_1s, HepLorentzVector &p4_ks_2s, int &ks_state, WTrackParameter &wvks)
EvtRecVeeVertexCol::iterator ks_begin()
Definition: LTagTool.h:44
bool findSTag(int mode)
bool findSTag(int mode, int tagcharm)
vector< EvtRecDTagCol::iterator > vdtag2()
Definition: LTagTool.h:100
bool findADTag(int mode1, int tagcharm1, int mode2, int tagcharm2)
HepLorentzVector pi0p4(EvtRecPi0Col::iterator pi0Itr, bool isconstrain=true)
int savemode33(DTagToolIterator iter_tp)
vector< int > pi0Id(EvtRecDTagCol::iterator iter, int numpi0=1)
EvtRecDTagCol::iterator dtag1()
Definition: LTagTool.h:97
int savemode63(DTagToolIterator iter_tp)
bool findDTag(int mode1, int mode2, string smass="mbc")
int savemode5(DTagToolIterator iter_tp)
void setPID(bool pid)
Definition: LTagTool.h:37
vector< int > ksId(EvtRecDTagCol::iterator iter, int numks=1)
EvtRecDTagCol::iterator dtag2()
Definition: LTagTool.h:98
void saveeta(RecEmcShower *shr1, RecEmcShower *shr2, double &eta_chis, HepLorentzVector &p4_eta, HepLorentzVector &p4_eta_1c, WTrackParameter &wvlmd)