00001 // 00002 // Description: class for ntuple items 00003 // 00004 00005 #ifndef MDCHISTITEM_H 00006 #define MDCHISTITEM_H 00007 00008 #include "GaudiKernel/Algorithm.h" 00009 #include "GaudiKernel/NTuple.h" 00010 #include "AIDA/IHistogram1D.h" 00011 #include "AIDA/IHistogram2D.h" 00012 00013 //histograms 00014 //AIDA::IHistogram1D* g_actHit; 00015 //AIDA::IHistogram1D* g_hitEff; 00016 AIDA::IHistogram2D* g_residVsLayer; 00017 AIDA::IHistogram2D* g_residVsDoca; 00018 AIDA::IHistogram1D* h_mapHit; 00019 AIDA::IHistogram1D* h_sfHit; 00020 00021 //-----------cut-------------- 00022 //AIDA::IHistogram1D* g_segChi2; 00023 //AIDA::IHistogram1D* g_segChi2SlayPat3[43]; 00024 //AIDA::IHistogram1D* g_segChi2SlayPat4[43]; 00025 AIDA::IHistogram1D* g_maxSegChisqAx; 00026 AIDA::IHistogram1D* g_maxSegChisqSt; 00027 AIDA::IHistogram1D* g_nSigAdd; 00028 AIDA::IHistogram1D* g_cirTkChi2; 00029 AIDA::IHistogram1D* g_z0Cut; 00030 AIDA::IHistogram1D* g_ctCut; 00031 AIDA::IHistogram1D* g_delCt; 00032 AIDA::IHistogram1D* g_delZ0; 00033 AIDA::IHistogram1D* g_delPhi; 00034 AIDA::IHistogram1D* g_delSlope; 00035 AIDA::IHistogram1D* g_combChi2; 00036 AIDA::IHistogram1D* g_phiDiff; 00037 AIDA::IHistogram1D* g_slopeDiff; 00038 AIDA::IHistogram1D* g_fitNAct; 00039 AIDA::IHistogram1D* g_3dTkChi2; 00040 AIDA::IHistogram1D* g_pickHitWire; 00041 00042 //tuple of MdcTrkRecon 00043 NTuple::Tuple* m_tupleMc; 00044 NTuple::Tuple* m_tupleMcHit; 00045 NTuple::Tuple* m_tuple1; 00046 NTuple::Tuple* m_tupleSeg; 00047 NTuple::Tuple* m_tupleEvt; 00048 //tuple item of mc truth 00049 NTuple::Item<double> m_tMcEvtNo; 00050 NTuple::Item<long> m_tMcNTk; 00051 NTuple::Item<long> m_tMcTkId; 00052 NTuple::Item<long> m_tMcPid; 00053 NTuple::Item<double> m_tMcPx; 00054 NTuple::Item<double> m_tMcPy; 00055 NTuple::Item<double> m_tMcPz; 00056 NTuple::Item<double> m_tMcD0; 00057 NTuple::Item<double> m_tMcZ0; 00058 NTuple::Item<double> m_tMcTheta; 00059 NTuple::Item<double> m_tMcFiTerm; 00060 NTuple::Item<long> m_tMcNHit; 00061 NTuple::Array<double> m_tMcLayer; 00062 NTuple::Array<double> m_tMcWire; 00063 NTuple::Array<double> m_tMcDrift; 00064 NTuple::Array<double> m_tMcX; 00065 NTuple::Array<double> m_tMcY; 00066 NTuple::Array<double> m_tMcZ; 00067 NTuple::Array<double> m_tMcLR; 00068 00069 //tuple item of reconstruction results 00070 NTuple::Item<double> m_t0; 00071 NTuple::Item<double> m_t0Stat; 00072 NTuple::Item<double> m_t0Truth; 00073 NTuple::Item<double> m_nTdsTk; 00074 NTuple::Item<double> m_nMcTk; 00075 NTuple::Item<double> m_p; 00076 NTuple::Item<double> m_pt; 00077 NTuple::Item<double> m_nSlay; 00078 NTuple::Item<double> m_pz; 00079 NTuple::Item<double> m_d0; 00080 NTuple::Item<double> m_phi0; 00081 NTuple::Item<double> m_cpa; 00082 NTuple::Item<double> m_z0; 00083 NTuple::Item<double> m_tanl; 00084 NTuple::Item<double> m_q; 00085 NTuple::Item<double> m_pocax; 00086 NTuple::Item<double> m_pocay; 00087 NTuple::Item<double> m_pocaz; 00088 NTuple::Item<double> m_evtNo; 00089 NTuple::Item<double> m_nSt; 00090 NTuple::Item<double> m_nDof; 00091 NTuple::Item<double> m_chi2; 00092 NTuple::Item<double> m_tkId; 00093 NTuple::Item<long> m_nHit; 00094 NTuple::Item<double> m_nAct; 00095 NTuple::Item<double> m_layerCount; 00096 NTuple::Item<long> m_nDigi; 00097 00098 NTuple::Array<double> m_resid; 00099 NTuple::Array<double> m_sigma; 00100 NTuple::Array<double> m_driftD; 00101 NTuple::Array<double> m_driftT; 00102 NTuple::Array<double> m_doca; 00103 NTuple::Array<double> m_entra; 00104 NTuple::Array<double> m_fltLen; 00105 NTuple::Array<double> m_tof; 00106 NTuple::Array<double> m_ambig; 00107 NTuple::Array<double> m_act; 00108 NTuple::Array<double> m_tdc; 00109 NTuple::Array<double> m_adc; 00110 NTuple::Array<double> m_layer; 00111 NTuple::Array<double> m_wire; 00112 NTuple::Array<double> m_x; 00113 NTuple::Array<double> m_y; 00114 NTuple::Array<double> m_z; 00115 NTuple::Array<double> m_dx; 00116 NTuple::Array<double> m_dy; 00117 NTuple::Array<double> m_dz; 00118 NTuple::Array<double> m_dDriftD; 00119 NTuple::Array<double> m_dlr; 00120 NTuple::Array<double> m_cellWidth;//for MdcTrackList::pickHits() goodDriftCut 00121 00122 //tuple item of event 00123 NTuple::Item<long> m_t4EvtNo; 00124 NTuple::Item<double> m_t4nMcTk; 00125 NTuple::Item<double> m_t4nRecTk; 00126 NTuple::Item<double> m_t4t0; 00127 NTuple::Item<long> m_t4t0Stat; 00128 NTuple::Item<double> m_t4t0Truth; 00129 NTuple::Item<long> m_t4nDigi; 00130 NTuple::Item<long> m_t4nDigiUnmatch; 00131 NTuple::Array<long> m_t4Layer; 00132 NTuple::Array<long> m_t4Wire; 00133 NTuple::Array<double> m_t4Time; 00134 NTuple::Array<double> m_t4Charge; 00135 NTuple::Array<double> m_t4recHit; 00136 NTuple::Array<double> m_t4PhiMid; 00137 NTuple::Array<double> m_t4Hot; 00138 00139 //tuple item of segment 00140 NTuple::Item<long> m_tsNSeg; 00141 NTuple::Item<long> m_tsEvtNo; 00142 NTuple::Item<long> m_tsNDigi; 00143 NTuple::Array<long> m_tsLayer; 00144 NTuple::Array<long> m_tsWire; 00145 NTuple::Array<long> m_tsInSeg; 00146 NTuple::Array<long> m_tsMcTkId; 00147 00148 //tuple item of combine ax segs 00149 NTuple::Tuple* g_tupleCombAx; 00150 NTuple::Item<double> g_combAxdPhi0; 00151 NTuple::Item<double> g_combAxdCurv; 00152 NTuple::Item<double> g_combAxSigPhi0; 00153 NTuple::Item<double> g_combAxSigCurv; 00154 NTuple::Item<double> g_combAxSlSeed; 00155 NTuple::Item<double> g_combAxSlTest; 00156 NTuple::Item<double> g_combAxQualitySeed; 00157 NTuple::Item<double> g_combAxQualityTest; 00158 NTuple::Item<double> g_combAxPatSeed; 00159 NTuple::Item<double> g_combAxPatTest; 00160 NTuple::Item<double> g_combAxNhitSeed; 00161 NTuple::Item<double> g_combAxNhitTest; 00162 NTuple::Item<double> g_combAxMc; 00163 NTuple::Item<double> g_combAxMcPt; 00164 NTuple::Item<double> g_combAxMcTheta; 00165 NTuple::Item<double> g_combAxMcPhi; 00166 NTuple::Item<double> g_combAxMcAmbigSeed; 00167 NTuple::Item<double> g_combAxMcAmbigTest; 00168 00169 NTuple::Tuple* m_tuplet; 00170 NTuple::Item<long> m_tl; 00171 NTuple::Item<long> m_tw; 00172 NTuple::Item<double> m_tphi; 00173 NTuple::Item<double> m_tdphi; 00174 NTuple::Item<double> m_tdncell; 00175 00176 #ifdef MDCPATREC_TIMETEST 00177 NTuple::Tuple* m_tupleTime; 00178 NTuple::Item<double> m_eventTime; 00179 NTuple::Item<long> m_recTkNum; 00180 NTuple::Item<long> m_mcTkNum; 00181 NTuple::Item<long> m_t5EvtNo; 00182 NTuple::Item<long> m_t5nHit; 00183 NTuple::Item<long> m_t5nDigi; 00184 NTuple::Item<long> m_t5nSt; 00185 NTuple::Item<double> m_t5fitTime; 00186 NTuple::Item<double> m_t5p; 00187 NTuple::Item<double> m_t5pt; 00188 #endif 00189 00190 #ifdef MDCPATREC_RESLAYER 00191 int m_resLayer; 00192 NTuple::Tuple* g_tupleres; 00193 NTuple::Item<double> g_resLayer; 00194 NTuple::Item<double> g_t6Layer; 00195 #endif 00196 00197 NTuple::Tuple* g_tupleFindSeg; 00198 NTuple::Item<double> g_findSegChi2; 00199 NTuple::Item<double> g_findSegIntercept; 00200 NTuple::Item<double> g_findSegSlope; 00201 NTuple::Item<double> g_findSegChi2Refit; 00202 NTuple::Item<double> g_findSegChi2Add; 00203 NTuple::Item<int> g_findSegPat; 00204 NTuple::Item<int> g_findSegNhit; 00205 NTuple::Item<int> g_findSegPat34; 00206 NTuple::Item<int> g_findSegSl; 00207 NTuple::Item<double> g_findSegMc; 00208 NTuple::Item<double> g_findSegAmbig; 00209 00210 NTuple::Tuple* m_tuplePick; 00211 NTuple::Item<long> m_pickLayer; 00212 NTuple::Item<long> m_pickNCell; 00213 NTuple::Item<long> m_pickNCellWithDigi; 00214 NTuple::Array<long> m_pickWire; 00215 NTuple::Array<double> m_pickPredDrift; 00216 NTuple::Array<double> m_pickDrift; 00217 NTuple::Array<double> m_pickDriftTruth; 00218 NTuple::Array<int> m_pickPhizOk; 00219 NTuple::Array<double> m_pickPhiMaxDiff; 00220 NTuple::Array<double> m_pickPhiMinDiff; 00221 NTuple::Array<double> m_pickZ; 00222 NTuple::Array<double> m_pickResid; 00223 NTuple::Array<double> m_pickSigma; 00224 NTuple::Array<double> m_pickPhiLowCut; 00225 NTuple::Array<double> m_pickPhiHighCut; 00226 NTuple::Array<double> m_pickDriftCut; 00227 NTuple::Array<long> m_pickMcTk; 00228 NTuple::Array<long> m_pickIs2D; 00229 NTuple::Array<double> m_pickPt; 00230 NTuple::Array<double> m_pickCurv; 00231 00232 NTuple::Tuple* m_tupleWireEff; 00233 NTuple::Item<long> m_we_tkId; 00234 NTuple::Item<long> m_we_pdg; 00235 NTuple::Item<long> m_we_primary; 00236 NTuple::Item<long> m_we_layer; 00237 NTuple::Item<long> m_we_wire; 00238 NTuple::Item<long> m_we_gwire; 00239 NTuple::Item<double> m_we_pt; 00240 NTuple::Item<double> m_we_theta; 00241 NTuple::Item<double> m_we_phi; 00242 //NTuple::Item<double> m_we_tdc; 00243 NTuple::Item<long> m_we_poisoned; 00244 NTuple::Item<long> m_we_seg; 00245 NTuple::Item<long> m_we_track; 00246 00247 NTuple::Tuple* m_tupleWireEffPoi; 00248 NTuple::Item<long> m_we_poi_tkId; 00249 NTuple::Item<long> m_we_poi_pdg; 00250 NTuple::Item<long> m_we_poi_primary; 00251 NTuple::Item<long> m_we_poi_layer; 00252 NTuple::Item<long> m_we_poi_wire; 00253 00254 int haveDigiTk[43][288]; 00255 double haveDigiPt[43][288]; 00256 double haveDigiTheta[43][288]; 00257 double haveDigiPhi[43][288]; 00258 double haveDigiDrift[43][288]; 00259 int haveDigiAmbig[43][288]; 00260 int recHitMap[43][288]; 00261 #endif