2#ifndef CLASS_DTAGTOOL_H
3#define CLASS_DTAGTOOL_H
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"
11#include "CLHEP/Vector/LorentzVector.h"
24typedef EvtRecVeeVertexCol::iterator
ksIterator;
42 EvtRecDTagCol::iterator
modes_end(){
return m_iterend;}
43 EvtRecPi0Col::iterator
pi0_begin(){
return m_pi0iterbegin;}
44 EvtRecVeeVertexCol::iterator
ks_begin(){
return m_ksiterbegin;}
47 vector<int>
D0modes() {
return m_d0modes;}
48 vector<int>
Dpmodes() {
return m_dpmodes;}
49 vector<int>
Dsmodes() {
return m_dsmodes;}
52 vector<int>
mode(
int decaymode);
65 bool findDTag(
int mode1,
int mode2,
string smass=
"mbc");
67 bool findDTag(
int mode1,
int tagcharm1,
int mode2,
int tagcharm2);
69 bool findADTag(
int mode1,
int tagcharm1,
int mode2,
int tagcharm2);
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);
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;}
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);
117 bool shareTracks(EvtRecDTagCol::iterator iter1, EvtRecDTagCol::iterator iter2);
121 void name(){ cout<<
" I am the dtag tool"<<endl;}
130 bool m_isdtaglistempty;
132 IDataProviderSvc* m_evtSvc;
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;
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;
155 vector<int> m_d0modes;
156 vector<int> m_dpmodes;
157 vector<int> m_dsmodes;
EvtRecTrackCol::iterator EvtRecTrackIterator