BOSS 6.6.4.p03
BESIII Offline Software System
Loading...
Searching...
No Matches
DQADtag Class Reference

#include <DQADtag.h>

+ Inheritance diagram for DQADtag:

Public Member Functions

 DQADtag (const std::string &name, ISvcLocator *pSvcLocator)
 
StatusCode initialize ()
 
StatusCode execute ()
 
StatusCode finalize ()
 

Detailed Description

Definition at line 18 of file DQADtag.h.

Constructor & Destructor Documentation

◆ DQADtag()

DQADtag::DQADtag ( const std::string &  name,
ISvcLocator *  pSvcLocator 
)

Definition at line 68 of file DQADtagAlg.cxx.

68 :
69 Algorithm(name, pSvcLocator) {
70
71 //Declare the properties
72 declareProperty("Vr0cut", m_vr0cut=1.0);
73 declareProperty("Vz0cut", m_vz0cut=10.0);
74 declareProperty("Vctcut", m_cthcut=0.93);
75 declareProperty("mpi0Max", m_mpi0Min =0.1);
76 declareProperty("mpi0Min", m_mpi0Max =0.16);
77 declareProperty("EnergyThreshold", m_energyThreshold=0.04);
78 declareProperty("BarrelEmc_th", m_Barrel_th = 0.82);
79 declareProperty("EndcapEmc_th_1", m_Endcap_th_1 = 0.85);
80 declareProperty("EndcapEmc_th_2", m_Endcap_th_2 = 0.93);
81 declareProperty("EnergyThreshold_b", m_energyThreshold_b=0.025);
82 declareProperty("EnergyThreshold_e", m_energyThreshold_e=0.05);
83 declareProperty("GammaAngCut", m_gammaAngCut=25.0);
84 declareProperty("ReadBeamEFromDB", m_ReadBeamEFromDB = false );
85 declareProperty("BeamE", m_beamE = 1.885 );
86 declareProperty("CheckDedx", m_checkDedx = 0);
87 declareProperty("CheckTof", m_checkTof = 0);
88 declareProperty("CheckVtx", m_checkVtx= 0);
89 declareProperty("CheckEvt", m_checkEvt= 0);
90 declareProperty("WriteTuple", m_writeTuple = 1);
91 declareProperty("Debug", m_debug = 0);
92 declareProperty("deltECut", m_deltECut = 0.03);
93 declareProperty("mpi0MaxCut", m_mpi0MinCut =0.117);
94 declareProperty("mpi0MinCut", m_mpi0MaxCut =0.145);
95 declareProperty("mKsMaxCut", m_mKsMaxCut = 0.505);
96 declareProperty("mKsMinCut", m_mKsMinCut = 0.49);
97 declareProperty("KsDLengthCut", m_KsDLengthCut = 12.0);
98 declareProperty("CheckDecayMode", m_checkDecayMode = 2);
99 declareProperty("ReadVertex", m_readVertex = true);
100 declareProperty("RegHist", m_regHist = 1);
101 m_vtxFit = VertexFit::instance();
102 m_2ndVtxFit = SecondVertexFit::instance();
103 HepPoint3D vx(0., 0., 0.);
104 HepSymMatrix Evx(3, 0);
105 double bx = 1E+6;
106 double by = 1E+6;
107 double bz = 1E+6;
108 Evx[0][0] = bx*bx;
109 Evx[1][1] = by*by;
110 Evx[2][2] = bz*bz;
111 m_vxpar.setVx(vx);
112 m_vxpar.setEvx(Evx);
113 m_privxpar.setVx(vx);
114 m_privxpar.setEvx(Evx);
115 //log = MsgStream(msgSvc(), name());
116 TString strDecayModeName[6] = {"mBC","deltE","p","charm","mass","e"};
117 m_decayModeHistName[0] = "mBC";
118 m_decayModeHistName[1] = "deltE";
119 m_decayModeHistName[2] = "mass";
120 for (int i=0;i!=6;i++)
121 {
122 m_DecayModeItemName[i] = strDecayModeName[i];
123 }
124 //for (int i=0;i!=6;i++)
125 //{
126 //cout<<"m_DecayModeItemName: "<<m_DecayModeItemName[i]<<endl;
127 //}
128 TString strTrkName[10] = {"px","py","pz","pp","vx","vy","vz","vr0","cos","E"};
129 m_TrackItemName[10] = "Id";
130 for (int i=0;i!=10;i++)
131 {
132 m_trackHistName[i] = strTrkName[i];
133 m_TrackItemName[i] = strTrkName[i];
134 }
135 TString strPhotonName[5] = {"numHits","secondmoment","x","y","z"};
136 m_PhotonItemName[5] = "Id_Emc";
137 for (int i=0;i!=5;i++)
138 {
139 m_photonHistName[i] = strPhotonName[i];
140 m_PhotonItemName[i] = strPhotonName[i];
141 }
142 TString strTrkDedxName[6] = {"chik","chipi","ghit","thit","probPH","normPH"};
143 for (int i=0;i!=6;i++)
144 {
145 m_trackDedxHistName[i] = strTrkDedxName[i];
146 m_TrackDedxItemName[i] = strTrkDedxName[i];
147 }
148 m_TrackDedxItemName[6] = "Id_Dedx";
149 TString strTrkTofName[6] = {"br_toff_mu","br_toff_pi","br_toff_k","ec_toff_mu","ec_toff_pi","ec_toff_k" };
150 for (int i=0;i!=6;i++)
151 {
152 m_trackTofHistName[i] = strTrkTofName[i];
153 m_TrackTofItemName[i] = strTrkTofName[i];
154 }
155 m_TrackTofItemName[6] = "Id_tof";
156 m_TrackTofItemName[7] = "ec_toff_isEast";
157 TString strKsName[4] = {"vfitmass","mass","dLength","dLengthErrorRatio"};
158 for (int i=0;i!=4;i++)
159 {
160 m_KsHistName[i] = strKsName[i];
161 m_KsItemName[i] = strKsName[i];
162 }
163 m_KsItemName[4] = "pvchi2";
164 m_KsItemName[5] = "svchi2";
165 TString strPi0Name[7] = {"pi0mass","photon1_E","photon1_cos","photon2_E","photon2_cos","photon1_Id","photon2_Id"};
166 for (int i=0;i!=5;i++)
167 {
168 m_Pi0HistName[i] = strPi0Name[i];
169 m_Pi0ItemName[i] = strPi0Name[i];
170 }
171 m_Pi0ItemName[5] = "photon1_Id";
172 m_Pi0ItemName[6] = "photon2_Id";
173
174 }
static SecondVertexFit * instance()
static VertexFit * instance()
Definition: VertexFit.cxx:15
void setEvx(const HepSymMatrix &eVx)
void setVx(const HepPoint3D &vx)

Member Function Documentation

◆ execute()

StatusCode DQADtag::execute ( )

Definition at line 926 of file DQADtagAlg.cxx.

926 {
927
928 // std::cout << "execute()" << std::endl;
929
930 MsgStream log(msgSvc(), name());
931 log << MSG::INFO << "in execute()" << endreq;
932
933 setFilterPassed(false);
934
935 SmartDataPtr<Event::EventHeader> eventHeader(eventSvc(),"/Event/EventHeader");
936 int run=eventHeader->runNumber();
937 int event=eventHeader->eventNumber();
938 log << MSG::DEBUG <<"run, evtnum = "
939 << run << " , "
940 << event <<endreq;
941
942 m_run = eventHeader->runNumber();
943 m_rec = eventHeader->eventNumber();
944 m_evtrun = eventHeader->runNumber();
945 m_evtrec = eventHeader->eventNumber();
946
947 //////////////////
948 // get beam energy
949 //////////////////
950 if(m_ReadBeamEFromDB&&m_irun!=run){
951 m_irun=run;
952 if(m_readDb.isRunValid(m_irun))
953 m_beamE=m_readDb.getbeamE(m_irun);
954 }
955
956 double beamE=m_beamE;
957 m_evtbeamE = m_beamE;
958
959 if (m_debug)
960 cout<<"event "<<event<<endl;
961 Ncut_DQADTagAlg[0]++;
962 if (Ncut_DQADTagAlg[0]%10000 == 0)
963 {
964 cout<<"Ncut_DQADTagAlg[0]: "<<Ncut_DQADTagAlg[0]<<endl;
965 }
966 //if (Ncut_DQADTagAlg[0]<120000)
967 //return StatusCode::SUCCESS;
968 SmartDataPtr<EvtRecEvent> evtRecEvent(eventSvc(), EventModel::EvtRec::EvtRecEvent);
969 log << MSG::INFO << "get event tag OK" << endreq;
970 log << MSG::DEBUG <<"ncharg, nneu, tottks = "
971 << evtRecEvent->totalCharged() << " , "
972 << evtRecEvent->totalNeutral() << " , "
973 << evtRecEvent->totalTracks() <<endreq;
974
975 m_nch = evtRecEvent->totalCharged();
976 m_nneu = evtRecEvent->totalNeutral();
977 m_evtnch = evtRecEvent->totalCharged();
978 m_evtnneu = evtRecEvent->totalNeutral();
979
980 SmartDataPtr<EvtRecTrackCol> evtRecTrkCol(eventSvc(), EventModel::EvtRec::EvtRecTrackCol);
981
982 //get primay vetex from db
983 Hep3Vector xorigin(0,0,0);
984 IVertexDbSvc* vtxsvc;
985 HepPoint3D vx(0., 0., 0.);
986 HepSymMatrix Evx(3, 0);
987 Gaudi::svcLocator()->service("VertexDbSvc", vtxsvc);
988 if (vtxsvc->isVertexValid()) {
989 double* vertex = vtxsvc->PrimaryVertex(); //vertex[0] = vx; vertex[1]= vy; vertex[2] = vz;
990 double* vertexsigma = vtxsvc->SigmaPrimaryVertex();
991 xorigin.setX(vertex[0]);
992 xorigin.setY(vertex[1]);
993 xorigin.setZ(vertex[2]);
994 vx[0] = vertex[0];
995 vx[1] = vertex[1];
996 vx[2] = vertex[2];
997 Evx[0][0] = vertexsigma[0]*vertexsigma[0];
998 Evx[1][1] = vertexsigma[1]*vertexsigma[1];
999 Evx[2][2] = vertexsigma[2]*vertexsigma[2];
1000 m_privxpar.setVx(vx);
1001 m_privxpar.setEvx(Evx);
1002 }
1003
1004 // Vp4 pDtagCand_cms;
1005 // pDtagCand_cms.clear();
1006 // int numDtagCand = 0;
1007 // vector<double> vmBC_D0, vmDCand_D0, vdeltE_D0, vpDCand_D0, vmpi0, vvmks, vmksp4,\
1008 // vvlks, vmBC_DC, vmDCand_DC, vdeltE_DC, vpDCand_DC;
1009 // vmBC_D0.clear();
1010 // vmDCand_D0.clear();
1011 // vdeltE_D0.clear();
1012 // vpDCand_D0.clear();
1013 // vmBC_DC.clear();
1014 // vmDCand_DC.clear();
1015 // vdeltE_DC.clear();
1016 // vpDCand_DC.clear();
1017 // vmpi0.clear();
1018 // vvmks.clear();
1019 // vmksp4.clear();
1020 // vvlks.clear();
1021
1022 SmartDataPtr<EvtRecDTagCol> evtRecDTagCol(eventSvc(), EventModel::EvtRec::EvtRecDTagCol);
1023 if ( ! evtRecDTagCol ) {
1024 cout << "Could not find EvtRecDTagCol" << endl;
1025 return StatusCode::SUCCESS;
1026 }
1027
1028 EvtRecDTag* bestDTag = NULL;
1029 bestDTag = m_bestDSvc->getSingleTag(-1);
1030 if (bestDTag == NULL )
1031 return StatusCode::SUCCESS;
1032 Ncut_DQADTagAlg[1]++;
1033
1034 m_rflag = m_bestDSvc->isCosmicOrLepton();
1035 SmartRefVector<EvtRecTrack> tracks=(bestDTag)->tracks();
1036 SmartRefVector<EvtRecTrack> othertracks=(bestDTag)->otherTracks();
1037 SmartRefVector<EvtRecTrack> othershowers=(bestDTag)->otherShowers();
1038 SmartRefVector<EvtRecTrack> showers=(bestDTag)->showers();
1039 // m_bestD_mode=(bestDTag)->decayMode();
1040 // m_bestD_p=(bestDTag)->p4().rho();
1041 // m_bestD_charm=(bestDTag)->charm();
1042 // m_bestD_mass=(bestDTag)->mass();
1043 double g_mBC=(bestDTag)->mBC();
1044 double g_deltE=(bestDTag)->deltaE();
1045 // int DMode =(int)(bestDTag)->decayMode();
1046
1047 //use util tool to get dtaglist
1048
1049 int nCharge = 0;
1050
1051 const int numMode = 11;
1052 int indexD[numMode], indexTof[numMode], indexDedx[numMode],numDCand[numMode];
1053 for (int i=0;i!=numMode;i++)
1054 {
1055 indexD[i] = 0;
1056 indexTof[i] = 0;
1057 indexDedx[i] = 0;
1058 numDCand[i] = 0;
1059 }
1060 int indexDAll = 0;
1061 int indexD0All = 0;
1062 int indexDCAll = 0;
1063
1064 // for (DTagToolIterator bestDTag=iter_begin; bestDTag != iter_end; bestDTag++)
1065 {
1066 bool iswritten = 1;
1067 //decay mode name
1068
1069 // ***********************************************************************
1070 // m_checkDecayMode == 0 : allDecayMode donot check pi0 Ks
1071 // m_checkDecayMode == 1 : singleDecayMode D0 to KPi
1072 // m_checkDecayMode == 2 : fewDecayMode 10 decay modes check pi0 Ks
1073 // ***********************************************************************
1074 if (m_checkDecayMode < 3)
1075 {
1076 // general variables
1077 //HepLorentzVector p4=(bestDTag)->p4();
1078 //p4.boost(-0.011,0,0);
1079
1080 //Hep3Vector p3=p4.v();
1081 //double deltaEDCand = (bestDTag)->deltaE();
1082 //double mBCDCand =(bestDTag)->mBC();
1083 //if(fabs(deltaEDCand)>=0.1) continue;
1084 //if(mBCDCand<=1.8 || mBCDCand>=2.0) continue;
1085 m_dtagbeamE = m_beamE;
1086 m_mode =(bestDTag)->decayMode();
1087 m_charge =(bestDTag)->charge();
1088 m_charm =(bestDTag)->charm();
1089 m_numofchildren =(bestDTag)->numOfChildren();
1090 m_mass =(bestDTag)->mass();
1091 m_mBC =(bestDTag)->mBC();
1092 m_e =(bestDTag)->beamE();
1093 HepLorentzVector p4D =(bestDTag)->p4();
1094 m_p = p4D.rho();
1095 p4D.boost(-0.011,0,0);
1096 m_p_CMS = p4D.rho();
1097 fill(m_p4_CMS, p4D);
1098 m_deltae =(bestDTag)->deltaE();
1099 // pDtagCand_cms.push_back((bestDTag)->p4());
1100 SmartRefVector<EvtRecTrack> tracks=(bestDTag)->tracks();
1101 SmartRefVector<EvtRecTrack> othertracks=(bestDTag)->otherTracks();
1102 SmartRefVector<EvtRecTrack> othershowers=(bestDTag)->otherShowers();
1103 SmartRefVector<EvtRecTrack> showers=(bestDTag)->showers();
1104 //HepLorentzVector p4=(bestDTag)->p4();
1105 //p4.boost(-0.011,0,0);
1106 m_nshower = showers.size();
1107 m_ntrk =tracks.size();
1108 m_nothertrk =othertracks.size();
1109 m_nothershower = othershowers.size();
1110
1111 // if (m_checkDecayMode == 0 ) continue;
1112 // end general variables
1113 indexDAll++;
1114 if((bestDTag)->decayMode()==EvtRecDTag::kD0toKPi) {
1115 const int MODE = 0;
1116 fillDecayModeItem(bestDTag,"D02KPi" );
1117 fillTrackItem(tracks[0],"D02KPi_kaon",3 ,xorigin);
1118 fillTrackItem(tracks[1],"D02KPi_pion",2 ,xorigin);
1119 indexD[MODE]++;
1120 if (m_checkDedx)
1121 {
1122 //if (!tracks[0]->isMdcDedxValid()) continue;
1123 //if (!tracks[1]->isMdcDedxValid()) continue;
1124 fillTrackDedxItem(tracks[0],"D02KPi_kaon",3 );
1125 fillTrackDedxItem(tracks[1],"D02KPi_pion",2 );
1126 }
1127 if (m_checkTof)
1128 {
1129 //if(!tracks[0]->isTofTrackValid()) continue;
1130 //if(!tracks[1]->isTofTrackValid()) continue;
1131 fillTrackTofItem(tracks[0],"D02KPi_kaon",3 );
1132 fillTrackTofItem(tracks[1],"D02KPi_pion",2 );
1133 }
1134 } //end of D0 to K Pi mode
1135 // if (m_checkDecayMode == 1 ) continue;
1136 if((bestDTag)->decayMode()==EvtRecDTag::kD0toKPiPi0) {
1137 const int MODE = 1;
1138 //pi0 mass
1139 DQAPi0Info pi0info;
1140 pi0info.setchilds(showers[0],showers[1]);
1141 if (pi0info.calculate())
1142 {
1143 if (pi0info.m() >m_mpi0Max || pi0info.m() < m_mpi0Min)
1144 iswritten = 0;
1145 // vmpi0.push_back(pi0info.m());
1146 fillPi0Item(showers,"D02KPiPi0" ,&pi0info );
1147 fillDecayModeItem(bestDTag,"D02KPiPi0" );
1148 fillTrackItem(tracks[0],"D02KPiPi0_kaon",3 ,xorigin);
1149 fillTrackItem(tracks[1],"D02KPiPi0_pion",2 ,xorigin);
1150 fillPhotonItem(showers[0],"D02KPiPi0_photon1" );
1151 fillPhotonItem(showers[1],"D02KPiPi0_photon2" );
1152 indexD[MODE]++;
1153 if (m_checkDedx)
1154 {
1155 //if (!tracks[0]->isMdcDedxValid()) continue;
1156 //if (!tracks[1]->isMdcDedxValid()) continue;
1157 fillTrackDedxItem(tracks[0],"D02KPiPi0_kaon",3 );
1158 fillTrackDedxItem(tracks[1],"D02KPiPi0_pion",2 );
1159 }
1160 if (m_checkTof)
1161 {
1162 //if(!tracks[0]->isTofTrackValid()) continue;
1163 //if(!tracks[1]->isTofTrackValid()) continue;
1164 fillTrackTofItem(tracks[0],"D02KPiPi0_kaon",3 );
1165 fillTrackTofItem(tracks[1],"D02KPiPi0_pion",2 );
1166 }
1167 }
1168 }// end of D0 to KPiPi0
1169
1170 //****************************************************
1171 //mode D0 to KPiPiPi only
1172 //****************************************************
1173 if((bestDTag)->decayMode()==EvtRecDTag::kD0toKPiPiPi) {
1174 const int MODE = 2;
1175 fillDecayModeItem(bestDTag,"D02KPiPiPi" );
1176
1177 RecMdcKalTrack* mdcKalTrk1 = tracks[0]->mdcKalTrack();
1178 RecMdcKalTrack* mdcKalTrk2 = tracks[1]->mdcKalTrack();
1179 RecMdcKalTrack* mdcKalTrk3 = tracks[2]->mdcKalTrack();
1180 RecMdcKalTrack* mdcKalTrk4 = tracks[3]->mdcKalTrack();
1182 HepLorentzVector p4kaon = mdcKalTrk1->p4(xmass[3]);
1184 HepLorentzVector p4pion1 = mdcKalTrk2->p4(xmass[2]);
1185 HepLorentzVector p4pion2 = mdcKalTrk3->p4(xmass[2]);
1186 HepLorentzVector p4pion3 = mdcKalTrk4->p4(xmass[2]);
1187 m_D02KPiPiPi_kaon_pp = p4kaon.rho();
1188 m_D02KPiPiPi_pion1_pp = p4pion1.rho();
1189 m_D02KPiPiPi_pion2_pp = p4pion2.rho();
1190 m_D02KPiPiPi_pion3_pp = p4pion3.rho();
1191 m_D02KPiPiPi_kaon_Id = tracks[0]->trackId();
1192 m_D02KPiPiPi_pion1_Id = tracks[1]->trackId();
1193 m_D02KPiPiPi_pion2_Id = tracks[2]->trackId();
1194 m_D02KPiPiPi_pion3_Id = tracks[3]->trackId();
1195 indexD[MODE]++;
1196 }
1197 //****************************************************
1198 //mode D0 to KPiPiPiPi0 only
1199 //****************************************************
1200 if((bestDTag)->decayMode()==EvtRecDTag::kD0toKPiPiPiPi0) {
1201 const int MODE = 3;
1202 DQAPi0Info pi0info;
1203 pi0info.setchilds(showers[0],showers[1]);
1204 if (pi0info.calculate()) {
1205 if (pi0info.m() >m_mpi0Max || pi0info.m() < m_mpi0Min)
1206 iswritten = 0;
1207 fillPi0Item(showers,"D02KPiPiPiPi0" ,&pi0info );
1208 // vmpi0.push_back(pi0info.m());
1209
1210 fillDecayModeItem(bestDTag,"D02KPiPiPiPi0" );
1211
1212 RecMdcKalTrack* mdcKalTrk1 = tracks[0]->mdcKalTrack();
1213 RecMdcKalTrack* mdcKalTrk2 = tracks[1]->mdcKalTrack();
1214 RecMdcKalTrack* mdcKalTrk3 = tracks[2]->mdcKalTrack();
1215 RecMdcKalTrack* mdcKalTrk4 = tracks[3]->mdcKalTrack();
1217 HepLorentzVector p4kaon = mdcKalTrk1->p4(xmass[3]);
1219 HepLorentzVector p4pion1 = mdcKalTrk2->p4(xmass[2]);
1220 HepLorentzVector p4pion2 = mdcKalTrk3->p4(xmass[2]);
1221 HepLorentzVector p4pion3 = mdcKalTrk4->p4(xmass[2]);
1222 m_D02KPiPiPiPi0_kaon_pp = p4kaon.rho();
1223 m_D02KPiPiPiPi0_pion1_pp = p4pion1.rho();
1224 m_D02KPiPiPiPi0_pion2_pp = p4pion2.rho();
1225 m_D02KPiPiPiPi0_pion3_pp = p4pion3.rho();
1226 m_D02KPiPiPiPi0_kaon_Id = tracks[0]->trackId();
1227 m_D02KPiPiPiPi0_pion1_Id = tracks[1]->trackId();
1228 m_D02KPiPiPiPi0_pion2_Id = tracks[2]->trackId();
1229 m_D02KPiPiPiPi0_pion3_Id = tracks[3]->trackId();
1230 indexD[MODE]++;
1231 }
1232 }
1233 //****************************************************
1234 //mode D0 to KsPiPi only
1235 //****************************************************
1236 if((bestDTag)->decayMode()==EvtRecDTag::kD0toKsPiPi) {
1237 const int MODE = 4;
1238 DQAKsInfo ksinfo;
1239 ksinfo.setchilds(tracks[0],tracks[1]);
1240 ksinfo.setVtxPar(m_vxpar);
1241 ksinfo.setPrimaryVtxPar(m_privxpar);
1242 if (ksinfo.calculate()) {
1243
1244 fillDecayModeItem(bestDTag,"D02KsPiPi" );
1245 fillTrackItem(tracks[0],"D02KsPiPi_pion1",2 ,xorigin);
1246 fillTrackItem(tracks[1],"D02KsPiPi_pion2",2 ,xorigin);
1247 fillTrackItem(tracks[2],"D02KsPiPi_pion3",2 ,xorigin);
1248 fillTrackItem(tracks[3],"D02KsPiPi_pion4",2 ,xorigin);
1249 fillKsItem(tracks,"D02KsPiPi" ,&ksinfo);
1250 indexD[MODE]++;
1251
1252 // if (iswritten) vvmks.push_back(ksinfo.m());
1253 // if (iswritten) vmksp4.push_back(ksinfo.mksp4());
1254 // if (iswritten) vvlks.push_back(ksinfo.decayLengthRatio());
1255 }
1256 }// end of D0 to KsPiPi
1257 //****************************************************
1258 //mode D0 to KsPiPiPi0 only
1259 //****************************************************
1260 if((bestDTag)->decayMode()==EvtRecDTag::kD0toKsPiPiPi0) {
1261 const int MODE = 5;
1262 DQAKsInfo ksinfo;
1263 ksinfo.setchilds(tracks[0],tracks[1]);
1264 ksinfo.setVtxPar(m_vxpar);
1265 ksinfo.setPrimaryVtxPar(m_privxpar);
1266 if (ksinfo.calculate()) {
1267 DQAPi0Info pi0info;
1268 pi0info.setchilds(showers[0],showers[1]);
1269 if (pi0info.calculate()) {
1270 if (pi0info.m() >m_mpi0Max || pi0info.m() < m_mpi0Min)
1271 iswritten = 0;
1272 fillPi0Item(showers,"D02KsPiPiPi0" ,&pi0info );
1273 // vmpi0.push_back(pi0info.m());
1274 fillKsItem(tracks,"D02KsPiPiPi0" ,&ksinfo);
1275 // if (iswritten) vvmks.push_back(ksinfo.m());
1276 // if (iswritten) vmksp4.push_back(ksinfo.mksp4());
1277 // if (iswritten) vvlks.push_back(ksinfo.decayLengthRatio());
1278 fillDecayModeItem(bestDTag,"D02KsPiPiPi0" );
1279
1280 RecMdcKalTrack* mdcKalTrk1 = tracks[0]->mdcKalTrack();
1281 RecMdcKalTrack* mdcKalTrk2 = tracks[1]->mdcKalTrack();
1282 RecMdcKalTrack* mdcKalTrk3 = tracks[2]->mdcKalTrack();
1283 RecMdcKalTrack* mdcKalTrk4 = tracks[3]->mdcKalTrack();
1285 HepLorentzVector p4pion1 = mdcKalTrk1->p4(xmass[2]);
1286 HepLorentzVector p4pion2 = mdcKalTrk2->p4(xmass[2]);
1287 HepLorentzVector p4pion3 = mdcKalTrk3->p4(xmass[2]);
1288 HepLorentzVector p4pion4 = mdcKalTrk4->p4(xmass[2]);
1289 m_D02KsPiPiPi0_pion1_pp = p4pion1.rho();
1290 m_D02KsPiPiPi0_pion2_pp = p4pion2.rho();
1291 m_D02KsPiPiPi0_pion3_pp = p4pion3.rho();
1292 m_D02KsPiPiPi0_pion4_pp = p4pion4.rho();
1293 m_D02KsPiPiPi0_pion1_Id = tracks[0]->trackId();
1294 m_D02KsPiPiPi0_pion2_Id = tracks[1]->trackId();
1295 m_D02KsPiPiPi0_pion3_Id = tracks[2]->trackId();
1296 m_D02KsPiPiPi0_pion4_Id = tracks[3]->trackId();
1297 indexD[MODE]++;
1298 }
1299 }
1300 }// end of D0 to KsPiPiPi0
1301 //****************************************************
1302 //mode Dp to KPiPi only
1303 //****************************************************
1304 if((bestDTag)->decayMode()==EvtRecDTag::kDptoKPiPi) {
1305 const int MODE = 6;
1306 fillDecayModeItem(bestDTag,"DC2KPiPi" );
1307 fillTrackItem(tracks[0],"DC2KPiPi_kaon",3 ,xorigin);
1308 fillTrackItem(tracks[1],"DC2KPiPi_pion1",2 ,xorigin);
1309 fillTrackItem(tracks[2],"DC2KPiPi_pion2",2 ,xorigin);
1310 if (m_checkTof)
1311 {
1312 //if(!tracks[0]->isTofTrackValid()) continue;
1313 //if(!tracks[1]->isTofTrackValid()) continue;
1314 fillTrackTofItem(tracks[0],"DC2KPiPi_kaon",3 );
1315 fillTrackTofItem(tracks[1],"DC2KPiPi_pion1",2 );
1316 fillTrackTofItem(tracks[2],"DC2KPiPi_pion2",2 );
1317 }
1318 if (m_checkDedx)
1319 {
1320 fillTrackDedxItem(tracks[0],"DC2KPiPi_kaon",3 );
1321 fillTrackDedxItem(tracks[1],"DC2KPiPi_pion1",2 );
1322 fillTrackDedxItem(tracks[2],"DC2KPiPi_pion2",2 );
1323 }
1324 indexD[MODE]++;
1325 }
1326
1327 //****************************************************
1328 //mode Dp to KPiPiPi0 only
1329 //****************************************************
1330 if((bestDTag)->decayMode()==EvtRecDTag::kDptoKPiPiPi0) {
1331 const int MODE = 7;
1332 DQAPi0Info pi0info;
1333 pi0info.setchilds(showers[0],showers[1]);
1334 if (pi0info.calculate()) {
1335 if (pi0info.m() >m_mpi0Max || pi0info.m() < m_mpi0Min)
1336 iswritten = 0;
1337 fillPi0Item(showers,"DC2KPiPiPi0" ,&pi0info );
1338 // vmpi0.push_back(pi0info.m());
1339 fillDecayModeItem(bestDTag,"DC2KPiPiPi0" );
1340
1341 fillTrackItem(tracks[0],"DC2KPiPiPi0_kaon",3 ,xorigin);
1342 fillTrackItem(tracks[1],"DC2KPiPiPi0_pion1",2 ,xorigin);
1343 fillTrackItem(tracks[2],"DC2KPiPiPi0_pion2",2 ,xorigin);
1344 indexD[MODE]++;
1345 }
1346 }
1347 //****************************************************
1348 //mode Dp to KsPiPi0 only
1349 //****************************************************
1350 if((bestDTag)->decayMode()==EvtRecDTag::kDptoKsPiPi0) {
1351 const int MODE = 8;
1352 DQAPi0Info pi0info;
1353 pi0info.setchilds(showers[0],showers[1]);
1354 if (pi0info.calculate()) {
1355 DQAKsInfo ksinfo;
1356 ksinfo.setchilds(tracks[0],tracks[1]);
1357 ksinfo.setVtxPar(m_vxpar);
1358 ksinfo.setPrimaryVtxPar(m_privxpar);
1359 if (ksinfo.calculate()) {
1360 if (pi0info.m() >m_mpi0Max || pi0info.m() < m_mpi0Min)
1361 iswritten = 0;
1362 fillPi0Item(showers,"DC2KsPiPi0" ,&pi0info );
1363 fillDecayModeItem(bestDTag,"DC2KsPiPi0" );
1364 fillTrackItem(tracks[0],"DC2KsPiPi0_pion1",2 ,xorigin);
1365 fillTrackItem(tracks[1],"DC2KsPiPi0_pion2",2 ,xorigin);
1366 fillTrackItem(tracks[2],"DC2KsPiPi0_pion3",2 ,xorigin);
1367 fillKsItem(tracks,"DC2KsPiPi0" ,&ksinfo);
1368 // if (iswritten) vvmks.push_back(ksinfo.m());
1369 // if (iswritten) vmksp4.push_back(ksinfo.mksp4());
1370 // if (iswritten) vvlks.push_back(ksinfo.decayLengthRatio());
1371 indexD[MODE]++;
1372 }
1373 }
1374 }// end of Dp to Kspipi0
1375 //****************************************************
1376 //mode Dp to KKPi only
1377 //****************************************************
1378 if((bestDTag)->decayMode()==EvtRecDTag::kDptoKsPiPiPi) {
1379 const int MODE = 9;
1380 DQAKsInfo ksinfo;
1381 ksinfo.setchilds(tracks[0],tracks[1]);
1382 ksinfo.setVtxPar(m_vxpar);
1383 ksinfo.setPrimaryVtxPar(m_privxpar);
1384 if (ksinfo.calculate()) {
1385
1386 fillKsItem(tracks,"DC2KsPiPiPi" ,&ksinfo);
1387 // if (iswritten) vvmks.push_back(ksinfo.m());
1388 // if (iswritten) vmksp4.push_back(ksinfo.mksp4());
1389 // if (iswritten) vvlks.push_back(ksinfo.decayLengthRatio());
1390 fillDecayModeItem(bestDTag,"DC2KsPiPiPi" );
1391
1392 RecMdcKalTrack* mdcKalTrk1 = tracks[0]->mdcKalTrack();
1393 RecMdcKalTrack* mdcKalTrk2 = tracks[1]->mdcKalTrack();
1394 RecMdcKalTrack* mdcKalTrk3 = tracks[2]->mdcKalTrack();
1395 RecMdcKalTrack* mdcKalTrk4 = tracks[3]->mdcKalTrack();
1396 RecMdcKalTrack* mdcKalTrk5 = tracks[4]->mdcKalTrack();
1398 HepLorentzVector p4pion1 = mdcKalTrk1->p4(xmass[2]);
1399 HepLorentzVector p4pion2 = mdcKalTrk2->p4(xmass[2]);
1400 HepLorentzVector p4pion3 = mdcKalTrk3->p4(xmass[2]);
1401 HepLorentzVector p4pion4 = mdcKalTrk4->p4(xmass[2]);
1402 HepLorentzVector p4pion5 = mdcKalTrk5->p4(xmass[2]);
1403 m_DC2KsPiPiPi_pion1_pp = p4pion1.rho();
1404 m_DC2KsPiPiPi_pion2_pp = p4pion2.rho();
1405 m_DC2KsPiPiPi_pion3_pp = p4pion3.rho();
1406 m_DC2KsPiPiPi_pion4_pp = p4pion4.rho();
1407 m_DC2KsPiPiPi_pion5_pp = p4pion5.rho();
1408 m_DC2KsPiPiPi_pion1_Id = tracks[0]->trackId();
1409 m_DC2KsPiPiPi_pion2_Id = tracks[1]->trackId();
1410 m_DC2KsPiPiPi_pion3_Id = tracks[2]->trackId();
1411 m_DC2KsPiPiPi_pion4_Id = tracks[3]->trackId();
1412 m_DC2KsPiPiPi_pion5_Id = tracks[4]->trackId();
1413 indexD[MODE]++;
1414 }
1415 }// end of kDptoKsPiPiPi
1416 if((bestDTag)->decayMode()==EvtRecDTag::kDptoKKPi) {
1417 const int MODE = 10;
1418 fillDecayModeItem(bestDTag,"DC2KKPi" );
1419
1420 RecMdcKalTrack* mdcKalTrk1 = tracks[0]->mdcKalTrack();
1421 RecMdcKalTrack* mdcKalTrk2 = tracks[1]->mdcKalTrack();
1422 RecMdcKalTrack* mdcKalTrk3 = tracks[2]->mdcKalTrack();
1424 HepLorentzVector p4kaon1 = mdcKalTrk1->p4(xmass[3]);
1425 HepLorentzVector p4kaon2 = mdcKalTrk2->p4(xmass[3]);
1427 HepLorentzVector p4pion = mdcKalTrk3->p4(xmass[2]);
1428 m_DC2KKPi_kaon1_pp = p4kaon1.rho();
1429 m_DC2KKPi_kaon2_pp = p4kaon2.rho();
1430 m_DC2KKPi_pion_pp = p4pion.rho();
1431 m_DC2KKPi_kaon1_Id = tracks[0]->trackId();
1432 m_DC2KKPi_kaon2_Id = tracks[1]->trackId();
1433 m_DC2KKPi_pion_Id = tracks[2]->trackId();
1434 indexD[MODE]++;
1435 }// end of kDptoKKPi
1436 if ((bestDTag)->charge() == 0)
1437 {
1438 m_D0_mBC = (bestDTag)->mBC();
1439 m_D0_deltE = (bestDTag)->deltaE();
1440 m_D0_mass = (bestDTag)->mass();
1441 indexD0All++;
1442 }
1443 if ((bestDTag)->charge() != 0)
1444 {
1445 m_DC_mBC = (bestDTag)->mBC();
1446 m_DC_deltE = (bestDTag)->deltaE();
1447 m_DC_mass = (bestDTag)->mass();
1448 indexDCAll++;
1449 }
1450 }
1451 }
1452 m_numAllMode = indexDAll;
1453 m_numD0Mode = indexD0All;
1454 m_numDCMode = indexDCAll;
1455 m_recNumD02KPi = indexD[0];
1456 m_recNumD02KPiPi0 = indexD[1];
1457 m_recNumD02KPiPiPi = indexD[2];
1458 m_recNumD02KPiPiPiPi0 = indexD[3];
1459 m_recNumD02KsPiPi = indexD[4];
1460 m_recNumD02KsPiPiPi0 = indexD[5];
1461 m_recNumDC2KPiPi = indexD[6];
1462 m_recNumDC2KPiPiPi0 = indexD[7];
1463 m_recNumDC2KsPiPi0 = indexD[8];
1464 m_recNumDC2KsPiPiPi = indexD[9];
1465 m_recNumDC2KKPi = indexD[10];
1466 int taggedMode = -1; // 0 ~ 10
1467 for (int i=0; i!=11; i++)
1468 {
1469 if (indexD[i] == 1 )
1470 {
1471 taggedMode = i;
1472 }
1473 }
1474
1475 Vint iGood;
1476 // int nCharge = 0;
1477 for(int i = 0; i < evtRecEvent->totalCharged(); i++){
1478 EvtRecTrackIterator itTrk=evtRecTrkCol->begin() + i;
1479 if(!(*itTrk)->isMdcTrackValid()) continue;
1480 if (!(*itTrk)->isMdcKalTrackValid()) continue;
1481 RecMdcTrack *mdcTrk = (*itTrk)->mdcTrack();
1482 RecMdcKalTrack *mdcKalTrk = (*itTrk)->mdcKalTrack();
1483
1484 double pch =mdcTrk->p();
1485 double x0 =mdcTrk->x();
1486 double y0 =mdcTrk->y();
1487 double z0 =mdcTrk->z();
1488 double phi0=mdcTrk->helix(1);
1489 double xv=xorigin.x();
1490 double yv=xorigin.y();
1491 double Rxy=fabs((x0-xv)*cos(phi0)+(y0-yv)*sin(phi0));
1492 m_vtxTrkId = (*itTrk)->trackId();
1493 m_vx0 = x0;
1494 m_vy0 = y0;
1495 m_vz0 = z0-xorigin.z();
1496 m_vr0 = Rxy;
1497 m_Vct=cos(mdcTrk->theta());
1498 if (m_writeTuple && m_checkVtx)
1499 // m_tuple2->write();
1500 if(fabs(m_vz0) >= m_vz0cut) continue;
1501 if(m_vr0 >= m_vr0cut) continue;
1502 if(fabs(m_Vct)>=m_cthcut) continue;
1503
1504 iGood.push_back((*itTrk)->trackId());
1505 nCharge += mdcTrk->charge();
1506 }
1507 int nGood = iGood.size();
1508
1509 ////
1510 //// Finish Good Charged Track Selection
1511 ////
1512
1513 if ( m_writeTuple && (m_checkDedx || m_checkTof))
1514 {
1515 Vint iGam;
1516 iGam.clear();
1517 for(int i = evtRecEvent->totalCharged(); i< evtRecEvent->totalTracks(); i++) {
1518 EvtRecTrackIterator itTrk=evtRecTrkCol->begin() + i;
1519 if(!(*itTrk)->isEmcShowerValid()) continue;
1520 RecEmcShower *emcTrk = (*itTrk)->emcShower();
1521 Hep3Vector emcpos(emcTrk->x(), emcTrk->y(), emcTrk->z());
1522 // find the nearest charged track
1523 double dthe = 200.;
1524 double dphi = 200.;
1525 double dang = 200.;
1526 for(int j = 0; j < evtRecEvent->totalCharged(); j++) {
1527 EvtRecTrackIterator jtTrk = evtRecTrkCol->begin() + j;
1528 if(!(*jtTrk)->isExtTrackValid()) continue;
1529 RecExtTrack *extTrk = (*jtTrk)->extTrack();
1530 if(extTrk->emcVolumeNumber() == -1) continue;
1531 Hep3Vector extpos = extTrk->emcPosition();
1532 // double ctht = extpos.cosTheta(emcpos);
1533 double angd = extpos.angle(emcpos);
1534 double thed = extpos.theta() - emcpos.theta();
1535 double phid = extpos.deltaPhi(emcpos);
1536 thed = fmod(thed+CLHEP::twopi+CLHEP::twopi+pi, CLHEP::twopi) - CLHEP::pi;
1537 phid = fmod(phid+CLHEP::twopi+CLHEP::twopi+pi, CLHEP::twopi) - CLHEP::pi;
1538
1539 if(fabs(thed) < fabs(dthe)) dthe = thed;
1540 if(fabs(phid) < fabs(dphi)) dphi = phid;
1541 if(angd < dang) dang = angd;
1542 }
1543 if(dang>=200) continue;
1544 double eraw = emcTrk->energy();
1545 dthe = dthe * 180 / (CLHEP::pi);
1546 dphi = dphi * 180 / (CLHEP::pi);
1547 dang = dang * 180 / (CLHEP::pi);
1548 double m_dthe = dthe;
1549 double m_dphi = dphi;
1550 double m_dang = dang;
1551 double m_eraw = eraw;
1552 double theta=cos(emcpos.theta());
1553 if ((fabs(theta) > m_Barrel_th && fabs(theta) < m_Endcap_th_1) || fabs(theta) > m_Endcap_th_2 ) continue;
1554 //put different cut on barrel and endcap!
1555 if((emcTrk->module()==0 || emcTrk->module()==2)&&eraw < m_energyThreshold_e) continue;
1556 else if( emcTrk->module()==1 && eraw < m_energyThreshold_b) continue;
1557 //if(eraw < m_energyThreshold) continue;
1558 if(dang < m_gammaAngCut) continue;
1559 //
1560 // good photon cut will be set here
1561 //
1562 iGam.push_back((*itTrk)->trackId());
1563 }
1564
1565 //
1566 // Finish Good Photon Selection
1567 //
1568 int nGam = iGam.size();
1569
1570 //
1571 // Assign 4-momentum to each photon
1572 //
1573
1574 Vp4 pGam;
1575 pGam.clear();
1576 for(int i = 0; i < nGam; i++) {
1577 EvtRecTrackIterator itTrk = evtRecTrkCol->begin() + iGam[i];
1578 RecEmcShower* emcTrk = (*itTrk)->emcShower();
1579 double eraw = emcTrk->energy();
1580 double phi = emcTrk->phi();
1581 double the = emcTrk->theta();
1582 HepLorentzVector ptrk;
1583 ptrk.setPx(eraw*sin(the)*cos(phi));
1584 ptrk.setPy(eraw*sin(the)*sin(phi));
1585 ptrk.setPz(eraw*cos(the));
1586 ptrk.setE(eraw);
1587 // ptrk = ptrk.boost(-0.011,0,0);// boost to cms
1588 pGam.push_back(ptrk);
1589 }
1590
1591 //
1592 // check dedx infomation
1593 //
1594 if (m_checkDedx)
1595 {
1596 m_ngch = nGood;
1597 for(int ii = 0; ii < nGood; ii++) {
1598 // dedx
1599 m_ptrk[ii] = 999.0;
1600 m_chie[ii] = 999.0;
1601 m_chimu[ii] = 999.0;
1602 m_chipi[ii] = 999.0;
1603 m_chik[ii] = 999.0;
1604 m_chip[ii] = 999.0;
1605 m_ghit[ii] = 999.0;
1606 m_thit[ii] = 999.0;
1607 m_probPH[ii] = 1999.0;
1608 m_normPH[ii] = 999.0;
1609 }
1610 int indx0=0;
1611 for(int i = 0; i < nGood; i++) {
1612 EvtRecTrackIterator itTrk = evtRecTrkCol->begin() + iGood[i];
1613 if(!(*itTrk)->isMdcTrackValid()) continue;
1614 if(!(*itTrk)->isMdcDedxValid())continue;
1615 RecMdcTrack* mdcTrk = (*itTrk)->mdcTrack();
1616 RecMdcDedx* dedxTrk = (*itTrk)->mdcDedx();
1617 m_trkiddedx[indx0] = (*itTrk)->trackId();
1618 m_ptrk[indx0] = mdcTrk->p();
1619 m_chie[indx0] = dedxTrk->chiE();
1620 m_chimu[indx0] = dedxTrk->chiMu();
1621 m_chipi[indx0] = dedxTrk->chiPi();
1622 m_chik[indx0] = dedxTrk->chiK();
1623 m_chip[indx0] = dedxTrk->chiP();
1624 m_ghit[indx0] = dedxTrk->numGoodHits();
1625 m_thit[indx0] = dedxTrk->numTotalHits();
1626 m_probPH[indx0] = dedxTrk->probPH();
1627 m_normPH[indx0] = dedxTrk->normPH();
1628 indx0++;
1629 }
1630 // m_tuple11->write();
1631 } // end chechDedx
1632 //
1633 // check TOF infomation
1634 //
1635 if (m_checkTof)
1636 {
1637 m_ngch2 = nGood;
1638 for(int ii = 0; ii < nGood; ii++) {
1639 //endtof
1640 m_cntr_etof[ii] = 999.0;
1641 m_ptot_etof[ii] = 999.0;
1642 m_ph_etof[ii] = 999.0;
1643 m_rhit_etof[ii] = 999.0;
1644 m_qual_etof[ii] = 999.0;
1645 m_te_etof[ii] = 999.0;
1646 m_tmu_etof[ii] = 999.0;
1647 m_tpi_etof[ii] = 999.0;
1648 m_tk_etof[ii] = 999.0;
1649 m_tp_etof[ii] = 999.0;
1650 m_ec_tof[ii] = 999.0;
1651 m_ec_toff_e[ii] = 999.0;
1652 m_ec_toff_mu[ii] = 999.0;
1653 m_ec_toff_pi[ii] = 999.0;
1654 m_ec_toff_k[ii] = 999.0;
1655 m_ec_toff_p[ii] = 999.0;
1656 m_ec_tsig_e[ii] = 999.0;
1657 m_ec_tsig_mu[ii] = 999.0;
1658 m_ec_tsig_pi[ii] = 999.0;
1659 m_ec_tsig_k[ii] = 999.0;
1660 m_ec_tsig_p[ii] = 999.0;
1661
1662 // barrel tof
1663 m_cntr_btof1[ii] = 999.0;
1664 m_ptot_btof1[ii] = 999.0;
1665 m_ph_btof1[ii] = 999.0;
1666 m_zhit_btof1[ii] = 999.0;
1667 m_qual_btof1[ii] = 999.0;
1668 m_te_btof1[ii] = 999.0;
1669 m_tmu_btof1[ii] = 999.0;
1670 m_tpi_btof1[ii] = 999.0;
1671 m_tk_btof1[ii] = 999.0;
1672 m_tp_btof1[ii] = 999.0;
1673 m_b1_tof[ii] = 999.0;
1674 m_b1_toff_e[ii] = 999.0;
1675 m_b1_toff_mu[ii] = 999.0;
1676 m_b1_toff_pi[ii] = 999.0;
1677 m_b1_toff_k[ii] = 999.0;
1678 m_b1_toff_p[ii] = 999.0;
1679 m_b1_tsig_e[ii] = 999.0;
1680 m_b1_tsig_mu[ii] = 999.0;
1681 m_b1_tsig_pi[ii] = 999.0;
1682 m_b1_tsig_k[ii] = 999.0;
1683 m_b1_tsig_p[ii] = 999.0;
1684 //pid
1685 //m_dedx_pid[ii] = 999.0;
1686 //m_tof1_pid[ii] = 999.0;
1687 //m_tof2_pid[ii] = 999.0;
1688 //m_prob_pid[ii] = 999.0;
1689 //m_ptrk_pid[ii] = 999.0;
1690 //m_cost_pid[ii] = 999.0;
1691 }
1692 int indx1=0;
1693 for(int i = 0; i < nGood; i++) {
1694 EvtRecTrackIterator itTrk = evtRecTrkCol->begin() + iGood[i];
1695 if(!(*itTrk)->isMdcTrackValid()) continue;
1696 if(!(*itTrk)->isTofTrackValid()) continue;
1697
1698 RecMdcTrack * mdcTrk = (*itTrk)->mdcTrack();
1699 SmartRefVector<RecTofTrack> tofTrkCol = (*itTrk)->tofTrack();
1700
1701 double ptrk = mdcTrk->p();
1702 SmartRefVector<RecTofTrack>::iterator iter_tof = tofTrkCol.begin();
1703 for(;iter_tof != tofTrkCol.end(); iter_tof++ ) {
1704 TofHitStatus *status = new TofHitStatus;
1705 status->setStatus((*iter_tof)->status());
1706 if(!(status->is_barrel())){//endcap
1707 if( !(status->is_counter()) ) continue; // ?
1708 if( status->layer()!=1 ) continue;//layer1
1709 double path=(*iter_tof)->path(); // ?
1710 double tof = (*iter_tof)->tof();
1711 double ph = (*iter_tof)->ph();
1712 double rhit = (*iter_tof)->zrhit();
1713 double qual = 0.0 + (*iter_tof)->quality();
1714 double cntr = 0.0 + (*iter_tof)->tofID();
1715 double texp[5];
1716 double tsig[5];
1717 for(int j = 0; j < 5; j++) {//0 e, 1 mu, 2 pi, 3 K, 4 p
1718 texp[j] = (*iter_tof)->texp(j);
1719 // tsig[j] = (*iter_tof)->sigma(j);
1720 // toffset[j] = (*iter_tof)->offset(j);
1721 }
1722 m_trkidtof[indx1] = (*itTrk)->trackId();
1723 m_cntr_etof[indx1] = cntr;
1724 m_ptot_etof[indx1] = ptrk;
1725 m_ph_etof[indx1] = ph;
1726 m_rhit_etof[indx1] = rhit;
1727 m_qual_etof[indx1] = qual;
1728 m_te_etof[indx1] = tof - texp[0];
1729 m_tmu_etof[indx1] = tof - texp[1];
1730 m_tpi_etof[indx1] = tof - texp[2];
1731 m_tk_etof[indx1] = tof - texp[3];
1732 m_tp_etof[indx1] = tof - texp[4];
1733
1734 m_ec_tof[indx1] = tof;
1735
1736 m_ec_toff_e[indx1] = (*iter_tof)->toffset(0);
1737 m_ec_toff_mu[indx1] = (*iter_tof)->toffset(1);
1738 m_ec_toff_pi[indx1] = (*iter_tof)->toffset(2);
1739 m_ec_toff_k[indx1] = (*iter_tof)->toffset(3);
1740 m_ec_toff_p[indx1] = (*iter_tof)->toffset(4);
1741
1742 m_ec_tsig_e[indx1] = (*iter_tof)->sigma(0);
1743 m_ec_tsig_mu[indx1] = (*iter_tof)->sigma(1);
1744 m_ec_tsig_pi[indx1] = (*iter_tof)->sigma(2);
1745 m_ec_tsig_k[indx1] = (*iter_tof)->sigma(3);
1746 m_ec_tsig_p[indx1] = (*iter_tof)->sigma(4);
1747
1748 }
1749 else {//barrel
1750 if( !(status->is_cluster()) ) continue; // ?
1751 double path=(*iter_tof)->path(); // ?
1752 double tof = (*iter_tof)->tof();
1753 double ph = (*iter_tof)->ph();
1754 double rhit = (*iter_tof)->zrhit();
1755 double qual = 0.0 + (*iter_tof)->quality();
1756 double cntr = 0.0 + (*iter_tof)->tofID();
1757 double texp[5];
1758 for(int j = 0; j < 5; j++) {
1759 texp[j] = (*iter_tof)->texp(j);
1760 }
1761 m_cntr_btof1[indx1] = cntr;
1762 m_ptot_btof1[indx1] = ptrk;
1763 m_ph_btof1[indx1] = ph;
1764 m_zhit_btof1[indx1] = rhit;
1765 m_qual_btof1[indx1] = qual;
1766 m_te_btof1[indx1] = tof - texp[0];
1767 m_tmu_btof1[indx1] = tof - texp[1];
1768 m_tpi_btof1[indx1] = tof - texp[2];
1769 m_tk_btof1[indx1] = tof - texp[3];
1770 m_tp_btof1[indx1] = tof - texp[4];
1771
1772 m_b1_tof[indx1] = tof;
1773
1774 m_b1_toff_e[indx1] = (*iter_tof)->toffset(0);
1775 m_b1_toff_mu[indx1] = (*iter_tof)->toffset(1);
1776 m_b1_toff_pi[indx1] = (*iter_tof)->toffset(2);
1777 m_b1_toff_k[indx1] = (*iter_tof)->toffset(3);
1778 m_b1_toff_p[indx1] = (*iter_tof)->toffset(4);
1779
1780 m_b1_tsig_e[indx1] = (*iter_tof)->sigma(0);
1781 m_b1_tsig_mu[indx1] = (*iter_tof)->sigma(1);
1782 m_b1_tsig_pi[indx1] = (*iter_tof)->sigma(2);
1783 m_b1_tsig_k[indx1] = (*iter_tof)->sigma(3);
1784 m_b1_tsig_p[indx1] = (*iter_tof)->sigma(4);
1785
1786 }
1787 delete status;
1788 }
1789 indx1++;
1790 } // loop all charged track
1791
1792 // m_tuple12->write();
1793 m_nggneu = nGam;
1794 int iphoton = 0;
1795 for (int i=0; i<nGam; i++)
1796 {
1797 EvtRecTrackIterator itTrk=evtRecTrkCol->begin() + iGam[i];
1798 if (!(*itTrk)->isEmcShowerValid()) continue;
1799 RecEmcShower *emcTrk = (*itTrk)->emcShower();
1800 m_shwidtof[iphoton] = (*itTrk)->trackId();
1801 m_numHits[iphoton] = emcTrk->numHits();
1802 m_secondmoment[iphoton] = emcTrk->secondMoment();
1803 m_x[iphoton] = emcTrk->x();
1804 m_y[iphoton]= emcTrk->y();
1805 m_z[iphoton]= emcTrk->z();
1806 m_cosemc[iphoton] = cos(emcTrk->theta());
1807 m_phiemc[iphoton] = emcTrk->phi();
1808 m_energy[iphoton] = emcTrk->energy();
1809 m_eSeed[iphoton] = emcTrk->eSeed();
1810 m_e3x3[iphoton] = emcTrk->e3x3();
1811 m_e5x5[iphoton] = emcTrk->e5x5();
1812 m_lat[iphoton] = emcTrk->latMoment();
1813 m_a20[iphoton] = emcTrk->a20Moment();
1814 m_a42[iphoton] = emcTrk->a42Moment();
1815 iphoton++;
1816 }
1817 // m_tuple13->write();
1818 } //end checkTof
1819 }
1820
1821 // DQAHist
1822 if (m_regHist)
1823 {
1824 if (taggedMode != -1 )
1825 {
1826 string strdecaymode[11] = {"D02KPi","D02KPiPi0","D02KPiPiPi","D02KPiPiPiPi0","D02KsPiPi","D02KsPiPiPi0",\
1827 "DC2KPiPi","DC2KPiPiPi0","DC2KsPiPi0","DC2KsPiPiPi","DC2KKPi"};
1828 int pi0cut[11] = {0,1,0,1,0,1,0,1,1,0,0};
1829 int kscut[11] = {0,0,0,0,1,1,0,0,1,1,0};
1830 string strtrack[14] = {"D02KPi_kaon","D02KPi_pion","D02KPiPi0_kaon","D02KPiPi0_pion","D02KsPiPi_pion1",\
1831 "D02KsPiPi_pion2","D02KsPiPi_pion3","D02KsPiPi_pion4","DC2KPiPi_kaon","DC2KPiPi_pion1","DC2KPiPi_pion2",\
1832 "DC2KsPiPi0_pion1","DC2KsPiPi0_pion2","DC2KsPiPi0_pion3" };
1833 // for (int i=0;i!=11;i++)
1834 // {
1835 // fillHistogram(m_thsvc,strdecaymode[i],3,m_decayModeHistName,m_tuple4,pi0cut[i],kscut[i]);
1836 // }
1837 fillHistogram(m_thsvc,strdecaymode[taggedMode],3,m_decayModeHistName,m_tuple4,pi0cut[taggedMode],kscut[taggedMode]);
1838 string strDdecaymode[2] = {"D0","DC"};
1839 // fillHistogram(m_thsvc,strDdecaymode[0],3,m_decayModeHistName,m_tuple4);
1840 // fillHistogram(m_thsvc,strDdecaymode[1],3,m_decayModeHistName,m_tuple4);
1841 if (taggedMode < 6)
1842 fillHistogram(m_thsvc,strDdecaymode[0],3,m_decayModeHistName,m_tuple4);
1843 else
1844 fillHistogram(m_thsvc,strDdecaymode[1],3,m_decayModeHistName,m_tuple4);
1845
1846 string strtrackdedx[7] = {"D02KPi_kaon","D02KPi_pion","D02KPiPi0_kaon","D02KPiPi0_pion","DC2KPiPi_kaon","DC2KPiPi_pion1","DC2KPiPi_pion2"};
1847 string strtracktof[7] = {"D02KPi_kaon","D02KPi_pion","D02KPiPi0_kaon","D02KPiPi0_pion", "DC2KPiPi_kaon", "DC2KPiPi_pion1", "DC2KPiPi_pion2"};
1848 string strphoton[2] = {"D02KPiPi0_photon1","D02KPiPi0_photon2"};
1849 string strpi0[2] = {"D02KPiPi0","DC2KsPiPi0"};
1850 string strks[2] = {"D02KsPiPi_ks","DC2KsPiPi0_ks"};
1851 if (taggedMode == 0)
1852 {
1853 if (g_mBC > 1.86 && g_mBC < 1.87 && fabs(g_deltE) < 0.03)
1854 {
1855 fillHistogram(m_thsvc,strtrack[0],10,m_trackHistName,m_tuple4);
1856 fillHistogram(m_thsvc,strtrack[1],10,m_trackHistName,m_tuple4);
1857 fillHistogram(m_thsvc,strtrackdedx[0],6,m_trackDedxHistName,m_tuple4);
1858 fillHistogram(m_thsvc,strtrackdedx[1],6,m_trackDedxHistName,m_tuple4);
1859 fillTofHistogram(m_thsvc,strtracktof[0]);
1860 fillTofHistogram(m_thsvc,strtracktof[1]);
1861 }
1862 }
1863 if (taggedMode == 1)
1864 {
1865 if (g_mBC > 1.86 && g_mBC < 1.87 && g_deltE > -0.0583 && g_deltE < 0.035 )
1866 {
1867 fillHistogram(m_thsvc,strtrack[2],10,m_trackHistName,m_tuple4);
1868 fillHistogram(m_thsvc,strtrack[3],10,m_trackHistName,m_tuple4);
1869
1870 fillHistogram(m_thsvc,strtrackdedx[2],6,m_trackDedxHistName,m_tuple4);
1871 fillHistogram(m_thsvc,strtrackdedx[3],6,m_trackDedxHistName,m_tuple4);
1872 fillTofHistogram(m_thsvc,strtracktof[2]);
1873 fillTofHistogram(m_thsvc,strtracktof[3]);
1874 fillHistogram(m_thsvc,strphoton[0],5,m_photonHistName,m_tuple4);
1875 fillHistogram(m_thsvc,strphoton[1],5,m_photonHistName,m_tuple4);
1876
1877 fillHistogram(m_thsvc,strpi0[0],5,m_Pi0HistName,m_tuple4);
1878 }
1879 }
1880 if (taggedMode == 4)
1881 {
1882 if (g_mBC > 1.86 && g_mBC < 1.87 && fabs(g_deltE) < 0.03 )
1883 {
1884 fillHistogram(m_thsvc,strtrack[4],10,m_trackHistName,m_tuple4);
1885 fillHistogram(m_thsvc,strtrack[5],10,m_trackHistName,m_tuple4);
1886 fillHistogram(m_thsvc,strtrack[6],10,m_trackHistName,m_tuple4);
1887 fillHistogram(m_thsvc,strtrack[7],10,m_trackHistName,m_tuple4);
1888
1889 fillHistogram(m_thsvc,strks[0],4,m_KsHistName,m_tuple4);
1890 }
1891 }
1892 if (taggedMode == 6)
1893 {
1894 if (g_mBC > 1.86 && g_mBC < 1.87 && fabs(g_deltE) < 0.0218 )
1895 {
1896 fillHistogram(m_thsvc,strtrack[8],10,m_trackHistName,m_tuple4);
1897 fillHistogram(m_thsvc,strtrack[9],10,m_trackHistName,m_tuple4);
1898 fillHistogram(m_thsvc,strtrack[10],10,m_trackHistName,m_tuple4);
1899 fillTofHistogram(m_thsvc,strtracktof[4]);
1900 fillTofHistogram(m_thsvc,strtracktof[5]);
1901 fillTofHistogram(m_thsvc,strtracktof[6]);
1902 fillHistogram(m_thsvc,strtrackdedx[4],6,m_trackDedxHistName,m_tuple4);
1903 fillHistogram(m_thsvc,strtrackdedx[5],6,m_trackDedxHistName,m_tuple4);
1904 fillHistogram(m_thsvc,strtrackdedx[6],6,m_trackDedxHistName,m_tuple4);
1905 }
1906 }
1907 if (taggedMode == 8)
1908 {
1909 if (g_mBC > 1.86 && g_mBC < 1.87 && g_deltE < 0.0423 && g_deltE > -0.0455 )
1910 {
1911 fillHistogram(m_thsvc,strtrack[11],10,m_trackHistName,m_tuple4);
1912 fillHistogram(m_thsvc,strtrack[12],10,m_trackHistName,m_tuple4);
1913 fillHistogram(m_thsvc,strtrack[13],10,m_trackHistName,m_tuple4);
1914
1915 fillHistogram(m_thsvc,strpi0[1],5,m_Pi0HistName,m_tuple4);
1916 fillHistogram(m_thsvc,strks[1],4,m_KsHistName,m_tuple4);
1917 }
1918 }
1919 }
1920 }
1921 if (m_writeTuple)
1922 {
1923 m_tuple4->write();
1924 }
1925 if (m_writeTuple && m_checkEvt)
1926 {
1927 // m_tuple5->write();
1928 }
1929 //if (m_checkDedx)
1930 //m_tuple16->write();
1931 //if (m_checkTof)
1932 //m_tuple17->write();
1933
1934 setFilterPassed(true);
1935
1936 return StatusCode::SUCCESS;
1937}
double sin(const BesAngle a)
Definition: BesAngle.h:210
double cos(const BesAngle a)
Definition: BesAngle.h:213
double mass
int Ncut_DQADTagAlg[10]
Definition: DQADtagAlg.cxx:64
EvtRecTrackCol::iterator EvtRecTrackIterator
Definition: EvtRecTrack.h:111
std::vector< HepLorentzVector > Vp4
Definition: Gam4pikp.cxx:53
const double xmass[5]
Definition: Gam4pikp.cxx:50
std::vector< int > Vint
Definition: Gam4pikp.cxx:52
void fill(NTuple::Array< double > &nt_p4, const HepLorentzVector &p4)
Definition: MyUtil.cxx:3
IMessageSvc * msgSvc()
void setVtxPar(VertexParameter vtxpar)
Definition: DQAKsInfo.h:73
bool calculate()
Definition: DQAKsInfo.cxx:25
void setPrimaryVtxPar(VertexParameter privtxpar)
Definition: DQAKsInfo.h:77
void setchilds(EvtRecTrack *track0, EvtRecTrack *track1)
Definition: DQAKsInfo.h:33
void setchilds(EvtRecTrack *shower0, EvtRecTrack *shower1)
Definition: DQAPi0Info.h:30
bool calculate()
Definition: DQAPi0Info.h:61
double m()
Definition: DQAPi0Info.h:42
double latMoment() const
Definition: DstEmcShower.h:52
double a42Moment() const
Definition: DstEmcShower.h:54
double eSeed() const
Definition: DstEmcShower.h:47
double theta() const
Definition: DstEmcShower.h:38
int module() const
Definition: DstEmcShower.h:33
double e3x3() const
Definition: DstEmcShower.h:48
double phi() const
Definition: DstEmcShower.h:39
double secondMoment() const
Definition: DstEmcShower.h:51
double x() const
Definition: DstEmcShower.h:35
double e5x5() const
Definition: DstEmcShower.h:49
double z() const
Definition: DstEmcShower.h:37
int numHits() const
Definition: DstEmcShower.h:30
double a20Moment() const
Definition: DstEmcShower.h:53
double energy() const
Definition: DstEmcShower.h:45
double y() const
Definition: DstEmcShower.h:36
const Hep3Vector emcPosition() const
Definition: DstExtTrack.h:126
const int emcVolumeNumber() const
Definition: DstExtTrack.h:132
double probPH() const
Definition: DstMdcDedx.h:66
double chiE() const
Definition: DstMdcDedx.h:59
int numTotalHits() const
Definition: DstMdcDedx.h:65
int numGoodHits() const
Definition: DstMdcDedx.h:64
double normPH() const
Definition: DstMdcDedx.h:67
double chiPi() const
Definition: DstMdcDedx.h:61
double chiK() const
Definition: DstMdcDedx.h:62
double chiMu() const
Definition: DstMdcDedx.h:60
double chiP() const
Definition: DstMdcDedx.h:63
static void setPidType(PidType pidType)
const HepLorentzVector p4() const
const double theta() const
Definition: DstMdcTrack.h:59
const int charge() const
Definition: DstMdcTrack.h:53
const HepVector helix() const
......
const double z() const
Definition: DstMdcTrack.h:63
const double p() const
Definition: DstMdcTrack.h:58
const double y() const
Definition: DstMdcTrack.h:62
const double x() const
Definition: DstMdcTrack.h:61
@ kDptoKsPiPi0
Definition: EvtRecDTag.h:93
@ kDptoKPiPiPi0
Definition: EvtRecDTag.h:91
@ kD0toKPiPiPi
Definition: EvtRecDTag.h:52
@ kDptoKsPiPiPi
Definition: EvtRecDTag.h:94
@ kD0toKsPiPiPi0
Definition: EvtRecDTag.h:61
@ kD0toKPiPiPiPi0
Definition: EvtRecDTag.h:54
virtual EvtRecDTag * getSingleTag(int modeid=-1, int charm=0)=0
virtual bool isCosmicOrLepton()=0
virtual bool isVertexValid()=0
virtual double * SigmaPrimaryVertex()=0
virtual double * PrimaryVertex()=0
bool is_barrel() const
Definition: TofHitStatus.h:26
unsigned int layer() const
Definition: TofHitStatus.h:28
bool is_cluster() const
Definition: TofHitStatus.h:25
void setStatus(unsigned int status)
bool is_counter() const
Definition: TofHitStatus.h:24
_EXTERN_ std::string EvtRecEvent
Definition: EventModel.h:111
_EXTERN_ std::string EvtRecDTagCol
Definition: EventModel.h:117
_EXTERN_ std::string EvtRecTrackCol
Definition: EventModel.h:112
const float pi
Definition: vector3.h:133

◆ finalize()

StatusCode DQADtag::finalize ( )

Definition at line 2613 of file DQADtagAlg.cxx.

2613 {
2614 cout<<"* * * * * * * Begin DQADTag * * * * * * * *"<<endl;
2615 cout<<"total number: "<<Ncut_DQADTagAlg[0]<<endl;
2616 cout<<"Has DTag: "<<Ncut_DQADTagAlg[1]<<endl;
2617 cout<<"* * * * * * * End DQADTag * * * * * * * *"<<endl;
2618 MsgStream log(msgSvc(), name());
2619 log << MSG::INFO << "in finalize()" << endmsg;
2620 return StatusCode::SUCCESS;
2621}

◆ initialize()

StatusCode DQADtag::initialize ( )

Definition at line 177 of file DQADtagAlg.cxx.

177 {
178 MsgStream log(msgSvc(), name());
179
180 log << MSG::INFO << "in initialize()" << endmsg;
181
182 m_irun=-100;
183
184 StatusCode status;
185
186 NTuplePtr nt2(ntupleSvc(), "DQAFILE/CheckVtx");
187 if ( nt2 ) m_tuple2 = nt2;
188 else {
189 m_tuple2 = ntupleSvc()->book ("DQAFILE/CheckVtx", CLID_ColumnWiseTuple, "ks N-Tuple example");
190 if ( m_tuple2 ) {
191 status = m_tuple2->addItem ("vtxTrkId",m_vtxTrkId);
192 status = m_tuple2->addItem ("vx0", m_vx0);
193 status = m_tuple2->addItem ("vy0", m_vy0);
194 status = m_tuple2->addItem ("vz0", m_vz0);
195 status = m_tuple2->addItem ("vr0", m_vr0);
196 status = m_tuple2->addItem ("vct", m_Vct);
197 }
198 else {
199 log << MSG::ERROR << " Cannot book N-tuple:" << long(m_tuple2) << endmsg;
200 return StatusCode::FAILURE;
201 }
202 }
203
204 NTuplePtr nt4(ntupleSvc(), "DQAFILE/Dtag");
205 if ( nt4 ) m_tuple4 = nt4;
206 else {
207 m_tuple4 = ntupleSvc()->book ("DQAFILE/Dtag", CLID_ColumnWiseTuple, "ks N-Tuple example");
208 if ( m_tuple4 ) {
209 status = m_tuple4->addItem ("run", m_run);
210 status = m_tuple4->addItem ("rec", m_rec);
211 status = m_tuple4->addItem ("nch", m_nch);
212 status = m_tuple4->addItem ("nneu", m_nneu);
213 status = m_tuple4->addItem ("numD0Mode", m_numD0Mode);
214 status = m_tuple4->addItem ("D0_mBC", m_D0_mBC);
215 status = m_tuple4->addItem ("D0_deltE", m_D0_deltE);
216 status = m_tuple4->addItem ("D0_mass", m_D0_mass);
217 status = m_tuple4->addItem ("numDCMode", m_numDCMode);
218 status = m_tuple4->addItem ("DC_mBC", m_DC_mBC);
219 status = m_tuple4->addItem ("DC_deltE", m_DC_deltE);
220 status = m_tuple4->addItem ("DC_mass", m_DC_mass);
221 status = m_tuple4->addItem ("numAllMode", m_numAllMode);
222 status = m_tuple4->addItem ("DtagbeamE", m_dtagbeamE);
223 status = m_tuple4->addItem ("mode", m_mode);
224 status = m_tuple4->addItem ("charge", m_charge);
225 status = m_tuple4->addItem ("charm", m_charm);
226 status = m_tuple4->addItem ("numchildren", m_numofchildren);
227 status = m_tuple4->addItem ("mass", m_mass);
228 status = m_tuple4->addItem ("mBC", m_mBC);
229 status = m_tuple4->addItem ("rflag", m_rflag);
230 status = m_tuple4->addItem ("deltaE", m_deltae);
231 status = m_tuple4->addItem ("E", m_e);
232 status = m_tuple4->addItem ("p", m_p);
233 status = m_tuple4->addItem ("p_CMS", m_p_CMS);
234 status = m_tuple4->addItem ("p4_CMS", 4, m_p4_CMS);
235 status = m_tuple4->addItem ("notherTrk", m_nothertrk);
236 status = m_tuple4->addItem ("nTrk", m_ntrk);
237 status = m_tuple4->addItem ("nothershower", m_nothershower);
238 status = m_tuple4->addItem ("nshower", m_nshower);
239 status = m_tuple4->addItem ( "recNumD02KPi", m_recNumD02KPi);
240 status = m_tuple4->addItem ("D02KPi_e", m_D02KPi_e);
241 status = m_tuple4->addItem ("D02KPi_p", m_D02KPi_p);
242 status = m_tuple4->addItem ("D02KPi_mBC", m_D02KPi_mBC);
243 status = m_tuple4->addItem ("D02KPi_mass", m_D02KPi_mass);
244 status = m_tuple4->addItem ("D02KPi_deltE", m_D02KPi_deltE);
245 status = m_tuple4->addItem ("D02KPi_charm", m_D02KPi_charm);
246 status = m_tuple4->addItem ("D02KPi_kaon_pp", m_D02KPi_kaon_pp);
247 status = m_tuple4->addItem ("D02KPi_pion_pp", m_D02KPi_pion_pp);
248 status = m_tuple4->addItem ("D02KPi_kaon_vx", m_D02KPi_kaon_vx);
249 status = m_tuple4->addItem ("D02KPi_kaon_vy", m_D02KPi_kaon_vy);
250 status = m_tuple4->addItem ("D02KPi_kaon_vz", m_D02KPi_kaon_vz);
251 status = m_tuple4->addItem ("D02KPi_kaon_vr0", m_D02KPi_kaon_vr0);
252 status = m_tuple4->addItem ("D02KPi_kaon_px", m_D02KPi_kaon_px);
253 status = m_tuple4->addItem ("D02KPi_kaon_py", m_D02KPi_kaon_py);
254 status = m_tuple4->addItem ("D02KPi_kaon_pz", m_D02KPi_kaon_pz);
255 status = m_tuple4->addItem ("D02KPi_kaon_E", m_D02KPi_kaon_E);
256 status = m_tuple4->addItem ("D02KPi_kaon_cos", m_D02KPi_kaon_cos);
257 status = m_tuple4->addItem ("D02KPi_pion_vx", m_D02KPi_pion_vx);
258 status = m_tuple4->addItem ("D02KPi_pion_vy", m_D02KPi_pion_vy);
259 status = m_tuple4->addItem ("D02KPi_pion_vz", m_D02KPi_pion_vz);
260 status = m_tuple4->addItem ("D02KPi_pion_vr0", m_D02KPi_pion_vr0);
261 status = m_tuple4->addItem ("D02KPi_pion_px", m_D02KPi_pion_px);
262 status = m_tuple4->addItem ("D02KPi_pion_py", m_D02KPi_pion_py);
263 status = m_tuple4->addItem ("D02KPi_pion_pz", m_D02KPi_pion_pz);
264 status = m_tuple4->addItem ("D02KPi_pion_E", m_D02KPi_pion_E);
265 status = m_tuple4->addItem ("D02KPi_pion_cos", m_D02KPi_pion_cos);
266 status = m_tuple4->addItem ("D02KPi_kaon_Id", m_D02KPi_kaon_Id);
267 status = m_tuple4->addItem ("D02KPi_pion_Id", m_D02KPi_pion_Id);
268 status = m_tuple4->addItem ( "recNumD02KPiPi0", m_recNumD02KPiPi0);
269 status = m_tuple4->addItem ("D02KPiPi0_e", m_D02KPiPi0_e);
270 status = m_tuple4->addItem ("D02KPiPi0_p", m_D02KPiPi0_p);
271 status = m_tuple4->addItem ("D02KPiPi0_mBC", m_D02KPiPi0_mBC);
272 status = m_tuple4->addItem ("D02KPiPi0_mass", m_D02KPiPi0_mass);
273 status = m_tuple4->addItem ("D02KPiPi0_deltE", m_D02KPiPi0_deltE);
274 status = m_tuple4->addItem ("D02KPiPi0_charm", m_D02KPiPi0_charm);
275 status = m_tuple4->addItem ("D02KPiPi0_kaon_pp", m_D02KPiPi0_kaon_pp);
276 status = m_tuple4->addItem ("D02KPiPi0_pion_pp", m_D02KPiPi0_pion_pp);
277 status = m_tuple4->addItem ("D02KPiPi0_kaon_Id", m_D02KPiPi0_kaon_Id);
278 status = m_tuple4->addItem ("D02KPiPi0_pion_Id", m_D02KPiPi0_pion_Id);
279 status = m_tuple4->addItem ("D02KPiPi0_kaon_vx", m_D02KPiPi0_kaon_vx);
280 status = m_tuple4->addItem ("D02KPiPi0_kaon_vy", m_D02KPiPi0_kaon_vy);
281 status = m_tuple4->addItem ("D02KPiPi0_kaon_vz", m_D02KPiPi0_kaon_vz);
282 status = m_tuple4->addItem ("D02KPiPi0_kaon_vr0", m_D02KPiPi0_kaon_vr0);
283 status = m_tuple4->addItem ("D02KPiPi0_kaon_px", m_D02KPiPi0_kaon_px);
284 status = m_tuple4->addItem ("D02KPiPi0_kaon_py", m_D02KPiPi0_kaon_py);
285 status = m_tuple4->addItem ("D02KPiPi0_kaon_pz", m_D02KPiPi0_kaon_pz);
286 status = m_tuple4->addItem ("D02KPiPi0_kaon_E", m_D02KPiPi0_kaon_E);
287 status = m_tuple4->addItem ("D02KPiPi0_kaon_cos", m_D02KPiPi0_kaon_cos);
288 status = m_tuple4->addItem ("D02KPiPi0_pion_vx", m_D02KPiPi0_pion_vx);
289 status = m_tuple4->addItem ("D02KPiPi0_pion_vy", m_D02KPiPi0_pion_vy);
290 status = m_tuple4->addItem ("D02KPiPi0_pion_vz", m_D02KPiPi0_pion_vz);
291 status = m_tuple4->addItem ("D02KPiPi0_pion_vr0", m_D02KPiPi0_pion_vr0);
292 status = m_tuple4->addItem ("D02KPiPi0_pion_px", m_D02KPiPi0_pion_px);
293 status = m_tuple4->addItem ("D02KPiPi0_pion_py", m_D02KPiPi0_pion_py);
294 status = m_tuple4->addItem ("D02KPiPi0_pion_pz", m_D02KPiPi0_pion_pz);
295 status = m_tuple4->addItem ("D02KPiPi0_pion_E", m_D02KPiPi0_pion_E);
296 status = m_tuple4->addItem ("D02KPiPi0_pion_cos", m_D02KPiPi0_pion_cos);
297 status = m_tuple4->addItem ("D02KPiPi0_pi0mass", m_D02KPiPi0_pi0mass);
298 status = m_tuple4->addItem ("D02KPiPi0_photon1_Id", m_D02KPiPi0_photon1_Id);
299 status = m_tuple4->addItem ("D02KPiPi0_photon2_Id", m_D02KPiPi0_photon2_Id);
300 status = m_tuple4->addItem ("D02KPiPi0_photon1_E", m_D02KPiPi0_photon1_E);
301 status = m_tuple4->addItem ("D02KPiPi0_photon2_E", m_D02KPiPi0_photon2_E);
302 status = m_tuple4->addItem ("D02KPiPi0_photon1_cos", m_D02KPiPi0_photon1_cos);
303 status = m_tuple4->addItem ("D02KPiPi0_photon2_cos", m_D02KPiPi0_photon2_cos);
304 status = m_tuple4->addItem ( "recNumD02KPiPiPi", m_recNumD02KPiPiPi);
305 status = m_tuple4->addItem ("D02KPiPiPi_e", m_D02KPiPiPi_e);
306 status = m_tuple4->addItem ("D02KPiPiPi_p", m_D02KPiPiPi_p);
307 status = m_tuple4->addItem ("D02KPiPiPi_mBC", m_D02KPiPiPi_mBC);
308 status = m_tuple4->addItem ("D02KPiPiPi_mass", m_D02KPiPiPi_mass);
309 status = m_tuple4->addItem ("D02KPiPiPi_deltE", m_D02KPiPiPi_deltE);
310 status = m_tuple4->addItem ("D02KPiPiPi_charm", m_D02KPiPiPi_charm);
311 status = m_tuple4->addItem ("D02KPiPiPi_kaon_pp", m_D02KPiPiPi_kaon_pp);
312 status = m_tuple4->addItem ("D02KPiPiPi_pion1_pp", m_D02KPiPiPi_pion1_pp);
313 status = m_tuple4->addItem ("D02KPiPiPi_pion2_pp", m_D02KPiPiPi_pion2_pp);
314 status = m_tuple4->addItem ("D02KPiPiPi_pion3_pp", m_D02KPiPiPi_pion3_pp);
315 status = m_tuple4->addItem ("D02KPiPiPi_kaon_Id", m_D02KPiPiPi_kaon_Id);
316 status = m_tuple4->addItem ("D02KPiPiPi_pion1_Id", m_D02KPiPiPi_pion1_Id);
317 status = m_tuple4->addItem ("D02KPiPiPi_pion2_Id", m_D02KPiPiPi_pion2_Id);
318 status = m_tuple4->addItem ("D02KPiPiPi_pion3_Id", m_D02KPiPiPi_pion3_Id);
319 status = m_tuple4->addItem ( "recNumD02KPiPiPiPi0", m_recNumD02KPiPiPiPi0);
320 status = m_tuple4->addItem ("D02KPiPiPiPi0_e", m_D02KPiPiPiPi0_e);
321 status = m_tuple4->addItem ("D02KPiPiPiPi0_p", m_D02KPiPiPiPi0_p);
322 status = m_tuple4->addItem ("D02KPiPiPiPi0_mBC", m_D02KPiPiPiPi0_mBC);
323 status = m_tuple4->addItem ("D02KPiPiPiPi0_mass", m_D02KPiPiPiPi0_mass);
324 status = m_tuple4->addItem ("D02KPiPiPiPi0_deltE", m_D02KPiPiPiPi0_deltE);
325 status = m_tuple4->addItem ("D02KPiPiPiPi0_charm", m_D02KPiPiPiPi0_charm);
326 status = m_tuple4->addItem ("D02KPiPiPiPi0_kaon_pp", m_D02KPiPiPiPi0_kaon_pp);
327 status = m_tuple4->addItem ("D02KPiPiPiPi0_pion1_pp", m_D02KPiPiPiPi0_pion1_pp);
328 status = m_tuple4->addItem ("D02KPiPiPiPi0_pion2_pp", m_D02KPiPiPiPi0_pion2_pp);
329 status = m_tuple4->addItem ("D02KPiPiPiPi0_pion3_pp", m_D02KPiPiPiPi0_pion3_pp);
330 status = m_tuple4->addItem ("D02KPiPiPiPi0_kaon_Id", m_D02KPiPiPiPi0_kaon_Id);
331 status = m_tuple4->addItem ("D02KPiPiPiPi0_pion1_Id", m_D02KPiPiPiPi0_pion1_Id);
332 status = m_tuple4->addItem ("D02KPiPiPiPi0_pion2_Id", m_D02KPiPiPiPi0_pion2_Id);
333 status = m_tuple4->addItem ("D02KPiPiPiPi0_pion3_Id", m_D02KPiPiPiPi0_pion3_Id);
334 status = m_tuple4->addItem ("D02KPiPiPiPi0_pi0mass", m_D02KPiPiPiPi0_pi0mass);
335 status = m_tuple4->addItem ("D02KPiPiPiPi0_photon1_Id", m_D02KPiPiPiPi0_photon1_Id);
336 status = m_tuple4->addItem ("D02KPiPiPiPi0_photon2_Id", m_D02KPiPiPiPi0_photon2_Id);
337 status = m_tuple4->addItem ("D02KPiPiPiPi0_photon1_E", m_D02KPiPiPiPi0_photon1_E);
338 status = m_tuple4->addItem ("D02KPiPiPiPi0_photon2_E", m_D02KPiPiPiPi0_photon2_E);
339 status = m_tuple4->addItem ("D02KPiPiPiPi0_photon1_cos", m_D02KPiPiPiPi0_photon1_cos);
340 status = m_tuple4->addItem ("D02KPiPiPiPi0_photon2_cos", m_D02KPiPiPiPi0_photon2_cos);
341 status = m_tuple4->addItem ( "recNumD02KsPiPi", m_recNumD02KsPiPi);
342 status = m_tuple4->addItem ("D02KsPiPi_e", m_D02KsPiPi_e);
343 status = m_tuple4->addItem ("D02KsPiPi_p", m_D02KsPiPi_p);
344 status = m_tuple4->addItem ("D02KsPiPi_mBC", m_D02KsPiPi_mBC);
345 status = m_tuple4->addItem ("D02KsPiPi_mass", m_D02KsPiPi_mass);
346 status = m_tuple4->addItem ("D02KsPiPi_deltE", m_D02KsPiPi_deltE);
347 status = m_tuple4->addItem ("D02KsPiPi_charm", m_D02KsPiPi_charm);
348 status = m_tuple4->addItem ("D02KsPiPi_pion1_pp", m_D02KsPiPi_pion1_pp);
349 status = m_tuple4->addItem ("D02KsPiPi_pion2_pp", m_D02KsPiPi_pion2_pp);
350 status = m_tuple4->addItem ("D02KsPiPi_pion3_pp", m_D02KsPiPi_pion3_pp);
351 status = m_tuple4->addItem ("D02KsPiPi_pion4_pp", m_D02KsPiPi_pion4_pp);
352 status = m_tuple4->addItem ("D02KsPiPi_pion1_Id", m_D02KsPiPi_pion1_Id);
353 status = m_tuple4->addItem ("D02KsPiPi_pion2_Id", m_D02KsPiPi_pion2_Id);
354 status = m_tuple4->addItem ("D02KsPiPi_pion3_Id", m_D02KsPiPi_pion3_Id);
355 status = m_tuple4->addItem ("D02KsPiPi_pion4_Id", m_D02KsPiPi_pion4_Id);
356 status = m_tuple4->addItem ("D02KsPiPi_pion1_vx", m_D02KsPiPi_pion1_vx);
357 status = m_tuple4->addItem ("D02KsPiPi_pion1_vy", m_D02KsPiPi_pion1_vy);
358 status = m_tuple4->addItem ("D02KsPiPi_pion1_vz", m_D02KsPiPi_pion1_vz);
359 status = m_tuple4->addItem ("D02KsPiPi_pion1_vr0", m_D02KsPiPi_pion1_vr0);
360 status = m_tuple4->addItem ("D02KsPiPi_pion1_px", m_D02KsPiPi_pion1_px);
361 status = m_tuple4->addItem ("D02KsPiPi_pion1_py", m_D02KsPiPi_pion1_py);
362 status = m_tuple4->addItem ("D02KsPiPi_pion1_pz", m_D02KsPiPi_pion1_pz);
363 status = m_tuple4->addItem ("D02KsPiPi_pion1_pp", m_D02KsPiPi_pion1_pp);
364 status = m_tuple4->addItem ("D02KsPiPi_pion1_E", m_D02KsPiPi_pion1_E);
365 status = m_tuple4->addItem ("D02KsPiPi_pion1_cos", m_D02KsPiPi_pion1_cos);
366 status = m_tuple4->addItem ("D02KsPiPi_pion2_vx", m_D02KsPiPi_pion2_vx);
367 status = m_tuple4->addItem ("D02KsPiPi_pion2_vy", m_D02KsPiPi_pion2_vy);
368 status = m_tuple4->addItem ("D02KsPiPi_pion2_vz", m_D02KsPiPi_pion2_vz);
369 status = m_tuple4->addItem ("D02KsPiPi_pion2_vr0", m_D02KsPiPi_pion2_vr0);
370 status = m_tuple4->addItem ("D02KsPiPi_pion2_px", m_D02KsPiPi_pion2_px);
371 status = m_tuple4->addItem ("D02KsPiPi_pion2_py", m_D02KsPiPi_pion2_py);
372 status = m_tuple4->addItem ("D02KsPiPi_pion2_pz", m_D02KsPiPi_pion2_pz);
373 status = m_tuple4->addItem ("D02KsPiPi_pion2_pp", m_D02KsPiPi_pion2_pp);
374 status = m_tuple4->addItem ("D02KsPiPi_pion2_E", m_D02KsPiPi_pion2_E);
375 status = m_tuple4->addItem ("D02KsPiPi_pion2_cos", m_D02KsPiPi_pion2_cos);
376 status = m_tuple4->addItem ("D02KsPiPi_pion3_vx", m_D02KsPiPi_pion3_vx);
377 status = m_tuple4->addItem ("D02KsPiPi_pion3_vy", m_D02KsPiPi_pion3_vy);
378 status = m_tuple4->addItem ("D02KsPiPi_pion3_vz", m_D02KsPiPi_pion3_vz);
379 status = m_tuple4->addItem ("D02KsPiPi_pion3_vr0", m_D02KsPiPi_pion3_vr0);
380 status = m_tuple4->addItem ("D02KsPiPi_pion3_px", m_D02KsPiPi_pion3_px);
381 status = m_tuple4->addItem ("D02KsPiPi_pion3_py", m_D02KsPiPi_pion3_py);
382 status = m_tuple4->addItem ("D02KsPiPi_pion3_pz", m_D02KsPiPi_pion3_pz);
383 status = m_tuple4->addItem ("D02KsPiPi_pion3_pp", m_D02KsPiPi_pion3_pp);
384 status = m_tuple4->addItem ("D02KsPiPi_pion3_E", m_D02KsPiPi_pion3_E);
385 status = m_tuple4->addItem ("D02KsPiPi_pion3_cos", m_D02KsPiPi_pion3_cos);
386 status = m_tuple4->addItem ("D02KsPiPi_pion4_vx", m_D02KsPiPi_pion4_vx);
387 status = m_tuple4->addItem ("D02KsPiPi_pion4_vy", m_D02KsPiPi_pion4_vy);
388 status = m_tuple4->addItem ("D02KsPiPi_pion4_vz", m_D02KsPiPi_pion4_vz);
389 status = m_tuple4->addItem ("D02KsPiPi_pion4_vr0", m_D02KsPiPi_pion4_vr0);
390 status = m_tuple4->addItem ("D02KsPiPi_pion4_px", m_D02KsPiPi_pion4_px);
391 status = m_tuple4->addItem ("D02KsPiPi_pion4_py", m_D02KsPiPi_pion4_py);
392 status = m_tuple4->addItem ("D02KsPiPi_pion4_pz", m_D02KsPiPi_pion4_pz);
393 status = m_tuple4->addItem ("D02KsPiPi_pion4_pp", m_D02KsPiPi_pion4_pp);
394 status = m_tuple4->addItem ("D02KsPiPi_pion4_E", m_D02KsPiPi_pion4_E);
395 status = m_tuple4->addItem ("D02KsPiPi_pion4_cos", m_D02KsPiPi_pion4_cos);
396 status = m_tuple4->addItem ("D02KsPiPi_ks_mass", m_D02KsPiPi_ks_mass);
397 status = m_tuple4->addItem ("D02KsPiPi_ks_vfitmass", m_D02KsPiPi_ks_vfitmass);
398 status = m_tuple4->addItem ("D02KsPiPi_ks_pvchi2", m_D02KsPiPi_ks_pvchi2);
399 status = m_tuple4->addItem ("D02KsPiPi_ks_svchi2", m_D02KsPiPi_ks_svchi2);
400 status = m_tuple4->addItem ("D02KsPiPi_ks_dLength", m_D02KsPiPi_ks_dLength);
401 status = m_tuple4->addItem ("D02KsPiPi_ks_dLengthErrorRatio", m_D02KsPiPi_ks_dLengthErrorRatio);
402 status = m_tuple4->addItem ( "recNumD02KsPiPiPi0", m_recNumD02KsPiPiPi0);
403 status = m_tuple4->addItem ("D02KsPiPiPi0_e", m_D02KsPiPiPi0_e);
404 status = m_tuple4->addItem ("D02KsPiPiPi0_p", m_D02KsPiPiPi0_p);
405 status = m_tuple4->addItem ("D02KsPiPiPi0_mBC", m_D02KsPiPiPi0_mBC);
406 status = m_tuple4->addItem ("D02KsPiPiPi0_mass", m_D02KsPiPiPi0_mass);
407 status = m_tuple4->addItem ("D02KsPiPiPi0_deltE", m_D02KsPiPiPi0_deltE);
408 status = m_tuple4->addItem ("D02KsPiPiPi0_charm", m_D02KsPiPiPi0_charm);
409 status = m_tuple4->addItem ("D02KsPiPiPi0_pion1_pp", m_D02KsPiPiPi0_pion1_pp);
410 status = m_tuple4->addItem ("D02KsPiPiPi0_pion2_pp", m_D02KsPiPiPi0_pion2_pp);
411 status = m_tuple4->addItem ("D02KsPiPiPi0_pion3_pp", m_D02KsPiPiPi0_pion3_pp);
412 status = m_tuple4->addItem ("D02KsPiPiPi0_pion4_pp", m_D02KsPiPiPi0_pion4_pp);
413 status = m_tuple4->addItem ("D02KsPiPiPi0_pion1_Id", m_D02KsPiPiPi0_pion1_Id);
414 status = m_tuple4->addItem ("D02KsPiPiPi0_pion2_Id", m_D02KsPiPiPi0_pion2_Id);
415 status = m_tuple4->addItem ("D02KsPiPiPi0_pion3_Id", m_D02KsPiPiPi0_pion3_Id);
416 status = m_tuple4->addItem ("D02KsPiPiPi0_pion4_Id", m_D02KsPiPiPi0_pion4_Id);
417 status = m_tuple4->addItem ("D02KsPiPiPi0_pi0mass", m_D02KsPiPiPi0_pi0mass);
418 status = m_tuple4->addItem ("D02KsPiPiPi0_photon1_Id", m_D02KsPiPiPi0_photon1_Id);
419 status = m_tuple4->addItem ("D02KsPiPiPi0_photon2_Id", m_D02KsPiPiPi0_photon2_Id);
420 status = m_tuple4->addItem ("D02KsPiPiPi0_photon1_E", m_D02KsPiPiPi0_photon1_E);
421 status = m_tuple4->addItem ("D02KsPiPiPi0_photon2_E", m_D02KsPiPiPi0_photon2_E);
422 status = m_tuple4->addItem ("D02KsPiPiPi0_photon1_cos", m_D02KsPiPiPi0_photon1_cos);
423 status = m_tuple4->addItem ("D02KsPiPiPi0_photon2_cos", m_D02KsPiPiPi0_photon2_cos);
424 status = m_tuple4->addItem ("D02KsPiPiPi0_ks_mass", m_D02KsPiPiPi0_ks_mass);
425 status = m_tuple4->addItem ("D02KsPiPiPi0_ks_vfitmass", m_D02KsPiPiPi0_ks_vfitmass);
426 status = m_tuple4->addItem ("D02KsPiPiPi0_ks_pvchi2", m_D02KsPiPiPi0_ks_pvchi2);
427 status = m_tuple4->addItem ("D02KsPiPiPi0_ks_svchi2", m_D02KsPiPiPi0_ks_svchi2);
428 status = m_tuple4->addItem ("D02KsPiPiPi0_ks_dLength", m_D02KsPiPiPi0_ks_dLength);
429 status = m_tuple4->addItem ("D02KsPiPiPi0_ks_dLengthErrorRatio", m_D02KsPiPiPi0_ks_dLengthErrorRatio);
430 status = m_tuple4->addItem ( "recNumDC2KPiPi", m_recNumDC2KPiPi);
431 status = m_tuple4->addItem ("DC2KPiPi_e", m_DC2KPiPi_e);
432 status = m_tuple4->addItem ("DC2KPiPi_p", m_DC2KPiPi_p);
433 status = m_tuple4->addItem ("DC2KPiPi_mBC", m_DC2KPiPi_mBC);
434 status = m_tuple4->addItem ("DC2KPiPi_mass", m_DC2KPiPi_mass);
435 status = m_tuple4->addItem ("DC2KPiPi_deltE", m_DC2KPiPi_deltE);
436 status = m_tuple4->addItem ("DC2KPiPi_charge", m_DC2KPiPi_charge);
437 status = m_tuple4->addItem ("DC2KPiPi_charm", m_DC2KPiPi_charm);
438 status = m_tuple4->addItem ("DC2KPiPi_kaon_pp", m_DC2KPiPi_kaon_pp);
439 status = m_tuple4->addItem ("DC2KPiPi_pion1_pp", m_DC2KPiPi_pion1_pp);
440 status = m_tuple4->addItem ("DC2KPiPi_pion2_pp", m_DC2KPiPi_pion2_pp);
441 status = m_tuple4->addItem ("DC2KPiPi_kaon_Id", m_DC2KPiPi_kaon_Id);
442 status = m_tuple4->addItem ("DC2KPiPi_pion1_Id", m_DC2KPiPi_pion1_Id);
443 status = m_tuple4->addItem ("DC2KPiPi_pion2_Id", m_DC2KPiPi_pion2_Id);
444 status = m_tuple4->addItem ("DC2KPiPi_kaon_vx", m_DC2KPiPi_kaon_vx);
445 status = m_tuple4->addItem ("DC2KPiPi_kaon_vy", m_DC2KPiPi_kaon_vy);
446 status = m_tuple4->addItem ("DC2KPiPi_kaon_vz", m_DC2KPiPi_kaon_vz);
447 status = m_tuple4->addItem ("DC2KPiPi_kaon_vr0", m_DC2KPiPi_kaon_vr0);
448 status = m_tuple4->addItem ("DC2KPiPi_kaon_px", m_DC2KPiPi_kaon_px);
449 status = m_tuple4->addItem ("DC2KPiPi_kaon_py", m_DC2KPiPi_kaon_py);
450 status = m_tuple4->addItem ("DC2KPiPi_kaon_pz", m_DC2KPiPi_kaon_pz);
451 status = m_tuple4->addItem ("DC2KPiPi_kaon_E", m_DC2KPiPi_kaon_E);
452 status = m_tuple4->addItem ("DC2KPiPi_kaon_cos", m_DC2KPiPi_kaon_cos);
453 status = m_tuple4->addItem ("DC2KPiPi_pion1_vx", m_DC2KPiPi_pion1_vx);
454 status = m_tuple4->addItem ("DC2KPiPi_pion1_vy", m_DC2KPiPi_pion1_vy);
455 status = m_tuple4->addItem ("DC2KPiPi_pion1_vz", m_DC2KPiPi_pion1_vz);
456 status = m_tuple4->addItem ("DC2KPiPi_pion1_vr0", m_DC2KPiPi_pion1_vr0);
457 status = m_tuple4->addItem ("DC2KPiPi_pion1_px", m_DC2KPiPi_pion1_px);
458 status = m_tuple4->addItem ("DC2KPiPi_pion1_py", m_DC2KPiPi_pion1_py);
459 status = m_tuple4->addItem ("DC2KPiPi_pion1_pz", m_DC2KPiPi_pion1_pz);
460 status = m_tuple4->addItem ("DC2KPiPi_pion1_E", m_DC2KPiPi_pion1_E);
461 status = m_tuple4->addItem ("DC2KPiPi_pion1_cos", m_DC2KPiPi_pion1_cos);
462 status = m_tuple4->addItem ("DC2KPiPi_pion2_vx", m_DC2KPiPi_pion2_vx);
463 status = m_tuple4->addItem ("DC2KPiPi_pion2_vy", m_DC2KPiPi_pion2_vy);
464 status = m_tuple4->addItem ("DC2KPiPi_pion2_vz", m_DC2KPiPi_pion2_vz);
465 status = m_tuple4->addItem ("DC2KPiPi_pion2_vr0", m_DC2KPiPi_pion2_vr0);
466 status = m_tuple4->addItem ("DC2KPiPi_pion2_px", m_DC2KPiPi_pion2_px);
467 status = m_tuple4->addItem ("DC2KPiPi_pion2_py", m_DC2KPiPi_pion2_py);
468 status = m_tuple4->addItem ("DC2KPiPi_pion2_pz", m_DC2KPiPi_pion2_pz);
469 status = m_tuple4->addItem ("DC2KPiPi_pion2_E", m_DC2KPiPi_pion2_E);
470 status = m_tuple4->addItem ("DC2KPiPi_pion2_cos", m_DC2KPiPi_pion2_cos);
471 status = m_tuple4->addItem ( "recNumDC2KPiPiPi0", m_recNumDC2KPiPiPi0);
472 status = m_tuple4->addItem ("DC2KPiPiPi0_e", m_DC2KPiPiPi0_e);
473 status = m_tuple4->addItem ("DC2KPiPiPi0_p", m_DC2KPiPiPi0_p);
474 status = m_tuple4->addItem ("DC2KPiPiPi0_mBC", m_DC2KPiPiPi0_mBC);
475 status = m_tuple4->addItem ("DC2KPiPiPi0_mass", m_DC2KPiPiPi0_mass);
476 status = m_tuple4->addItem ("DC2KPiPiPi0_deltE", m_DC2KPiPiPi0_deltE);
477 status = m_tuple4->addItem ("DC2KPiPiPi0_charge", m_DC2KPiPiPi0_charge);
478 status = m_tuple4->addItem ("DC2KPiPiPi0_charm", m_DC2KPiPiPi0_charm);
479 status = m_tuple4->addItem ("DC2KPiPiPi0_kaon_pp", m_DC2KPiPiPi0_kaon_pp);
480 status = m_tuple4->addItem ("DC2KPiPiPi0_pion1_pp", m_DC2KPiPiPi0_pion1_pp);
481 status = m_tuple4->addItem ("DC2KPiPiPi0_pion2_pp", m_DC2KPiPiPi0_pion2_pp);
482 status = m_tuple4->addItem ("DC2KPiPiPi0_kaon_Id", m_DC2KPiPiPi0_kaon_Id);
483 status = m_tuple4->addItem ("DC2KPiPiPi0_pion1_Id", m_DC2KPiPiPi0_pion1_Id);
484 status = m_tuple4->addItem ("DC2KPiPiPi0_pion2_Id", m_DC2KPiPiPi0_pion2_Id);
485 status = m_tuple4->addItem ("DC2KPiPiPi0_kaon_vx", m_DC2KPiPiPi0_kaon_vx);
486 status = m_tuple4->addItem ("DC2KPiPiPi0_kaon_vy", m_DC2KPiPiPi0_kaon_vy);
487 status = m_tuple4->addItem ("DC2KPiPiPi0_kaon_vz", m_DC2KPiPiPi0_kaon_vz);
488 status = m_tuple4->addItem ("DC2KPiPiPi0_kaon_vr0", m_DC2KPiPiPi0_kaon_vr0);
489 status = m_tuple4->addItem ("DC2KPiPiPi0_kaon_px", m_DC2KPiPiPi0_kaon_px);
490 status = m_tuple4->addItem ("DC2KPiPiPi0_kaon_py", m_DC2KPiPiPi0_kaon_py);
491 status = m_tuple4->addItem ("DC2KPiPiPi0_kaon_pz", m_DC2KPiPiPi0_kaon_pz);
492 status = m_tuple4->addItem ("DC2KPiPiPi0_kaon_E", m_DC2KPiPiPi0_kaon_E);
493 status = m_tuple4->addItem ("DC2KPiPiPi0_kaon_cos", m_DC2KPiPiPi0_kaon_cos);
494 status = m_tuple4->addItem ("DC2KPiPiPi0_pion1_vx", m_DC2KPiPiPi0_pion1_vx);
495 status = m_tuple4->addItem ("DC2KPiPiPi0_pion1_vy", m_DC2KPiPiPi0_pion1_vy);
496 status = m_tuple4->addItem ("DC2KPiPiPi0_pion1_vz", m_DC2KPiPiPi0_pion1_vz);
497 status = m_tuple4->addItem ("DC2KPiPiPi0_pion1_vr0", m_DC2KPiPiPi0_pion1_vr0);
498 status = m_tuple4->addItem ("DC2KPiPiPi0_pion1_px", m_DC2KPiPiPi0_pion1_px);
499 status = m_tuple4->addItem ("DC2KPiPiPi0_pion1_py", m_DC2KPiPiPi0_pion1_py);
500 status = m_tuple4->addItem ("DC2KPiPiPi0_pion1_pz", m_DC2KPiPiPi0_pion1_pz);
501 status = m_tuple4->addItem ("DC2KPiPiPi0_pion1_E", m_DC2KPiPiPi0_pion1_E);
502 status = m_tuple4->addItem ("DC2KPiPiPi0_pion1_cos", m_DC2KPiPiPi0_pion1_cos);
503 status = m_tuple4->addItem ("DC2KPiPiPi0_pion2_vx", m_DC2KPiPiPi0_pion2_vx);
504 status = m_tuple4->addItem ("DC2KPiPiPi0_pion2_vy", m_DC2KPiPiPi0_pion2_vy);
505 status = m_tuple4->addItem ("DC2KPiPiPi0_pion2_vz", m_DC2KPiPiPi0_pion2_vz);
506 status = m_tuple4->addItem ("DC2KPiPiPi0_pion2_vr0", m_DC2KPiPiPi0_pion2_vr0);
507 status = m_tuple4->addItem ("DC2KPiPiPi0_pion2_px", m_DC2KPiPiPi0_pion2_px);
508 status = m_tuple4->addItem ("DC2KPiPiPi0_pion2_py", m_DC2KPiPiPi0_pion2_py);
509 status = m_tuple4->addItem ("DC2KPiPiPi0_pion2_pz", m_DC2KPiPiPi0_pion2_pz);
510 status = m_tuple4->addItem ("DC2KPiPiPi0_pion2_E", m_DC2KPiPiPi0_pion2_E);
511 status = m_tuple4->addItem ("DC2KPiPiPi0_pion2_cos", m_DC2KPiPiPi0_pion2_cos);
512 status = m_tuple4->addItem ("DC2KPiPiPi0_pi0mass", m_DC2KPiPiPi0_pi0mass);
513 status = m_tuple4->addItem ("DC2KPiPiPi0_photon1_Id", m_DC2KPiPiPi0_photon1_Id);
514 status = m_tuple4->addItem ("DC2KPiPiPi0_photon2_Id", m_DC2KPiPiPi0_photon2_Id);
515 status = m_tuple4->addItem ("DC2KPiPiPi0_photon1_E", m_DC2KPiPiPi0_photon1_E);
516 status = m_tuple4->addItem ("DC2KPiPiPi0_photon2_E", m_DC2KPiPiPi0_photon2_E);
517 status = m_tuple4->addItem ("DC2KPiPiPi0_photon1_cos", m_DC2KPiPiPi0_photon1_cos);
518 status = m_tuple4->addItem ("DC2KPiPiPi0_photon2_cos", m_DC2KPiPiPi0_photon2_cos);
519 status = m_tuple4->addItem ( "recNumDC2KsPiPi0", m_recNumDC2KsPiPi0);
520 status = m_tuple4->addItem ("DC2KsPiPi0_e", m_DC2KsPiPi0_e);
521 status = m_tuple4->addItem ("DC2KsPiPi0_p", m_DC2KsPiPi0_p);
522 status = m_tuple4->addItem ("DC2KsPiPi0_mBC", m_DC2KsPiPi0_mBC);
523 status = m_tuple4->addItem ("DC2KsPiPi0_mass", m_DC2KsPiPi0_mass);
524 status = m_tuple4->addItem ("DC2KsPiPi0_deltE", m_DC2KsPiPi0_deltE);
525 status = m_tuple4->addItem ("DC2KsPiPi0_charge", m_DC2KsPiPi0_charge);
526 status = m_tuple4->addItem ("DC2KsPiPi0_charm", m_DC2KsPiPi0_charm);
527 status = m_tuple4->addItem ("DC2KsPiPi0_pion1_pp", m_DC2KsPiPi0_pion1_pp);
528 status = m_tuple4->addItem ("DC2KsPiPi0_pion2_pp", m_DC2KsPiPi0_pion2_pp);
529 status = m_tuple4->addItem ("DC2KsPiPi0_pion3_pp", m_DC2KsPiPi0_pion3_pp);
530 status = m_tuple4->addItem ("DC2KsPiPi0_pion1_Id", m_DC2KsPiPi0_pion1_Id);
531 status = m_tuple4->addItem ("DC2KsPiPi0_pion2_Id", m_DC2KsPiPi0_pion2_Id);
532 status = m_tuple4->addItem ("DC2KsPiPi0_pion3_Id", m_DC2KsPiPi0_pion3_Id);
533 status = m_tuple4->addItem ("DC2KsPiPi0_pion1_vx", m_DC2KsPiPi0_pion1_vx);
534 status = m_tuple4->addItem ("DC2KsPiPi0_pion1_vy", m_DC2KsPiPi0_pion1_vy);
535 status = m_tuple4->addItem ("DC2KsPiPi0_pion1_vz", m_DC2KsPiPi0_pion1_vz);
536 status = m_tuple4->addItem ("DC2KsPiPi0_pion1_vr0", m_DC2KsPiPi0_pion1_vr0);
537 status = m_tuple4->addItem ("DC2KsPiPi0_pion1_px", m_DC2KsPiPi0_pion1_px);
538 status = m_tuple4->addItem ("DC2KsPiPi0_pion1_py", m_DC2KsPiPi0_pion1_py);
539 status = m_tuple4->addItem ("DC2KsPiPi0_pion1_pz", m_DC2KsPiPi0_pion1_pz);
540 status = m_tuple4->addItem ("DC2KsPiPi0_pion1_E", m_DC2KsPiPi0_pion1_E);
541 status = m_tuple4->addItem ("DC2KsPiPi0_pion1_cos", m_DC2KsPiPi0_pion1_cos);
542 status = m_tuple4->addItem ("DC2KsPiPi0_pion2_vx", m_DC2KsPiPi0_pion2_vx);
543 status = m_tuple4->addItem ("DC2KsPiPi0_pion2_vy", m_DC2KsPiPi0_pion2_vy);
544 status = m_tuple4->addItem ("DC2KsPiPi0_pion2_vz", m_DC2KsPiPi0_pion2_vz);
545 status = m_tuple4->addItem ("DC2KsPiPi0_pion2_vr0", m_DC2KsPiPi0_pion2_vr0);
546 status = m_tuple4->addItem ("DC2KsPiPi0_pion2_px", m_DC2KsPiPi0_pion2_px);
547 status = m_tuple4->addItem ("DC2KsPiPi0_pion2_py", m_DC2KsPiPi0_pion2_py);
548 status = m_tuple4->addItem ("DC2KsPiPi0_pion2_pz", m_DC2KsPiPi0_pion2_pz);
549 status = m_tuple4->addItem ("DC2KsPiPi0_pion2_E", m_DC2KsPiPi0_pion2_E);
550 status = m_tuple4->addItem ("DC2KsPiPi0_pion2_cos", m_DC2KsPiPi0_pion2_cos);
551 status = m_tuple4->addItem ("DC2KsPiPi0_pion3_vx", m_DC2KsPiPi0_pion3_vx);
552 status = m_tuple4->addItem ("DC2KsPiPi0_pion3_vy", m_DC2KsPiPi0_pion3_vy);
553 status = m_tuple4->addItem ("DC2KsPiPi0_pion3_vz", m_DC2KsPiPi0_pion3_vz);
554 status = m_tuple4->addItem ("DC2KsPiPi0_pion3_vr0", m_DC2KsPiPi0_pion3_vr0);
555 status = m_tuple4->addItem ("DC2KsPiPi0_pion3_px", m_DC2KsPiPi0_pion3_px);
556 status = m_tuple4->addItem ("DC2KsPiPi0_pion3_py", m_DC2KsPiPi0_pion3_py);
557 status = m_tuple4->addItem ("DC2KsPiPi0_pion3_pz", m_DC2KsPiPi0_pion3_pz);
558 status = m_tuple4->addItem ("DC2KsPiPi0_pion3_E", m_DC2KsPiPi0_pion3_E);
559 status = m_tuple4->addItem ("DC2KsPiPi0_pion3_cos", m_DC2KsPiPi0_pion3_cos);
560 status = m_tuple4->addItem ("DC2KsPiPi0_pi0mass", m_DC2KsPiPi0_pi0mass);
561 status = m_tuple4->addItem ("DC2KsPiPi0_photon1_Id", m_DC2KsPiPi0_photon1_Id);
562 status = m_tuple4->addItem ("DC2KsPiPi0_photon2_Id", m_DC2KsPiPi0_photon2_Id);
563 status = m_tuple4->addItem ("DC2KsPiPi0_photon1_E", m_DC2KsPiPi0_photon1_E);
564 status = m_tuple4->addItem ("DC2KsPiPi0_photon2_E", m_DC2KsPiPi0_photon2_E);
565 status = m_tuple4->addItem ("DC2KsPiPi0_photon1_cos", m_DC2KsPiPi0_photon1_cos);
566 status = m_tuple4->addItem ("DC2KsPiPi0_photon2_cos", m_DC2KsPiPi0_photon2_cos);
567 status = m_tuple4->addItem ("DC2KsPiPi0_ks_mass", m_DC2KsPiPi0_ks_mass);
568 status = m_tuple4->addItem ("DC2KsPiPi0_ks_vfitmass", m_DC2KsPiPi0_ks_vfitmass);
569 status = m_tuple4->addItem ("DC2KsPiPi0_ks_pvchi2", m_DC2KsPiPi0_ks_pvchi2);
570 status = m_tuple4->addItem ("DC2KsPiPi0_ks_svchi2", m_DC2KsPiPi0_ks_svchi2);
571 status = m_tuple4->addItem ("DC2KsPiPi0_ks_dLength", m_DC2KsPiPi0_ks_dLength);
572 status = m_tuple4->addItem ("DC2KsPiPi0_ks_dLengthErrorRatio", m_DC2KsPiPi0_ks_dLengthErrorRatio);
573 status = m_tuple4->addItem ( "recNumDC2KsPiPiPi", m_recNumDC2KsPiPiPi);
574 status = m_tuple4->addItem ("DC2KsPiPiPi_e", m_DC2KsPiPiPi_e);
575 status = m_tuple4->addItem ("DC2KsPiPiPi_p", m_DC2KsPiPiPi_p);
576 status = m_tuple4->addItem ("DC2KsPiPiPi_mBC", m_DC2KsPiPiPi_mBC);
577 status = m_tuple4->addItem ("DC2KsPiPiPi_mass", m_DC2KsPiPiPi_mass);
578 status = m_tuple4->addItem ("DC2KsPiPiPi_deltE", m_DC2KsPiPiPi_deltE);
579 status = m_tuple4->addItem ("DC2KsPiPiPi_charge", m_DC2KsPiPiPi_charge);
580 status = m_tuple4->addItem ("DC2KsPiPiPi_charm", m_DC2KsPiPiPi_charm);
581 status = m_tuple4->addItem ("DC2KsPiPiPi_pion1_pp", m_DC2KsPiPiPi_pion1_pp);
582 status = m_tuple4->addItem ("DC2KsPiPiPi_pion2_pp", m_DC2KsPiPiPi_pion2_pp);
583 status = m_tuple4->addItem ("DC2KsPiPiPi_pion3_pp", m_DC2KsPiPiPi_pion3_pp);
584 status = m_tuple4->addItem ("DC2KsPiPiPi_pion4_pp", m_DC2KsPiPiPi_pion4_pp);
585 status = m_tuple4->addItem ("DC2KsPiPiPi_pion5_pp", m_DC2KsPiPiPi_pion5_pp);
586 status = m_tuple4->addItem ("DC2KsPiPiPi_pion1_Id", m_DC2KsPiPiPi_pion1_Id);
587 status = m_tuple4->addItem ("DC2KsPiPiPi_pion2_Id", m_DC2KsPiPiPi_pion2_Id);
588 status = m_tuple4->addItem ("DC2KsPiPiPi_pion3_Id", m_DC2KsPiPiPi_pion3_Id);
589 status = m_tuple4->addItem ("DC2KsPiPiPi_pion4_Id", m_DC2KsPiPiPi_pion4_Id);
590 status = m_tuple4->addItem ("DC2KsPiPiPi_pion5_Id", m_DC2KsPiPiPi_pion5_Id);
591 status = m_tuple4->addItem ("DC2KsPiPiPi_ks_mass", m_DC2KsPiPiPi_ks_mass);
592 status = m_tuple4->addItem ("DC2KsPiPiPi_ks_vfitmass", m_DC2KsPiPiPi_ks_vfitmass);
593 status = m_tuple4->addItem ("DC2KsPiPiPi_ks_pvchi2", m_DC2KsPiPiPi_ks_pvchi2);
594 status = m_tuple4->addItem ("DC2KsPiPiPi_ks_svchi2", m_DC2KsPiPiPi_ks_svchi2);
595 status = m_tuple4->addItem ("DC2KsPiPiPi_ks_dLength", m_DC2KsPiPiPi_ks_dLength);
596 status = m_tuple4->addItem ("DC2KsPiPiPi_ks_dLengthErrorRatio", m_DC2KsPiPiPi_ks_dLengthErrorRatio);
597 status = m_tuple4->addItem ( "recNumDC2KKPi", m_recNumDC2KKPi);
598 status = m_tuple4->addItem ("DC2KKPi_e", m_DC2KKPi_e);
599 status = m_tuple4->addItem ("DC2KKPi_p", m_DC2KKPi_p);
600 status = m_tuple4->addItem ("DC2KKPi_mBC", m_DC2KKPi_mBC);
601 status = m_tuple4->addItem ("DC2KKPi_mass", m_DC2KKPi_mass);
602 status = m_tuple4->addItem ("DC2KKPi_deltE", m_DC2KKPi_deltE);
603 status = m_tuple4->addItem ("DC2KKPi_charge", m_DC2KKPi_charge);
604 status = m_tuple4->addItem ("DC2KKPi_charm", m_DC2KKPi_charm);
605 status = m_tuple4->addItem ("DC2KKPi_kaon1_pp", m_DC2KKPi_kaon1_pp);
606 status = m_tuple4->addItem ("DC2KKPi_kaon2_pp", m_DC2KKPi_kaon2_pp);
607 status = m_tuple4->addItem ("DC2KKPi_pion_pp", m_DC2KKPi_pion_pp);
608 status = m_tuple4->addItem ("DC2KKPi_kaon1_Id", m_DC2KKPi_kaon1_Id);
609 status = m_tuple4->addItem ("DC2KKPi_kaon2_Id", m_DC2KKPi_kaon2_Id);
610 status = m_tuple4->addItem ("DC2KKPi_pion_Id", m_DC2KKPi_pion_Id);
611 status = m_tuple4->addItem ("D02KPi_kaon_Id_Dedx", m_D02KPi_kaon_Id_Dedx);
612 status = m_tuple4->addItem ("D02KPi_pion_Id_Dedx", m_D02KPi_pion_Id_Dedx);
613 status = m_tuple4->addItem ("D02KPi_kaon_chipi", m_D02KPi_kaon_chipi);
614 status = m_tuple4->addItem ("D02KPi_kaon_chik", m_D02KPi_kaon_chik);
615 status = m_tuple4->addItem ("D02KPi_kaon_ghit", m_D02KPi_kaon_ghit);
616 status = m_tuple4->addItem ("D02KPi_kaon_thit", m_D02KPi_kaon_thit);
617 status = m_tuple4->addItem ("D02KPi_kaon_probPH", m_D02KPi_kaon_probPH);
618 status = m_tuple4->addItem ("D02KPi_kaon_normPH", m_D02KPi_kaon_normPH);
619 status = m_tuple4->addItem ("D02KPi_pion_chipi", m_D02KPi_pion_chipi);
620 status = m_tuple4->addItem ("D02KPi_pion_chik", m_D02KPi_pion_chik);
621 status = m_tuple4->addItem ("D02KPi_pion_ghit", m_D02KPi_pion_ghit);
622 status = m_tuple4->addItem ("D02KPi_pion_thit", m_D02KPi_pion_thit);
623 status = m_tuple4->addItem ("D02KPi_pion_probPH", m_D02KPi_pion_probPH);
624 status = m_tuple4->addItem ("D02KPi_pion_normPH", m_D02KPi_pion_normPH);
625 status = m_tuple4->addItem ("D02KPiPi0_kaon_Id_Dedx", m_D02KPiPi0_kaon_Id_Dedx);
626 status = m_tuple4->addItem ("D02KPiPi0_pion_Id_Dedx", m_D02KPiPi0_pion_Id_Dedx);
627 status = m_tuple4->addItem ("D02KPiPi0_kaon_chipi", m_D02KPiPi0_kaon_chipi);
628 status = m_tuple4->addItem ("D02KPiPi0_kaon_chik", m_D02KPiPi0_kaon_chik);
629 status = m_tuple4->addItem ("D02KPiPi0_kaon_ghit", m_D02KPiPi0_kaon_ghit);
630 status = m_tuple4->addItem ("D02KPiPi0_kaon_thit", m_D02KPiPi0_kaon_thit);
631 status = m_tuple4->addItem ("D02KPiPi0_kaon_probPH", m_D02KPiPi0_kaon_probPH);
632 status = m_tuple4->addItem ("D02KPiPi0_kaon_normPH", m_D02KPiPi0_kaon_normPH);
633 status = m_tuple4->addItem ("D02KPiPi0_pion_chipi", m_D02KPiPi0_pion_chipi);
634 status = m_tuple4->addItem ("D02KPiPi0_pion_chik", m_D02KPiPi0_pion_chik);
635 status = m_tuple4->addItem ("D02KPiPi0_pion_ghit", m_D02KPiPi0_pion_ghit);
636 status = m_tuple4->addItem ("D02KPiPi0_pion_thit", m_D02KPiPi0_pion_thit);
637 status = m_tuple4->addItem ("D02KPiPi0_pion_probPH", m_D02KPiPi0_pion_probPH);
638 status = m_tuple4->addItem ("D02KPiPi0_pion_normPH", m_D02KPiPi0_pion_normPH);
639 status = m_tuple4->addItem ("D02KPi_kaon_Id_tof", m_D02KPi_kaon_Id_tof);
640 status = m_tuple4->addItem ("D02KPi_pion_Id_tof", m_D02KPi_pion_Id_tof);
641 status = m_tuple4->addItem ("D02KPi_kaon_ec_toff_mu", m_D02KPi_kaon_ec_toff_mu);
642 status = m_tuple4->addItem ("D02KPi_kaon_ec_toff_pi", m_D02KPi_kaon_ec_toff_pi);
643 status = m_tuple4->addItem ("D02KPi_kaon_ec_toff_k", m_D02KPi_kaon_ec_toff_k);
644 status = m_tuple4->addItem ("D02KPi_kaon_ec_toff_isEast", m_D02KPi_kaon_ec_toff_isEast);
645 status = m_tuple4->addItem ("D02KPi_kaon_br_toff_mu", 7,m_D02KPi_kaon_br_toff_mu);
646 status = m_tuple4->addItem ("D02KPi_kaon_br_toff_pi", 7,m_D02KPi_kaon_br_toff_pi);
647 status = m_tuple4->addItem ("D02KPi_kaon_br_toff_k", 7,m_D02KPi_kaon_br_toff_k);
648 status = m_tuple4->addItem ("D02KPi_pion_ec_toff_pi", m_D02KPi_pion_ec_toff_mu);
649 status = m_tuple4->addItem ("D02KPi_pion_ec_toff_mu", m_D02KPi_pion_ec_toff_pi);
650 status = m_tuple4->addItem ("D02KPi_pion_ec_toff_k", m_D02KPi_pion_ec_toff_k);
651 status = m_tuple4->addItem ("D02KPi_pion_ec_toff_isEast", m_D02KPi_pion_ec_toff_isEast);
652 status = m_tuple4->addItem ("D02KPi_pion_br_toff_mu", 7,m_D02KPi_pion_br_toff_mu);
653 status = m_tuple4->addItem ("D02KPi_pion_br_toff_pi", 7,m_D02KPi_pion_br_toff_pi);
654 status = m_tuple4->addItem ("D02KPi_pion_br_toff_k", 7,m_D02KPi_pion_br_toff_k);
655 status = m_tuple4->addItem ("D02KPiPi0_kaon_Id_tof", m_D02KPiPi0_kaon_Id_tof);
656 status = m_tuple4->addItem ("D02KPiPi0_pion_Id_tof", m_D02KPiPi0_pion_Id_tof);
657 status = m_tuple4->addItem ("D02KPiPi0_kaon_ec_toff_mu", m_D02KPiPi0_kaon_ec_toff_mu);
658 status = m_tuple4->addItem ("D02KPiPi0_kaon_ec_toff_pi", m_D02KPiPi0_kaon_ec_toff_pi);
659 status = m_tuple4->addItem ("D02KPiPi0_kaon_ec_toff_k", m_D02KPiPi0_kaon_ec_toff_k);
660 status = m_tuple4->addItem ("D02KPiPi0_kaon_ec_toff_isEast", m_D02KPiPi0_kaon_ec_toff_isEast);
661 status = m_tuple4->addItem ("D02KPiPi0_kaon_br_toff_mu", 7,m_D02KPiPi0_kaon_br_toff_mu);
662 status = m_tuple4->addItem ("D02KPiPi0_kaon_br_toff_pi", 7,m_D02KPiPi0_kaon_br_toff_pi);
663 status = m_tuple4->addItem ("D02KPiPi0_kaon_br_toff_k", 7,m_D02KPiPi0_kaon_br_toff_k);
664 status = m_tuple4->addItem ("D02KPiPi0_pion_ec_toff_mu", m_D02KPiPi0_pion_ec_toff_mu);
665 status = m_tuple4->addItem ("D02KPiPi0_pion_ec_toff_pi", m_D02KPiPi0_pion_ec_toff_pi);
666 status = m_tuple4->addItem ("D02KPiPi0_pion_ec_toff_k", m_D02KPiPi0_pion_ec_toff_k);
667 status = m_tuple4->addItem ("D02KPiPi0_pion_ec_toff_isEast", m_D02KPiPi0_pion_ec_toff_isEast);
668 status = m_tuple4->addItem ("D02KPiPi0_pion_br_toff_mu", 7,m_D02KPiPi0_pion_br_toff_mu);
669 status = m_tuple4->addItem ("D02KPiPi0_pion_br_toff_pi", 7,m_D02KPiPi0_pion_br_toff_pi);
670 status = m_tuple4->addItem ("D02KPiPi0_pion_br_toff_k", 7,m_D02KPiPi0_pion_br_toff_k);
671 status = m_tuple4->addItem ("DC2KPiPi_kaon_Id_tof", m_DC2KPiPi_kaon_Id_tof);
672 status = m_tuple4->addItem ("DC2KPiPi_pion1_Id_tof", m_DC2KPiPi_pion1_Id_tof);
673 status = m_tuple4->addItem ("DC2KPiPi_pion2_Id_tof", m_DC2KPiPi_pion2_Id_tof);
674 status = m_tuple4->addItem ("DC2KPiPi_kaon_ec_toff_mu", m_DC2KPiPi_kaon_ec_toff_mu);
675 status = m_tuple4->addItem ("DC2KPiPi_kaon_ec_toff_pi", m_DC2KPiPi_kaon_ec_toff_pi);
676 status = m_tuple4->addItem ("DC2KPiPi_kaon_ec_toff_k", m_DC2KPiPi_kaon_ec_toff_k);
677 status = m_tuple4->addItem ("DC2KPiPi_kaon_ec_toff_isEast", m_DC2KPiPi_kaon_ec_toff_isEast);
678 status = m_tuple4->addItem ("DC2KPiPi_kaon_br_toff_mu", 7, m_DC2KPiPi_kaon_br_toff_mu);
679 status = m_tuple4->addItem ("DC2KPiPi_kaon_br_toff_pi", 7, m_DC2KPiPi_kaon_br_toff_pi);
680 status = m_tuple4->addItem ("DC2KPiPi_kaon_br_toff_k", 7, m_DC2KPiPi_kaon_br_toff_k);
681 status = m_tuple4->addItem ("DC2KPiPi_pion1_ec_toff_mu", m_DC2KPiPi_pion1_ec_toff_mu);
682 status = m_tuple4->addItem ("DC2KPiPi_pion1_ec_toff_pi", m_DC2KPiPi_pion1_ec_toff_pi);
683 status = m_tuple4->addItem ("DC2KPiPi_pion1_ec_toff_k", m_DC2KPiPi_pion1_ec_toff_k);
684 status = m_tuple4->addItem ("DC2KPiPi_pion1_ec_toff_isEast", m_DC2KPiPi_pion1_ec_toff_isEast);
685 status = m_tuple4->addItem ("DC2KPiPi_pion1_br_toff_mu", 7, m_DC2KPiPi_pion1_br_toff_mu);
686 status = m_tuple4->addItem ("DC2KPiPi_pion1_br_toff_pi", 7, m_DC2KPiPi_pion1_br_toff_pi);
687 status = m_tuple4->addItem ("DC2KPiPi_pion1_br_toff_k", 7, m_DC2KPiPi_pion1_br_toff_k);
688 status = m_tuple4->addItem ("DC2KPiPi_pion2_ec_toff_mu", m_DC2KPiPi_pion2_ec_toff_mu);
689 status = m_tuple4->addItem ("DC2KPiPi_pion2_ec_toff_pi", m_DC2KPiPi_pion2_ec_toff_pi);
690 status = m_tuple4->addItem ("DC2KPiPi_pion2_ec_toff_k", m_DC2KPiPi_pion2_ec_toff_k);
691 status = m_tuple4->addItem ("DC2KPiPi_pion2_ec_toff_isEast", m_DC2KPiPi_pion2_ec_toff_isEast);
692 status = m_tuple4->addItem ("DC2KPiPi_pion2_br_toff_mu", 7, m_DC2KPiPi_pion2_br_toff_mu);
693 status = m_tuple4->addItem ("DC2KPiPi_pion2_br_toff_pi", 7, m_DC2KPiPi_pion2_br_toff_pi);
694 status = m_tuple4->addItem ("DC2KPiPi_pion2_br_toff_k", 7, m_DC2KPiPi_pion2_br_toff_k);
695 status = m_tuple4->addItem ("D02KPiPi0_photon1_Id_Emc", m_D02KPiPi0_photon1_Id_Emc);
696 status = m_tuple4->addItem ("D02KPiPi0_photon1_numHits", m_D02KPiPi0_photon1_numHits);
697 status = m_tuple4->addItem ("D02KPiPi0_photon1_secondmoment", m_D02KPiPi0_photon1_secondmoment);
698 status = m_tuple4->addItem ("D02KPiPi0_photon1_x", m_D02KPiPi0_photon1_x);
699 status = m_tuple4->addItem ("D02KPiPi0_photon1_y", m_D02KPiPi0_photon1_y);
700 status = m_tuple4->addItem ("D02KPiPi0_photon1_z", m_D02KPiPi0_photon1_z);
701 status = m_tuple4->addItem ("D02KPiPi0_photon2_Id_Emc", m_D02KPiPi0_photon2_Id_Emc);
702 status = m_tuple4->addItem ("D02KPiPi0_photon2_numHits", m_D02KPiPi0_photon2_numHits);
703 status = m_tuple4->addItem ("D02KPiPi0_photon2_secondmoment", m_D02KPiPi0_photon2_secondmoment);
704 status = m_tuple4->addItem ("D02KPiPi0_photon2_x", m_D02KPiPi0_photon2_x);
705 status = m_tuple4->addItem ("D02KPiPi0_photon2_y", m_D02KPiPi0_photon2_y);
706 status = m_tuple4->addItem ("D02KPiPi0_photon2_z", m_D02KPiPi0_photon2_z);
707 status = m_tuple4->addItem ("DC2KPiPi_kaon_chipi", m_DC2KPiPi_kaon_chipi);
708 status = m_tuple4->addItem ("DC2KPiPi_kaon_chik", m_DC2KPiPi_kaon_chik);
709 status = m_tuple4->addItem ("DC2KPiPi_kaon_ghit", m_DC2KPiPi_kaon_ghit);
710 status = m_tuple4->addItem ("DC2KPiPi_kaon_thit", m_DC2KPiPi_kaon_thit);
711 status = m_tuple4->addItem ("DC2KPiPi_kaon_probPH", m_DC2KPiPi_kaon_probPH);
712 status = m_tuple4->addItem ("DC2KPiPi_kaon_normPH", m_DC2KPiPi_kaon_normPH);
713 status = m_tuple4->addItem ("DC2KPiPi_pion1_chipi", m_DC2KPiPi_pion1_chipi);
714 status = m_tuple4->addItem ("DC2KPiPi_pion1_chik", m_DC2KPiPi_pion1_chik);
715 status = m_tuple4->addItem ("DC2KPiPi_pion1_ghit", m_DC2KPiPi_pion1_ghit);
716 status = m_tuple4->addItem ("DC2KPiPi_pion1_thit", m_DC2KPiPi_pion1_thit);
717 status = m_tuple4->addItem ("DC2KPiPi_pion1_probPH", m_DC2KPiPi_pion1_probPH);
718 status = m_tuple4->addItem ("DC2KPiPi_pion1_normPH", m_DC2KPiPi_pion1_normPH);
719 status = m_tuple4->addItem ("DC2KPiPi_pion2_chipi", m_DC2KPiPi_pion2_chipi);
720 status = m_tuple4->addItem ("DC2KPiPi_pion2_chik", m_DC2KPiPi_pion2_chik);
721 status = m_tuple4->addItem ("DC2KPiPi_pion2_ghit", m_DC2KPiPi_pion2_ghit);
722 status = m_tuple4->addItem ("DC2KPiPi_pion2_thit", m_DC2KPiPi_pion2_thit);
723 status = m_tuple4->addItem ("DC2KPiPi_pion2_probPH", m_DC2KPiPi_pion2_probPH);
724 status = m_tuple4->addItem ("DC2KPiPi_pion2_normPH", m_DC2KPiPi_pion2_normPH);
725 status = m_tuple4->addItem ("DC2KPiPi_kaon_Id_Dedx", m_DC2KPiPi_kaon_Id_Dedx);
726 status = m_tuple4->addItem ("DC2KPiPi_pion1_Id_Dedx", m_DC2KPiPi_pion1_Id_Dedx);
727 status = m_tuple4->addItem ("DC2KPiPi_pion2_Id_Dedx", m_DC2KPiPi_pion2_Id_Dedx);
728 }
729 else {
730 log << MSG::ERROR << " Cannot book N-tuple:" << long(m_tuple4) << endmsg;
731 return StatusCode::FAILURE;
732 }
733 }
734
735 NTuplePtr nt5(ntupleSvc(), "DQAFILE/Events");
736 if ( nt5 ) m_tuple5 = nt5;
737 else {
738 m_tuple5 = ntupleSvc()->book ("DQAFILE/Events", CLID_ColumnWiseTuple, "ks N-Tuple example");
739 if ( m_tuple5 ) {
740 status = m_tuple5->addItem ("evtrun", m_evtrun);
741 status = m_tuple5->addItem ("evtrec", m_evtrec);
742 status = m_tuple5->addItem ("evtnch", m_evtnch);
743 status = m_tuple5->addItem ("evtnneu", m_evtnneu);
744 status = m_tuple5->addItem ("evtbeamE", m_evtbeamE);
745 }
746 else {
747 log << MSG::ERROR << " Cannot book N-tuple:" << long(m_tuple5) << endmsg;
748 return StatusCode::FAILURE;
749 }
750 }
751 NTuplePtr nt11(ntupleSvc(), "DQAFILE/CheckDedxAll");
752 if ( nt11 ) m_tuple11 = nt11;
753 else {
754 m_tuple11 = ntupleSvc()->book ("DQAFILE/CheckDedxAll", CLID_ColumnWiseTuple, "ks N-Tuple example");
755 if ( m_tuple11 ) {
756 status = m_tuple11->addItem ("ngch", m_ngch, 0, 10000);
757 status = m_tuple11->addIndexedItem ("trkiddedx", m_ngch, m_trkiddedx);
758 status = m_tuple11->addIndexedItem ("mptrk", m_ngch, m_ptrk);
759 status = m_tuple11->addIndexedItem ("chie", m_ngch, m_chie);
760 status = m_tuple11->addIndexedItem ("chimu", m_ngch,m_chimu);
761 status = m_tuple11->addIndexedItem ("chipi", m_ngch,m_chipi);
762 status = m_tuple11->addIndexedItem ("chik", m_ngch,m_chik);
763 status = m_tuple11->addIndexedItem ("chip", m_ngch,m_chip);
764 status = m_tuple11->addIndexedItem ("probPH", m_ngch,m_probPH);
765 status = m_tuple11->addIndexedItem ("normPH", m_ngch,m_normPH);
766 status = m_tuple11->addIndexedItem ("ghit", m_ngch,m_ghit);
767 status = m_tuple11->addIndexedItem ("thit", m_ngch,m_thit);
768 }
769 else {
770 log << MSG::ERROR << " Cannot book N-tuple:" << long(m_tuple11) << endmsg;
771 return StatusCode::FAILURE;
772 }
773 }
774
775 NTuplePtr nt12(ntupleSvc(), "DQAFILE/CheckTofChAll");
776 if ( nt12 ) m_tuple12 = nt12;
777 else {
778 m_tuple12 = ntupleSvc()->book ("DQAFILE/CheckTofChAll", CLID_ColumnWiseTuple, "ks N-Tuple example");
779 if ( m_tuple12 ) {
780 status = m_tuple12->addItem ("ngch2", m_ngch2, 0, 10000);
781 status = m_tuple12->addIndexedItem ("trkidtof", m_ngch2,m_trkidtof);
782 status = m_tuple12->addIndexedItem ("ptot_etof", m_ngch2,m_ptot_etof);
783 status = m_tuple12->addIndexedItem ("cntr_etof", m_ngch2,m_cntr_etof);
784 status = m_tuple12->addIndexedItem ("te_etof", m_ngch2,m_te_etof);
785 status = m_tuple12->addIndexedItem ("tmu_etof", m_ngch2,m_tmu_etof);
786 status = m_tuple12->addIndexedItem ("tpi_etof", m_ngch2,m_tpi_etof);
787 status = m_tuple12->addIndexedItem ("tk_etof", m_ngch2,m_tk_etof);
788 status = m_tuple12->addIndexedItem ("tp_etof", m_ngch2,m_tp_etof);
789 status = m_tuple12->addIndexedItem ("ph_etof", m_ngch2,m_ph_etof);
790 status = m_tuple12->addIndexedItem ("rhit_etof", m_ngch2,m_rhit_etof);
791 status = m_tuple12->addIndexedItem ("qual_etof", m_ngch2,m_qual_etof);
792 status = m_tuple12->addIndexedItem ("ec_toff_e", m_ngch2,m_ec_toff_e);
793 status = m_tuple12->addIndexedItem ("ec_toff_mu",m_ngch2,m_ec_toff_mu);
794 status = m_tuple12->addIndexedItem ("ec_toff_pi",m_ngch2,m_ec_toff_pi);
795 status = m_tuple12->addIndexedItem ("ec_toff_k", m_ngch2,m_ec_toff_k);
796 status = m_tuple12->addIndexedItem ("ec_toff_p", m_ngch2,m_ec_toff_p);
797 status = m_tuple12->addIndexedItem ("ec_tsig_e", m_ngch2,m_ec_tsig_e);
798 status = m_tuple12->addIndexedItem ("ec_tsig_mu",m_ngch2,m_ec_tsig_mu);
799 status = m_tuple12->addIndexedItem ("ec_tsig_pi",m_ngch2,m_ec_tsig_pi);
800 status = m_tuple12->addIndexedItem ("ec_tsig_k", m_ngch2,m_ec_tsig_k);
801 status = m_tuple12->addIndexedItem ("ec_tsig_p", m_ngch2,m_ec_tsig_p);
802 status = m_tuple12->addIndexedItem ("ec_tof", m_ngch2,m_ec_tof);
803 status = m_tuple12->addIndexedItem ("ptot_btof1",m_ngch2,m_ptot_btof1);
804 status = m_tuple12->addIndexedItem ("cntr_btof1",m_ngch2,m_cntr_btof1);
805 status = m_tuple12->addIndexedItem ("te_btof1", m_ngch2,m_te_btof1);
806 status = m_tuple12->addIndexedItem ("tmu_btof1", m_ngch2,m_tmu_btof1);
807 status = m_tuple12->addIndexedItem ("tpi_btof1", m_ngch2,m_tpi_btof1);
808 status = m_tuple12->addIndexedItem ("tk_btof1", m_ngch2,m_tk_btof1);
809 status = m_tuple12->addIndexedItem ("tp_btof1", m_ngch2,m_tp_btof1);
810 status = m_tuple12->addIndexedItem ("ph_btof1", m_ngch2,m_ph_btof1);
811 status = m_tuple12->addIndexedItem ("zhit_btof1",m_ngch2,m_zhit_btof1);
812 status = m_tuple12->addIndexedItem ("qual_btof1",m_ngch2,m_qual_btof1);
813 status = m_tuple12->addIndexedItem ("b1_toff_e", m_ngch2,m_b1_toff_e);
814 status = m_tuple12->addIndexedItem ("b1_toff_mu",m_ngch2,m_b1_toff_mu);
815 status = m_tuple12->addIndexedItem ("b1_toff_pi",m_ngch2,m_b1_toff_pi);
816 status = m_tuple12->addIndexedItem ("b1_toff_k", m_ngch2,m_b1_toff_k);
817 status = m_tuple12->addIndexedItem ("b1_toff_p", m_ngch2,m_b1_toff_p);
818 status = m_tuple12->addIndexedItem ("b1_tsig_e", m_ngch2,m_b1_tsig_e);
819 status = m_tuple12->addIndexedItem ("b1_tsig_mu",m_ngch2,m_b1_tsig_mu);
820 status = m_tuple12->addIndexedItem ("b1_tsig_pi",m_ngch2,m_b1_tsig_pi);
821 status = m_tuple12->addIndexedItem ("b1_tsig_k", m_ngch2,m_b1_tsig_k);
822 status = m_tuple12->addIndexedItem ("b1_tsig_p", m_ngch2,m_b1_tsig_p);
823 status = m_tuple12->addIndexedItem ("b1_tof", m_ngch2,m_b1_tof);
824
825 status = m_tuple12->addIndexedItem ("mdedx_pid", m_ngch2,m_dedx_pid);
826 status = m_tuple12->addIndexedItem ("mtof1_pid", m_ngch2,m_tof1_pid);
827 status = m_tuple12->addIndexedItem ("mtof2_pid", m_ngch2,m_tof2_pid);
828 status = m_tuple12->addIndexedItem ("mprob_pid", m_ngch2,m_prob_pid);
829 status = m_tuple12->addIndexedItem ("mptrk_pid", m_ngch2,m_ptrk_pid);
830 status = m_tuple12->addIndexedItem ("mcost_pid", m_ngch2,m_cost_pid);
831 }
832 else {
833 log << MSG::ERROR << " Cannot book N-tuple:" << long(m_tuple12) << endmsg;
834 return StatusCode::FAILURE;
835 }
836 }
837
838 NTuplePtr nt13(ntupleSvc(), "DQAFILE/CheckTofNeAll");
839 if ( nt13 ) m_tuple13 = nt13;
840 else {
841 m_tuple13 = ntupleSvc()->book ("DQAFILE/CheckTofNeAll", CLID_ColumnWiseTuple, "ks N-Tuple example");
842 if ( m_tuple13 ) {
843 status = m_tuple13->addItem ("ngneu", m_nggneu, 0, 10000);
844 status = m_tuple13->addIndexedItem ("shwidtof", m_nggneu,m_shwidtof);
845 status = m_tuple13->addIndexedItem ("numHits", m_nggneu,m_numHits); // Total number of hits
846 status = m_tuple13->addIndexedItem ("secondmoment", m_nggneu,m_secondmoment);
847 status = m_tuple13->addIndexedItem ("mx", m_nggneu,m_x); // Shower coordinates and errors
848 status = m_tuple13->addIndexedItem ("my", m_nggneu,m_y);
849 status = m_tuple13->addIndexedItem ("mz", m_nggneu,m_z);
850 status = m_tuple13->addIndexedItem ("cosemc", m_nggneu,m_cosemc); // Shower Counter angles and errors
851 status = m_tuple13->addIndexedItem ("phiemc", m_nggneu,m_phiemc);
852 status = m_tuple13->addIndexedItem ("energy", m_nggneu,m_energy); // Total energy observed in Emc
853 status = m_tuple13->addIndexedItem ("eseed", m_nggneu,m_eSeed);
854 status = m_tuple13->addIndexedItem ("me9", m_nggneu,m_e3x3);
855 status = m_tuple13->addIndexedItem ("me25", m_nggneu,m_e5x5);
856 status = m_tuple13->addIndexedItem ("mlat", m_nggneu,m_lat);
857 status = m_tuple13->addIndexedItem ("ma20", m_nggneu,m_a20);
858 status = m_tuple13->addIndexedItem ("ma42", m_nggneu,m_a42);
859 }
860 else {
861 log << MSG::ERROR << " Cannot book N-tuple:" << long(m_tuple13) << endmsg;
862 return StatusCode::FAILURE;
863 }
864 }
865
866 if(service("THistSvc", m_thsvc).isFailure()) {
867 log << MSG::ERROR << "Couldn't get THistSvc" << endreq;
868 return StatusCode::FAILURE;
869 }
870
871 string strdecaymode[11] = {"D02KPi","D02KPiPi0","D02KPiPiPi","D02KPiPiPiPi0","D02KsPiPi","D02KsPiPiPi0",\
872 "DC2KPiPi","DC2KPiPiPi0","DC2KsPiPi0","DC2KsPiPiPi","DC2KKPi"};
873 for (int i=0;i!=11;i++)
874 {
875 regDecayModeHistogram(m_thsvc,strdecaymode[i]);
876 }
877 string strDdecaymode[2] = {"D0","DC"};
878 regDecayModeHistogram(m_thsvc,strDdecaymode[0]);
879 regDecayModeHistogram(m_thsvc,strDdecaymode[1]);
880 string strtrack[14] = {"D02KPi_kaon","D02KPi_pion","D02KPiPi0_kaon","D02KPiPi0_pion","D02KsPiPi_pion1",\
881 "D02KsPiPi_pion2","D02KsPiPi_pion3","D02KsPiPi_pion4","DC2KPiPi_kaon","DC2KPiPi_pion1","DC2KPiPi_pion2",\
882 "DC2KsPiPi0_pion1","DC2KsPiPi0_pion2","DC2KsPiPi0_pion3" };
883 for (int i=0;i!=14;i++)
884 {
885 regTrackHistogram(m_thsvc,strtrack[i]);
886 }
887 string strphoton[2] = {"D02KPiPi0_photon1","D02KPiPi0_photon2"};
888 regPhotonHistogram(m_thsvc,strphoton[0]);
889 regPhotonHistogram(m_thsvc,strphoton[1]);
890 string strtrackdedx[7] = {"D02KPi_kaon","D02KPi_pion","D02KPiPi0_kaon","D02KPiPi0_pion","DC2KPiPi_kaon","DC2KPiPi_pion1","DC2KPiPi_pion2"};
891 for (int i=0;i!=7;i++)
892 {
893 regTrackDedxHistogram(m_thsvc,strtrackdedx[i]);
894 }
895 string strtracktof[7] = {"D02KPi_kaon","D02KPi_pion","D02KPiPi0_kaon","D02KPiPi0_pion", "DC2KPiPi_kaon", "DC2KPiPi_pion1", "DC2KPiPi_pion2"};
896 for (int i=0;i!=7;i++)
897 {
898 regTrackTofHistogram(m_thsvc,strtracktof[i]);
899 }
900 string strpi0[2] = {"D02KPiPi0","DC2KsPiPi0"};
901 for (int i=0;i!=2;i++)
902 {
903 regPi0Histogram(m_thsvc,strpi0[i]);
904 }
905 string strks[2] = {"D02KsPiPi","DC2KsPiPi0"};
906 for (int i=0;i!=2;i++)
907 {
908 regKsHistogram(m_thsvc,strks[i]);
909 }
910
911 StatusCode sc = service("BestDTagSvc", m_bestDSvc);
912 if ( sc.isFailure() ){
913 log << MSG::FATAL << "Could not load BestDTagSvc!" << endreq;
914 return sc;
915 }
916 //
917 //--------end of book--------
918 //
919
920 log << MSG::INFO << "successfully return from initialize()" <<endmsg;
921 return StatusCode::SUCCESS;
922
923}
INTupleSvc * ntupleSvc()

The documentation for this class was generated from the following files: