1#include "GaudiKernel/Algorithm.h"
4#include "CLHEP/Vector/ThreeVector.h"
5#include "HepPDT/ParticleDataTable.hh"
6#include "GaudiKernel/NTuple.h"
7#include "McTruth/McParticle.h"
8#include "McTruth/MdcMcHit.h"
9#include "RawDataProviderSvc/RawDataProviderSvc.h"
10#include "AIDA/IHistogram1D.h"
11#include "MdcGeomSvc/IMdcGeomSvc.h"
12#include "MdcGeomSvc/MdcGeoWire.h"
13#include "MdcGeomSvc/MdcGeoLayer.h"
14#include "MagneticField/IMagneticFieldSvc.h"
15#include "MdcRecEvent/RecMdcTrack.h"
16#include "MdcRecEvent/RecMdcHit.h"
34 StatusCode bookNTuple();
35 StatusCode fillInit();
36 StatusCode fillRecTrack(
const RecMdcTrack* it,
int mcTkNum,
int recTkNum);
38 StatusCode fillEvent();
39 StatusCode skipMcParticle(
const Event::McParticle* it,
int nKindSkiped,
int* keepedPart);
40 double poca(
const MdcDigi* aDigi,
const HepVector helixPar,
const HepSymMatrix errMat);
41 double probab(
const int& ndof,
const double& chisq);
43 HepPDT::ParticleDataTable* m_particleTable;
50 int havedigi[43][288];
51 short multiTdcCount[43][288];
80 NTuple::Tuple* g_tupleMc;
81 NTuple::Tuple* g_tupleRec;
82 NTuple::Tuple* g_tupleEvt;
84 AIDA::IHistogram1D* g_layerEff;
85 NTuple::Item<double> m_na_p;
86 NTuple::Item<double> m_na_pt;
87 NTuple::Item<double> m_na_pz;
88 NTuple::Item<double> m_na_d0;
89 NTuple::Item<double> m_na_phi0;
90 NTuple::Item<double> m_na_cpa;
91 NTuple::Item<double> m_na_z0;
92 NTuple::Item<double> m_na_tanl;
93 NTuple::Item<double> m_na_q;
94 NTuple::Item<double> m_na_d0E;
95 NTuple::Item<double> m_na_phi0E;
96 NTuple::Item<double> m_na_cpaE;
97 NTuple::Item<double> m_na_z0E;
98 NTuple::Item<double> m_na_tanlE;
100 NTuple::Item<double> m_na_dP;
101 NTuple::Item<double> m_na_dPt;
102 NTuple::Item<double> m_na_dPz;
103 NTuple::Item<double> m_na_dD0;
104 NTuple::Item<double> m_na_dPhi0;
105 NTuple::Item<double> m_na_dCpa;
106 NTuple::Item<double> m_na_dZ0;
107 NTuple::Item<double> m_na_dTanl;
109 NTuple::Item<double> m_na_d0Res;
110 NTuple::Item<double> m_na_phi0Res;
111 NTuple::Item<double> m_na_cpaRes;
112 NTuple::Item<double> m_na_z0Res;
113 NTuple::Item<double> m_na_tanlRes;
115 NTuple::Item<long> m_na_nHit;
116 NTuple::Item<long> m_na_nDigi;
117 NTuple::Item<double> m_na_nEvtNoise;
118 NTuple::Item<double> m_na_nAct;
119 NTuple::Item<double> m_na_nNoise;
120 NTuple::Item<double> m_na_nMatch;
121 NTuple::Item<double> m_na_nSt;
122 NTuple::Item<double> m_na_nDof;
123 NTuple::Item<double> m_na_fiTerm;
124 NTuple::Item<double> m_na_chi2;
125 NTuple::Item<double> m_na_chi2Dof;
126 NTuple::Item<double> m_na_chi2Prob;
127 NTuple::Item<double> m_na_mcTkNum;
128 NTuple::Item<double> m_na_mcTkId;
129 NTuple::Item<double> m_na_recTkNum;
131 NTuple::Item<double> m_na_mcpid;
132 NTuple::Item<double> m_na_mcp;
133 NTuple::Item<double> m_na_mcpt;
134 NTuple::Item<double> m_na_mcpx;
135 NTuple::Item<double> m_na_mcpy;
136 NTuple::Item<double> m_na_mcpz;
137 NTuple::Item<double> m_na_mcd0;
138 NTuple::Item<double> m_na_mcphi0;
139 NTuple::Item<double> m_na_mcz0;
140 NTuple::Item<double> m_na_mctheta;
141 NTuple::Item<double> m_na_mccpa;
142 NTuple::Item<double> m_na_mcq;
143 NTuple::Item<double> m_na_mcfifin;
144 NTuple::Item<double> m_na_mcflag;
145 NTuple::Item<long> m_na_tkStat;
148 NTuple::Item<long> m_na_tkId;
149 NTuple::Item<double> m_na_evtNo;
150 NTuple::Array<double> m_na_resid;
151 NTuple::Array<double> m_na_driftD;
152 NTuple::Array<long> m_na_act;
153 NTuple::Array<double> m_na_driftT;
154 NTuple::Array<double> m_na_doca;
155 NTuple::Array<double> m_na_entra;
156 NTuple::Array<double> m_na_zhit;
157 NTuple::Array<double> m_na_chi2add;
158 NTuple::Array<double> m_na_flaglr;
159 NTuple::Array<double> m_na_hitStat;
160 NTuple::Array<double> m_na_Tdc;
161 NTuple::Array<double> m_na_Adc;
162 NTuple::Array<double> m_na_layer;
163 NTuple::Array<double> m_na_wire;
164 NTuple::Array<double> m_na_gwire;
165 NTuple::Array<double> m_na_hitTkId;
166 NTuple::Array<double> m_na_digiTkId;
167 NTuple::Array<double> m_na_digiLayer;
169 NTuple::Item<double> m_na_t2mcp;
170 NTuple::Item<double> m_na_t2mcpt;
171 NTuple::Item<double> m_na_t2mcphi;
172 NTuple::Item<double> m_na_t2mctheta;
173 NTuple::Item<double> m_na_t2tanl;
174 NTuple::Item<double> m_na_t2recTkNum;
175 NTuple::Item<double> m_na_t2mcTkNum;
176 NTuple::Item<double> m_na_t2p;
177 NTuple::Item<double> m_na_t2pt;
179 NTuple::Item<double> m_na_t3recTk;
180 NTuple::Item<double> m_na_t3mcTk;
181 NTuple::Item<long> m_na_t3TrkReco;
182 NTuple::Item<long> m_na_t3Curl;
183 NTuple::Item<long> m_na_t3PatRec;
184 NTuple::Item<long> m_na_t3XRec;
185 NTuple::Item<double> m_na_t3evtNo;
186 NTuple::Item<double> m_na_t3t0;
187 NTuple::Item<double> m_na_t3t0Truth;
188 NTuple::Item<double> m_na_t3t0Stat;
189 NTuple::Item<double> m_na_t3timing;
191 NTuple::Item<long> m_na_t3runNo;
192 NTuple::Item<long> m_na_t3nDigi;
193 NTuple::Array<long> m_na_t3layer;
194 NTuple::Array<long> m_na_t3wire;
195 NTuple::Array<long> m_na_t3gwire;
196 NTuple::Array<double> m_na_t3rt;
197 NTuple::Array<double> m_na_t3rtNot0;
198 NTuple::Array<double> m_na_t3rc;
199 NTuple::Array<double> m_na_t3phi;
200 NTuple::Array<double> m_na_t3xMid;
201 NTuple::Array<double> m_na_t3yMid;
202 NTuple::Array<long> m_na_t3ovfl;
203 NTuple::Array<long> m_na_t3tNum;
**********INTEGER nmxhep !maximum number of particles DOUBLE PRECISION vhep INTEGER jdahep COMMON hepevt $ !serial number $ !number of particles $ !status code $ !particle ident KF $ !parent particles $ !childreen particles $ !four momentum
ObjectVector< RecMdcHit > RecMdcHitCol
MdcNavigation(const std::string &name, ISvcLocator *pSvcLocator)