00001 #ifndef PValidationFormats_h
00002 #define PValidationFormats_h
00003
00005
00007 #ifndef PGlobalSimHit_h
00008 #define PGlobalSimHit_h
00009
00019 #include <vector>
00020 #include <memory>
00021
00022 class PGlobalSimHit
00023 {
00024
00025 public:
00026
00027 PGlobalSimHit(): nRawGenPart(0), nG4Vtx(0), nG4Trk(0),
00028 nECalHits(0), nPreShHits(0), nHCalHits(0), nPxlFwdHits(0),
00029 nPxlBrlHits(0), nSiFwdHits(0), nSiBrlHits(0),
00030 nMuonDtHits(0), nMuonCscHits(0), nMuonRpcFwdHits(0),
00031 nMuonRpcBrlHits(0) {}
00032 virtual ~PGlobalSimHit(){}
00033
00034 struct Vtx
00035 {
00036 Vtx(): x(0), y(0), z(0) {}
00037 float x;
00038 float y;
00039 float z;
00040 };
00041
00042 struct Trk
00043 {
00044 Trk() : pt(0), e(0) {}
00045 float pt;
00046 float e;
00047 };
00048
00049 struct CalHit
00050 {
00051 CalHit() : e(0), tof(0), phi(0), eta(0) {}
00052 float e;
00053 float tof;
00054 float phi;
00055 float eta;
00056 };
00057
00058 struct FwdHit
00059 {
00060 FwdHit() : tof(0), z(0), phi(0), eta(0) {}
00061 float tof;
00062 float z;
00063 float phi;
00064 float eta;
00065 };
00066
00067 struct BrlHit
00068 {
00069 BrlHit() : tof(0), r(0), phi(0), eta(0) {}
00070 float tof;
00071 float r;
00072 float phi;
00073 float eta;
00074 };
00075
00076 typedef std::vector<Vtx> VtxVector;
00077 typedef std::vector<Trk> TrkVector;
00078 typedef std::vector<CalHit> CalVector;
00079 typedef std::vector<FwdHit> FwdVector;
00080 typedef std::vector<BrlHit> BrlVector;
00081
00082
00083 void putRawGenPart(int n);
00084 void putG4Vtx(const std::vector<float>& x, const std::vector<float>& y,
00085 const std::vector<float>& z);
00086 void putG4Trk(const std::vector<float>& pt, const std::vector<float>& e);
00087 void putECalHits(const std::vector<float>& e, const std::vector<float>& tof,
00088 const std::vector<float>& phi, const std::vector<float>& eta);
00089 void putPreShHits(const std::vector<float>& e, const std::vector<float>& tof,
00090 const std::vector<float>& phi, const std::vector<float>& eta);
00091 void putHCalHits(const std::vector<float>& e, const std::vector<float>& tof,
00092 const std::vector<float>& phi, const std::vector<float>& eta);
00093 void putPxlFwdHits(const std::vector<float>& tof, const std::vector<float>& z,
00094 const std::vector<float>& phi, const std::vector<float>& eta);
00095 void putPxlBrlHits(const std::vector<float>& tof, const std::vector<float>& r,
00096 const std::vector<float>& phi, const std::vector<float>& eta);
00097 void putSiFwdHits(const std::vector<float>& tof, const std::vector<float>& z,
00098 const std::vector<float>& phi, const std::vector<float>& eta);
00099 void putSiBrlHits(const std::vector<float>& tof, const std::vector<float>& r,
00100 const std::vector<float>& phi, const std::vector<float>& eta);
00101 void putMuonCscHits(const std::vector<float>& tof, const std::vector<float>& z,
00102 const std::vector<float>& phi, const std::vector<float>& eta);
00103 void putMuonDtHits(const std::vector<float>& tof, const std::vector<float>& r,
00104 const std::vector<float>& phi, const std::vector<float>& eta);
00105 void putMuonRpcFwdHits(const std::vector<float>& tof, const std::vector<float>& z,
00106 const std::vector<float>& phi, const std::vector<float>& eta);
00107 void putMuonRpcBrlHits(const std::vector<float>& tof, const std::vector<float>& r,
00108 const std::vector<float>& phi, const std::vector<float>& eta);
00109
00110 int getnRawGenPart() const {return nRawGenPart;}
00111 int getnG4Vtx() const {return nG4Vtx;}
00112 VtxVector getG4Vtx() const {return G4Vtx;}
00113 int getnG4Trk() const {return nG4Trk;}
00114 TrkVector getG4Trk() const {return G4Trk;}
00115 int getnECalHits() const {return nECalHits;}
00116 CalVector getECalHits() const {return ECalHits;}
00117 int getnPreShHits() const {return nPreShHits;}
00118 CalVector getPreShHits() const {return PreShHits;}
00119 int getnHCalHits() const {return nHCalHits;}
00120 CalVector getHCalHits() const {return HCalHits;}
00121 int getnPxlFwdHits() const {return nPxlFwdHits;}
00122 FwdVector getPxlFwdHits() const {return PxlFwdHits;}
00123 int getnPxlBrlHits() const {return nPxlBrlHits;}
00124 BrlVector getPxlBrlHits() const {return PxlBrlHits;}
00125 int getnSiFwdHits() const {return nSiFwdHits;}
00126 FwdVector getSiFwdHits() const {return SiFwdHits;}
00127 int getnSiBrlHits() const {return nSiBrlHits;}
00128 BrlVector getSiBrlHits() const {return SiBrlHits;}
00129 int getnMuonDtHits() const {return nMuonDtHits;}
00130 BrlVector getMuonDtHits() const {return MuonDtHits;}
00131 int getnMuonCscHits() const {return nMuonCscHits;}
00132 FwdVector getMuonCscHits() const {return MuonCscHits;}
00133 int getnMuonRpcFwdHits() const {return nMuonRpcFwdHits;}
00134 FwdVector getMuonRpcFwdHits() const {return MuonRpcFwdHits;}
00135 int getnMuonRpcBrlHits() const {return nMuonRpcBrlHits;}
00136 BrlVector getMuonRpcBrlHits() const {return MuonRpcBrlHits;}
00137
00138 private:
00139
00140
00141 int nRawGenPart;
00142 int nG4Vtx;
00143 VtxVector G4Vtx;
00144 int nG4Trk;
00145 TrkVector G4Trk;
00146
00147
00148 int nECalHits;
00149 CalVector ECalHits;
00150 int nPreShHits;
00151 CalVector PreShHits;
00152
00153
00154 int nHCalHits;
00155 CalVector HCalHits;
00156
00157
00158 int nPxlFwdHits;
00159 FwdVector PxlFwdHits;
00160 int nPxlBrlHits;
00161 BrlVector PxlBrlHits;
00162 int nSiFwdHits;
00163 FwdVector SiFwdHits;
00164 int nSiBrlHits;
00165 BrlVector SiBrlHits;
00166
00167
00168 int nMuonDtHits;
00169 BrlVector MuonDtHits;
00170 int nMuonCscHits;
00171 FwdVector MuonCscHits;
00172 int nMuonRpcFwdHits;
00173 FwdVector MuonRpcFwdHits;
00174 int nMuonRpcBrlHits;
00175 BrlVector MuonRpcBrlHits;
00176
00177 };
00178
00179 #endif // endif PGlobalHit_h
00180
00182
00184
00185 #ifndef PGlobalDigi_h
00186 #define PGlobalDigi_h
00187
00188 class PGlobalDigi
00189 {
00190 public:
00191
00192 PGlobalDigi(): nEBCalDigis(0), nEECalDigis(0), nESCalDigis(0),
00193 nHBCalDigis(0), nHECalDigis(0), nHOCalDigis(0), nHFCalDigis(0),
00194 nTIBL1Digis(0), nTIBL2Digis(0), nTIBL3Digis(0), nTIBL4Digis(0),
00195 nTOBL1Digis(0), nTOBL2Digis(0), nTOBL3Digis(0), nTOBL4Digis(0),
00196 nTIDW1Digis(0), nTIDW2Digis(0), nTIDW3Digis(0),
00197 nTECW1Digis(0), nTECW2Digis(0), nTECW3Digis(0), nTECW4Digis(0),
00198 nTECW5Digis(0), nTECW6Digis(0), nTECW7Digis(0), nTECW8Digis(0),
00199 nBRL1Digis(0), nBRL2Digis(0), nBRL3Digis(0),
00200 nFWD1pDigis(0), nFWD1nDigis(0), nFWD2pDigis(0), nFWD2nDigis(0),
00201 nMB1Digis(0), nMB2Digis(0), nMB3Digis(0), nMB4Digis(0),
00202 nCSCstripDigis(0), nCSCwireDigis(0) {}
00203 virtual ~PGlobalDigi(){}
00204
00206
00208 struct ECalDigi
00209 {
00210 ECalDigi(): maxPos(0), AEE(0), SHE(0) {}
00211 int maxPos;
00212 double AEE;
00213 float SHE;
00214 };
00215 typedef std::vector<ECalDigi> ECalDigiVector;
00216 struct ESCalDigi
00217 {
00218 ESCalDigi(): ADC0(0), ADC1(0), ADC2(0), SHE(0) {}
00219 float ADC0, ADC1, ADC2;
00220 float SHE;
00221 };
00222 typedef std::vector<ESCalDigi> ESCalDigiVector;
00223
00224 void putEBCalDigis(const std::vector<int>& maxpos,
00225 const std::vector<double>& aee, const std::vector<float>& she);
00226 void putEECalDigis(const std::vector<int>& maxpos,
00227 const std::vector<double>& aee, const std::vector<float>& she);
00228 void putESCalDigis(const std::vector<float>& adc0, const std::vector<float>& adc1,
00229 const std::vector<float>& adc2, const std::vector<float>& she);
00230
00231 int getnEBCalDigis() const {return nEBCalDigis;}
00232 int getnEECalDigis() const {return nEECalDigis;}
00233 int getnESCalDigis() const {return nESCalDigis;}
00234 ECalDigiVector getEBCalDigis() const {return EBCalDigis;}
00235 ECalDigiVector getEECalDigis() const {return EECalDigis;}
00236 ESCalDigiVector getESCalDigis() const {return ESCalDigis;}
00237
00239
00241 struct HCalDigi
00242 {
00243 HCalDigi(): AEE(0), SHE(0) {}
00244 float AEE;
00245 float SHE;
00246 };
00247 typedef std::vector<HCalDigi> HCalDigiVector;
00248
00249 void putHBCalDigis(const std::vector<float>& aee, const std::vector<float>& she);
00250 void putHECalDigis(const std::vector<float>& aee, const std::vector<float>& she);
00251 void putHOCalDigis(const std::vector<float>& aee, const std::vector<float>& she);
00252 void putHFCalDigis(const std::vector<float>& aee, const std::vector<float>& she);
00253
00254 int getnHBCalDigis() const {return nHBCalDigis;}
00255 int getnHECalDigis() const {return nHECalDigis;}
00256 int getnHOCalDigis() const {return nHOCalDigis;}
00257 int getnHFCalDigis() const {return nHFCalDigis;}
00258 HCalDigiVector getHBCalDigis() const {return HBCalDigis;}
00259 HCalDigiVector getHECalDigis() const {return HECalDigis;}
00260 HCalDigiVector getHOCalDigis() const {return HOCalDigis;}
00261 HCalDigiVector getHFCalDigis() const {return HFCalDigis;}
00262
00264
00266
00268
00270 struct SiStripDigi
00271 {
00272 SiStripDigi(): ADC(0), STRIP(0) {}
00273 float ADC;
00274 int STRIP;
00275 };
00276 typedef std::vector<SiStripDigi> SiStripDigiVector;
00277
00278 void putTIBL1Digis(const std::vector<float>& adc, const std::vector<int>& strip);
00279 void putTIBL2Digis(const std::vector<float>& adc, const std::vector<int>& strip);
00280 void putTIBL3Digis(const std::vector<float>& adc, const std::vector<int>& strip);
00281 void putTIBL4Digis(const std::vector<float>& adc, const std::vector<int>& strip);
00282 void putTOBL1Digis(const std::vector<float>& adc, const std::vector<int>& strip);
00283 void putTOBL2Digis(const std::vector<float>& adc, const std::vector<int>& strip);
00284 void putTOBL3Digis(const std::vector<float>& adc, const std::vector<int>& strip);
00285 void putTOBL4Digis(const std::vector<float>& adc, const std::vector<int>& strip);
00286 void putTIDW1Digis(const std::vector<float>& adc, const std::vector<int>& strip);
00287 void putTIDW2Digis(const std::vector<float>& adc, const std::vector<int>& strip);
00288 void putTIDW3Digis(const std::vector<float>& adc, const std::vector<int>& strip);
00289 void putTECW1Digis(const std::vector<float>& adc, const std::vector<int>& strip);
00290 void putTECW2Digis(const std::vector<float>& adc, const std::vector<int>& strip);
00291 void putTECW3Digis(const std::vector<float>& adc, const std::vector<int>& strip);
00292 void putTECW4Digis(const std::vector<float>& adc, const std::vector<int>& strip);
00293 void putTECW5Digis(const std::vector<float>& adc, const std::vector<int>& strip);
00294 void putTECW6Digis(const std::vector<float>& adc, const std::vector<int>& strip);
00295 void putTECW7Digis(const std::vector<float>& adc, const std::vector<int>& strip);
00296 void putTECW8Digis(const std::vector<float>& adc, const std::vector<int>& strip);
00297
00298 int getnTIBL1Digis() const {return nTIBL1Digis;}
00299 int getnTIBL2Digis() const {return nTIBL2Digis;}
00300 int getnTIBL3Digis() const {return nTIBL3Digis;}
00301 int getnTIBL4Digis() const {return nTIBL4Digis;}
00302 int getnTOBL1Digis() const {return nTOBL1Digis;}
00303 int getnTOBL2Digis() const {return nTOBL2Digis;}
00304 int getnTOBL3Digis() const {return nTOBL3Digis;}
00305 int getnTOBL4Digis() const {return nTOBL4Digis;}
00306 int getnTIDW1Digis() const {return nTIDW1Digis;}
00307 int getnTIDW2Digis() const {return nTIDW2Digis;}
00308 int getnTIDW3Digis() const {return nTIDW3Digis;}
00309 int getnTECW1Digis() const {return nTECW1Digis;}
00310 int getnTECW2Digis() const {return nTECW2Digis;}
00311 int getnTECW3Digis() const {return nTECW3Digis;}
00312 int getnTECW4Digis() const {return nTECW4Digis;}
00313 int getnTECW5Digis() const {return nTECW5Digis;}
00314 int getnTECW6Digis() const {return nTECW6Digis;}
00315 int getnTECW7Digis() const {return nTECW7Digis;}
00316 int getnTECW8Digis() const {return nTECW8Digis;}
00317 SiStripDigiVector getTIBL1Digis() const {return TIBL1Digis;}
00318 SiStripDigiVector getTIBL2Digis() const {return TIBL2Digis;}
00319 SiStripDigiVector getTIBL3Digis() const {return TIBL3Digis;}
00320 SiStripDigiVector getTIBL4Digis() const {return TIBL4Digis;}
00321 SiStripDigiVector getTOBL1Digis() const {return TOBL1Digis;}
00322 SiStripDigiVector getTOBL2Digis() const {return TOBL2Digis;}
00323 SiStripDigiVector getTOBL3Digis() const {return TOBL3Digis;}
00324 SiStripDigiVector getTOBL4Digis() const {return TOBL4Digis;}
00325 SiStripDigiVector getTIDW1Digis() const {return TIDW1Digis;}
00326 SiStripDigiVector getTIDW2Digis() const {return TIDW2Digis;}
00327 SiStripDigiVector getTIDW3Digis() const {return TIDW3Digis;}
00328 SiStripDigiVector getTECW1Digis() const {return TECW1Digis;}
00329 SiStripDigiVector getTECW2Digis() const {return TECW2Digis;}
00330 SiStripDigiVector getTECW3Digis() const {return TECW3Digis;}
00331 SiStripDigiVector getTECW4Digis() const {return TECW4Digis;}
00332 SiStripDigiVector getTECW5Digis() const {return TECW5Digis;}
00333 SiStripDigiVector getTECW6Digis() const {return TECW6Digis;}
00334 SiStripDigiVector getTECW7Digis() const {return TECW7Digis;}
00335 SiStripDigiVector getTECW8Digis() const {return TECW8Digis;}
00336
00338
00340 struct SiPixelDigi
00341 {
00342 SiPixelDigi(): ADC(0), ROW(0), COLUMN(0) {}
00343 float ADC;
00344 int ROW;
00345 int COLUMN;
00346 };
00347 typedef std::vector<SiPixelDigi> SiPixelDigiVector;
00348
00349 void putBRL1Digis(const std::vector<float>& adc, const std::vector<int>& row,
00350 const std::vector<int>& column);
00351 void putBRL2Digis(const std::vector<float>& adc, const std::vector<int>& row,
00352 const std::vector<int>& column);
00353 void putBRL3Digis(const std::vector<float>& adc, const std::vector<int>& row,
00354 const std::vector<int>& column);
00355 void putFWD1pDigis(const std::vector<float>& adc, const std::vector<int>& row,
00356 const std::vector<int>& column);
00357 void putFWD1nDigis(const std::vector<float>& adc, const std::vector<int>& row,
00358 const std::vector<int>& column);
00359 void putFWD2pDigis(const std::vector<float>& adc, const std::vector<int>& row,
00360 const std::vector<int>& column);
00361 void putFWD2nDigis(const std::vector<float>& adc, const std::vector<int>& row,
00362 const std::vector<int>& column);
00363
00364 int getnBRL1Digis() const {return nBRL1Digis;}
00365 int getnBRL2Digis() const {return nBRL2Digis;}
00366 int getnBRL3Digis() const {return nBRL3Digis;}
00367 int getnFWD1pDigis() const {return nFWD1pDigis;}
00368 int getnFWD1nDigis() const {return nFWD1nDigis;}
00369 int getnFWD2pDigis() const {return nFWD2pDigis;}
00370 int getnFWD2nDigis() const {return nFWD2nDigis;}
00371 SiPixelDigiVector getBRL1Digis() const {return BRL1Digis;}
00372 SiPixelDigiVector getBRL2Digis() const {return BRL2Digis;}
00373 SiPixelDigiVector getBRL3Digis() const {return BRL3Digis;}
00374 SiPixelDigiVector getFWD1pDigis() const {return FWD1pDigis;}
00375 SiPixelDigiVector getFWD1nDigis() const {return FWD1nDigis;}
00376 SiPixelDigiVector getFWD2pDigis() const {return FWD2pDigis;}
00377 SiPixelDigiVector getFWD2nDigis() const {return FWD2nDigis;}
00378
00380
00382
00384
00386 struct DTDigi
00387 {
00388 DTDigi(): SLAYER(0), TIME(0), LAYER(0) {}
00389 int SLAYER;
00390 float TIME;
00391 int LAYER;
00392 };
00393 typedef std::vector<DTDigi> DTDigiVector;
00394
00395 void putMB1Digis(const std::vector<int>& slayer, const std::vector<float>& time,
00396 const std::vector<int>& layer);
00397 void putMB2Digis(const std::vector<int>& slayer, const std::vector<float>& time,
00398 const std::vector<int>& layer);
00399 void putMB3Digis(const std::vector<int>& slayer, const std::vector<float>& time,
00400 const std::vector<int>& layer);
00401 void putMB4Digis(const std::vector<int>& slayer, const std::vector<float>& time,
00402 const std::vector<int>& layer);
00403
00404 int getnMB1Digis() const {return nMB1Digis;}
00405 int getnMB2Digis() const {return nMB2Digis;}
00406 int getnMB3Digis() const {return nMB3Digis;}
00407 int getnMB4Digis() const {return nMB4Digis;}
00408 DTDigiVector getMB1Digis() const {return MB1Digis;}
00409 DTDigiVector getMB2Digis() const {return MB2Digis;}
00410 DTDigiVector getMB3Digis() const {return MB3Digis;}
00411 DTDigiVector getMB4Digis() const {return MB4Digis;}
00412
00414
00416 struct CSCstripDigi
00417 {
00418 CSCstripDigi(): ADC(0) {}
00419 float ADC;
00420 };
00421 typedef std::vector<CSCstripDigi> CSCstripDigiVector;
00422
00423 void putCSCstripDigis(const std::vector<float>& adc);
00424
00425 int getnCSCstripDigis() const {return nCSCstripDigis;}
00426 CSCstripDigiVector getCSCstripDigis() const {return CSCstripDigis;}
00427
00429
00431 struct CSCwireDigi
00432 {
00433 CSCwireDigi(): TIME(0) {}
00434 float TIME;
00435 };
00436 typedef std::vector<CSCwireDigi> CSCwireDigiVector;
00437
00438 void putCSCwireDigis(const std::vector<float>& time);
00439
00440 int getnCSCwireDigis() const {return nCSCwireDigis;}
00441 CSCwireDigiVector getCSCwireDigis() const {return CSCwireDigis;}
00442
00443 private:
00444
00446
00448 int nEBCalDigis;
00449 ECalDigiVector EBCalDigis;
00450 int nEECalDigis;
00451 ECalDigiVector EECalDigis;
00452 int nESCalDigis;
00453 ESCalDigiVector ESCalDigis;
00454
00456
00458 int nHBCalDigis;
00459 HCalDigiVector HBCalDigis;
00460 int nHECalDigis;
00461 HCalDigiVector HECalDigis;
00462 int nHOCalDigis;
00463 HCalDigiVector HOCalDigis;
00464 int nHFCalDigis;
00465 HCalDigiVector HFCalDigis;
00466
00468
00470
00472
00474 int nTIBL1Digis;
00475 SiStripDigiVector TIBL1Digis;
00476 int nTIBL2Digis;
00477 SiStripDigiVector TIBL2Digis;
00478 int nTIBL3Digis;
00479 SiStripDigiVector TIBL3Digis;
00480 int nTIBL4Digis;
00481 SiStripDigiVector TIBL4Digis;
00482 int nTOBL1Digis;
00483 SiStripDigiVector TOBL1Digis;
00484 int nTOBL2Digis;
00485 SiStripDigiVector TOBL2Digis;
00486 int nTOBL3Digis;
00487 SiStripDigiVector TOBL3Digis;
00488 int nTOBL4Digis;
00489 SiStripDigiVector TOBL4Digis;
00490 int nTIDW1Digis;
00491 SiStripDigiVector TIDW1Digis;
00492 int nTIDW2Digis;
00493 SiStripDigiVector TIDW2Digis;
00494 int nTIDW3Digis;
00495 SiStripDigiVector TIDW3Digis;
00496 int nTECW1Digis;
00497 SiStripDigiVector TECW1Digis;
00498 int nTECW2Digis;
00499 SiStripDigiVector TECW2Digis;
00500 int nTECW3Digis;
00501 SiStripDigiVector TECW3Digis;
00502 int nTECW4Digis;
00503 SiStripDigiVector TECW4Digis;
00504 int nTECW5Digis;
00505 SiStripDigiVector TECW5Digis;
00506 int nTECW6Digis;
00507 SiStripDigiVector TECW6Digis;
00508 int nTECW7Digis;
00509 SiStripDigiVector TECW7Digis;
00510 int nTECW8Digis;
00511 SiStripDigiVector TECW8Digis;
00512
00514
00516 int nBRL1Digis;
00517 SiPixelDigiVector BRL1Digis;
00518 int nBRL2Digis;
00519 SiPixelDigiVector BRL2Digis;
00520 int nBRL3Digis;
00521 SiPixelDigiVector BRL3Digis;
00522 int nFWD1pDigis;
00523 SiPixelDigiVector FWD1pDigis;
00524 int nFWD1nDigis;
00525 SiPixelDigiVector FWD1nDigis;
00526 int nFWD2pDigis;
00527 SiPixelDigiVector FWD2pDigis;
00528 int nFWD2nDigis;
00529 SiPixelDigiVector FWD2nDigis;
00530
00532
00534
00536
00538 int nMB1Digis;
00539 DTDigiVector MB1Digis;
00540 int nMB2Digis;
00541 DTDigiVector MB2Digis;
00542 int nMB3Digis;
00543 DTDigiVector MB3Digis;
00544 int nMB4Digis;
00545 DTDigiVector MB4Digis;
00546
00548
00550 int nCSCstripDigis;
00551 CSCstripDigiVector CSCstripDigis;
00552
00554
00556 int nCSCwireDigis;
00557 CSCwireDigiVector CSCwireDigis;
00558
00559 };
00560
00561 #endif //PGlobalDigiHit_h
00562
00564
00566
00567 #ifndef PGlobalRecHit_h
00568 #define PGlobalRecHit_h
00569
00570 class PGlobalRecHit
00571 {
00572 public:
00573
00574 PGlobalRecHit(): nEBCalRecHits(0), nEECalRecHits(0), nESCalRecHits(0),
00575 nHBCalRecHits(0), nHECalRecHits(0), nHOCalRecHits(0), nHFCalRecHits(0),
00576 nTIBL1RecHits(0), nTIBL2RecHits(0), nTIBL3RecHits(0), nTIBL4RecHits(0),
00577 nTOBL1RecHits(0), nTOBL2RecHits(0), nTOBL3RecHits(0), nTOBL4RecHits(0),
00578 nTIDW1RecHits(0), nTIDW2RecHits(0), nTIDW3RecHits(0),
00579 nTECW1RecHits(0), nTECW2RecHits(0), nTECW3RecHits(0), nTECW4RecHits(0),
00580 nTECW5RecHits(0), nTECW6RecHits(0), nTECW7RecHits(0), nTECW8RecHits(0),
00581 nBRL1RecHits(0), nBRL2RecHits(0), nBRL3RecHits(0),
00582 nFWD1pRecHits(0), nFWD1nRecHits(0), nFWD2pRecHits(0), nFWD2nRecHits(0),
00583 nDTRecHits(0), nCSCRecHits(0), nRPCRecHits(0) {}
00584 virtual ~PGlobalRecHit(){}
00585
00587
00589 struct ECalRecHit
00590 {
00591 ECalRecHit(): RE(0), SHE(0) {}
00592 float RE;
00593 float SHE;
00594 };
00595 typedef std::vector<ECalRecHit> ECalRecHitVector;
00596
00597 void putEBCalRecHits(const std::vector<float>& re, const std::vector<float>& she);
00598 void putEECalRecHits(const std::vector<float>& re, const std::vector<float>& she);
00599 void putESCalRecHits(const std::vector<float>& re, const std::vector<float>& she);
00600
00601 int getnEBCalRecHits() const {return nEBCalRecHits;}
00602 int getnEECalRecHits() const {return nEECalRecHits;}
00603 int getnESCalRecHits() const {return nESCalRecHits;}
00604 ECalRecHitVector getEBCalRecHits() const {return EBCalRecHits;}
00605 ECalRecHitVector getEECalRecHits() const {return EECalRecHits;}
00606 ECalRecHitVector getESCalRecHits() const {return ESCalRecHits;}
00607
00609
00611 struct HCalRecHit
00612 {
00613 HCalRecHit(): REC(0), R(0), SHE(0) {}
00614 float REC;
00615 float R;
00616 float SHE;
00617 };
00618 typedef std::vector<HCalRecHit> HCalRecHitVector;
00619
00620 void putHBCalRecHits(const std::vector<float>& rec, const std::vector<float>& r,
00621 const std::vector<float>& she);
00622 void putHECalRecHits(const std::vector<float>& rec, const std::vector<float>& r,
00623 const std::vector<float>& she);
00624 void putHOCalRecHits(const std::vector<float>& rec, const std::vector<float>& r,
00625 const std::vector<float>& she);
00626 void putHFCalRecHits(const std::vector<float>& rec, const std::vector<float>& r,
00627 const std::vector<float>& she);
00628
00629 int getnHBCalRecHits() const {return nHBCalRecHits;}
00630 int getnHECalRecHits() const {return nHECalRecHits;}
00631 int getnHOCalRecHits() const {return nHOCalRecHits;}
00632 int getnHFCalRecHits() const {return nHFCalRecHits;}
00633 HCalRecHitVector getHBCalRecHits() const {return HBCalRecHits;}
00634 HCalRecHitVector getHECalRecHits() const {return HECalRecHits;}
00635 HCalRecHitVector getHOCalRecHits() const {return HOCalRecHits;}
00636 HCalRecHitVector getHFCalRecHits() const {return HFCalRecHits;}
00637
00639
00641
00643
00645 struct SiStripRecHit
00646 {
00647 SiStripRecHit(): RX(0), RY(0), SX(0), SY(0) {}
00648 float RX;
00649 float RY;
00650 float SX;
00651 float SY;
00652 };
00653 typedef std::vector<SiStripRecHit> SiStripRecHitVector;
00654
00655 void putTIBL1RecHits(const std::vector<float>& rx, const std::vector<float>& ry,
00656 const std::vector<float>& sx, const std::vector<float>& sy);
00657 void putTIBL2RecHits(const std::vector<float>& rx, const std::vector<float>& ry,
00658 const std::vector<float>& sx, const std::vector<float>& sy);
00659 void putTIBL3RecHits(const std::vector<float>& rx, const std::vector<float>& ry,
00660 const std::vector<float>& sx, const std::vector<float>& sy);
00661 void putTIBL4RecHits(const std::vector<float>& rx, const std::vector<float>& ry,
00662 const std::vector<float>& sx, const std::vector<float>& sy);
00663 void putTOBL1RecHits(const std::vector<float>& rx, const std::vector<float>& ry,
00664 const std::vector<float>& sx, const std::vector<float>& sy);
00665 void putTOBL2RecHits(const std::vector<float>& rx, const std::vector<float>& ry,
00666 const std::vector<float>& sx, const std::vector<float>& sy);
00667 void putTOBL3RecHits(const std::vector<float>& rx, const std::vector<float>& ry,
00668 const std::vector<float>& sx, const std::vector<float>& sy);
00669 void putTOBL4RecHits(const std::vector<float>& rx, const std::vector<float>& ry,
00670 const std::vector<float>& sx, const std::vector<float>& sy);
00671 void putTIDW1RecHits(const std::vector<float>& rx, const std::vector<float>& ry,
00672 const std::vector<float>& sx, const std::vector<float>& sy);
00673 void putTIDW2RecHits(const std::vector<float>& rx, const std::vector<float>& ry,
00674 const std::vector<float>& sx, const std::vector<float>& sy);
00675 void putTIDW3RecHits(const std::vector<float>& rx, const std::vector<float>& ry,
00676 const std::vector<float>& sx, const std::vector<float>& sy);
00677 void putTECW1RecHits(const std::vector<float>& rx, const std::vector<float>& ry,
00678 const std::vector<float>& sx, const std::vector<float>& sy);
00679 void putTECW2RecHits(const std::vector<float>& rx, const std::vector<float>& ry,
00680 const std::vector<float>& sx, const std::vector<float>& sy);
00681 void putTECW3RecHits(const std::vector<float>& rx, const std::vector<float>& ry,
00682 const std::vector<float>& sx, const std::vector<float>& sy);
00683 void putTECW4RecHits(const std::vector<float>& rx, const std::vector<float>& ry,
00684 const std::vector<float>& sx, const std::vector<float>& sy);
00685 void putTECW5RecHits(const std::vector<float>& rx, const std::vector<float>& ry,
00686 const std::vector<float>& sx, const std::vector<float>& sy);
00687 void putTECW6RecHits(const std::vector<float>& rx, const std::vector<float>& ry,
00688 const std::vector<float>& sx, const std::vector<float>& sy);
00689 void putTECW7RecHits(const std::vector<float>& rx, const std::vector<float>& ry,
00690 const std::vector<float>& sx, const std::vector<float>& sy);
00691 void putTECW8RecHits(const std::vector<float>& rx, const std::vector<float>& ry,
00692 const std::vector<float>& sx, const std::vector<float>& sy);
00693
00694 int getnTIBL1RecHits() const {return nTIBL1RecHits;}
00695 int getnTIBL2RecHits() const {return nTIBL2RecHits;}
00696 int getnTIBL3RecHits() const {return nTIBL3RecHits;}
00697 int getnTIBL4RecHits() const {return nTIBL4RecHits;}
00698 int getnTOBL1RecHits() const {return nTOBL1RecHits;}
00699 int getnTOBL2RecHits() const {return nTOBL2RecHits;}
00700 int getnTOBL3RecHits() const {return nTOBL3RecHits;}
00701 int getnTOBL4RecHits() const {return nTOBL4RecHits;}
00702 int getnTIDW1RecHits() const {return nTIDW1RecHits;}
00703 int getnTIDW2RecHits() const {return nTIDW2RecHits;}
00704 int getnTIDW3RecHits() const {return nTIDW3RecHits;}
00705 int getnTECW1RecHits() const {return nTECW1RecHits;}
00706 int getnTECW2RecHits() const {return nTECW2RecHits;}
00707 int getnTECW3RecHits() const {return nTECW3RecHits;}
00708 int getnTECW4RecHits() const {return nTECW4RecHits;}
00709 int getnTECW5RecHits() const {return nTECW5RecHits;}
00710 int getnTECW6RecHits() const {return nTECW6RecHits;}
00711 int getnTECW7RecHits() const {return nTECW7RecHits;}
00712 int getnTECW8RecHits() const {return nTECW8RecHits;}
00713 SiStripRecHitVector getTIBL1RecHits() const {return TIBL1RecHits;}
00714 SiStripRecHitVector getTIBL2RecHits() const {return TIBL2RecHits;}
00715 SiStripRecHitVector getTIBL3RecHits() const {return TIBL3RecHits;}
00716 SiStripRecHitVector getTIBL4RecHits() const {return TIBL4RecHits;}
00717 SiStripRecHitVector getTOBL1RecHits() const {return TOBL1RecHits;}
00718 SiStripRecHitVector getTOBL2RecHits() const {return TOBL2RecHits;}
00719 SiStripRecHitVector getTOBL3RecHits() const {return TOBL3RecHits;}
00720 SiStripRecHitVector getTOBL4RecHits() const {return TOBL4RecHits;}
00721 SiStripRecHitVector getTIDW1RecHits() const {return TIDW1RecHits;}
00722 SiStripRecHitVector getTIDW2RecHits() const {return TIDW2RecHits;}
00723 SiStripRecHitVector getTIDW3RecHits() const {return TIDW3RecHits;}
00724 SiStripRecHitVector getTECW1RecHits() const {return TECW1RecHits;}
00725 SiStripRecHitVector getTECW2RecHits() const {return TECW2RecHits;}
00726 SiStripRecHitVector getTECW3RecHits() const {return TECW3RecHits;}
00727 SiStripRecHitVector getTECW4RecHits() const {return TECW4RecHits;}
00728 SiStripRecHitVector getTECW5RecHits() const {return TECW5RecHits;}
00729 SiStripRecHitVector getTECW6RecHits() const {return TECW6RecHits;}
00730 SiStripRecHitVector getTECW7RecHits() const {return TECW7RecHits;}
00731 SiStripRecHitVector getTECW8RecHits() const {return TECW8RecHits;}
00732
00734
00736 struct SiPixelRecHit
00737 {
00738 SiPixelRecHit(): RX(0), RY(0), SX(0), SY(0) {}
00739 float RX;
00740 float RY;
00741 float SX;
00742 float SY;
00743 };
00744 typedef std::vector<SiPixelRecHit> SiPixelRecHitVector;
00745
00746 void putBRL1RecHits(const std::vector<float>& rx, const std::vector<float>& ry,
00747 const std::vector<float>& sx, const std::vector<float>& sy);
00748 void putBRL2RecHits(const std::vector<float>& rx, const std::vector<float>& ry,
00749 const std::vector<float>& sx, const std::vector<float>& sy);
00750 void putBRL3RecHits(const std::vector<float>& rx, const std::vector<float>& ry,
00751 const std::vector<float>& sx, const std::vector<float>& sy);
00752 void putFWD1pRecHits(const std::vector<float>& rx, const std::vector<float>& ry,
00753 const std::vector<float>& sx, const std::vector<float>& sy);
00754 void putFWD1nRecHits(const std::vector<float>& rx, const std::vector<float>& ry,
00755 const std::vector<float>& sx, const std::vector<float>& sy);
00756 void putFWD2pRecHits(const std::vector<float>& rx, const std::vector<float>& ry,
00757 const std::vector<float>& sx, const std::vector<float>& sy);
00758 void putFWD2nRecHits(const std::vector<float>& rx, const std::vector<float>& ry,
00759 const std::vector<float>& sx, const std::vector<float>& sy);
00760
00761 int getnBRL1RecHits() const {return nBRL1RecHits;}
00762 int getnBRL2RecHits() const {return nBRL2RecHits;}
00763 int getnBRL3RecHits() const {return nBRL3RecHits;}
00764 int getnFWD1pRecHits() const {return nFWD1pRecHits;}
00765 int getnFWD1nRecHits() const {return nFWD1nRecHits;}
00766 int getnFWD2pRecHits() const {return nFWD2pRecHits;}
00767 int getnFWD2nRecHits() const {return nFWD2nRecHits;}
00768 SiPixelRecHitVector getBRL1RecHits() const {return BRL1RecHits;}
00769 SiPixelRecHitVector getBRL2RecHits() const {return BRL2RecHits;}
00770 SiPixelRecHitVector getBRL3RecHits() const {return BRL3RecHits;}
00771 SiPixelRecHitVector getFWD1pRecHits() const {return FWD1pRecHits;}
00772 SiPixelRecHitVector getFWD1nRecHits() const {return FWD1nRecHits;}
00773 SiPixelRecHitVector getFWD2pRecHits() const {return FWD2pRecHits;}
00774 SiPixelRecHitVector getFWD2nRecHits() const {return FWD2nRecHits;}
00775
00777
00779
00781
00783 struct DTRecHit
00784 {
00785 DTRecHit(): RHD(0), SHD(0) {}
00786 float RHD;
00787 float SHD;
00788 };
00789 typedef std::vector<DTRecHit> DTRecHitVector;
00790
00791 void putDTRecHits(const std::vector<float>& rhd, const std::vector<float>& shd);
00792
00793 int getnDTRecHits() const {return nDTRecHits;}
00794 DTRecHitVector getDTRecHits() const {return DTRecHits;}
00795
00797
00799 struct CSCRecHit
00800 {
00801 CSCRecHit(): RHPHI(0), RHPERP(0), SHPHI(0) {}
00802 float RHPHI;
00803 float RHPERP;
00804 float SHPHI;
00805 };
00806 typedef std::vector<CSCRecHit> CSCRecHitVector;
00807
00808 void putCSCRecHits(const std::vector<float>& rhphi, const std::vector<float>& rhperp,
00809 const std::vector<float>& shphi);
00810
00811 int getnCSCRecHits() const {return nCSCRecHits;}
00812 CSCRecHitVector getCSCRecHits() const {return CSCRecHits;}
00813
00815
00817 struct RPCRecHit
00818 {
00819 RPCRecHit(): RHX(0), SHX(0) {}
00820 float RHX;
00821 float SHX;
00822 };
00823 typedef std::vector<RPCRecHit> RPCRecHitVector;
00824
00825 void putRPCRecHits(const std::vector<float>& rhx, const std::vector<float>& shx);
00826
00827 int getnRPCRecHits() const {return nRPCRecHits;}
00828 RPCRecHitVector getRPCRecHits() const {return RPCRecHits;}
00829
00830 private:
00831
00833
00835 int nEBCalRecHits;
00836 ECalRecHitVector EBCalRecHits;
00837 int nEECalRecHits;
00838 ECalRecHitVector EECalRecHits;
00839 int nESCalRecHits;
00840 ECalRecHitVector ESCalRecHits;
00841
00843
00845 int nHBCalRecHits;
00846 HCalRecHitVector HBCalRecHits;
00847 int nHECalRecHits;
00848 HCalRecHitVector HECalRecHits;
00849 int nHOCalRecHits;
00850 HCalRecHitVector HOCalRecHits;
00851 int nHFCalRecHits;
00852 HCalRecHitVector HFCalRecHits;
00853
00855
00857
00859
00861 int nTIBL1RecHits;
00862 SiStripRecHitVector TIBL1RecHits;
00863 int nTIBL2RecHits;
00864 SiStripRecHitVector TIBL2RecHits;
00865 int nTIBL3RecHits;
00866 SiStripRecHitVector TIBL3RecHits;
00867 int nTIBL4RecHits;
00868 SiStripRecHitVector TIBL4RecHits;
00869 int nTOBL1RecHits;
00870 SiStripRecHitVector TOBL1RecHits;
00871 int nTOBL2RecHits;
00872 SiStripRecHitVector TOBL2RecHits;
00873 int nTOBL3RecHits;
00874 SiStripRecHitVector TOBL3RecHits;
00875 int nTOBL4RecHits;
00876 SiStripRecHitVector TOBL4RecHits;
00877 int nTIDW1RecHits;
00878 SiStripRecHitVector TIDW1RecHits;
00879 int nTIDW2RecHits;
00880 SiStripRecHitVector TIDW2RecHits;
00881 int nTIDW3RecHits;
00882 SiStripRecHitVector TIDW3RecHits;
00883 int nTECW1RecHits;
00884 SiStripRecHitVector TECW1RecHits;
00885 int nTECW2RecHits;
00886 SiStripRecHitVector TECW2RecHits;
00887 int nTECW3RecHits;
00888 SiStripRecHitVector TECW3RecHits;
00889 int nTECW4RecHits;
00890 SiStripRecHitVector TECW4RecHits;
00891 int nTECW5RecHits;
00892 SiStripRecHitVector TECW5RecHits;
00893 int nTECW6RecHits;
00894 SiStripRecHitVector TECW6RecHits;
00895 int nTECW7RecHits;
00896 SiStripRecHitVector TECW7RecHits;
00897 int nTECW8RecHits;
00898 SiStripRecHitVector TECW8RecHits;
00899
00901
00903 int nBRL1RecHits;
00904 SiPixelRecHitVector BRL1RecHits;
00905 int nBRL2RecHits;
00906 SiPixelRecHitVector BRL2RecHits;
00907 int nBRL3RecHits;
00908 SiPixelRecHitVector BRL3RecHits;
00909 int nFWD1pRecHits;
00910 SiPixelRecHitVector FWD1pRecHits;
00911 int nFWD1nRecHits;
00912 SiPixelRecHitVector FWD1nRecHits;
00913 int nFWD2pRecHits;
00914 SiPixelRecHitVector FWD2pRecHits;
00915 int nFWD2nRecHits;
00916 SiPixelRecHitVector FWD2nRecHits;
00917
00919
00921
00923
00925 int nDTRecHits;
00926 DTRecHitVector DTRecHits;
00927
00929
00931 int nCSCRecHits;
00932 CSCRecHitVector CSCRecHits;
00933
00935
00937 int nRPCRecHits;
00938 RPCRecHitVector RPCRecHits;
00939
00940 };
00941
00942 #endif //PGlobalRecHitHit_h
00943
00945
00947
00948 #ifndef PEcalValidInfo_H
00949 #define PEcalValidInfo_H
00950
00951
00952
00953
00954
00955
00956
00957
00958
00959
00960
00961
00962
00963
00964 #include <string>
00965 #include <vector>
00966 #include "DataFormats/Math/interface/LorentzVector.h"
00967
00968 class EcalTestAnalysis;
00969
00970 class PEcalValidInfo
00971 {
00972 friend class EcalTestAnalysis;
00973 friend class PreshowerTestAnalysis;
00974 friend class SimHitSingleTest;
00975 friend class EcalSimHitsValidProducer;
00976 typedef std::vector<float> FloatVector;
00977
00978 public:
00979 PEcalValidInfo()
00980 :ee1(0.0),ee4(0.0),ee9(0.0),ee16(0.0),ee25(0.0),
00981 eb1(0.0),eb4(0.0),eb9(0.0),eb16(0.0),eb25(0.0),
00982 totalEInEE(0.0), totalEInEB(0.0), totalEInES(0.0),
00983 totalHits(0), nHitsInEE(0),nHitsInEB(0),nHitsInES(0),nHitsIn1ES(0),nHitsIn2ES(0)
00984 {
00985
00986 }
00987
00988
00989 ~PEcalValidInfo() {}
00990
00991
00992 float ee1x1() const { return ee1; }
00993 float ee2x2() const { return ee4; }
00994 float ee3x3() const { return ee9; }
00995 float ee4x4() const { return ee16;}
00996 float ee5x5() const { return ee25;}
00997
00998 float eb1x1() const { return eb1; }
00999 float eb2x2() const { return eb4; }
01000 float eb3x3() const { return eb9; }
01001 float eb4x4() const { return eb16;}
01002 float eb5x5() const { return eb25;}
01003
01004 float eInEE() const { return totalEInEE; }
01005 float eInEB() const { return totalEInEB; }
01006 float eInES() const { return totalEInES; }
01007
01008 float eInEEzp() const { return totalEInEEzp; }
01009 float eInEEzm() const { return totalEInEEzm; }
01010
01011 float eInESzp() const { return totalEInESzp; }
01012 float eInESzm() const { return totalEInESzm; }
01013
01014 int hitsInEcal() const { return totalHits; }
01015 int hitsInEE() const { return nHitsInEE; }
01016 int hitsInEB() const { return nHitsInEB; }
01017 int hitsInES() const { return nHitsInES; }
01018 int hitsIn1ES() const { return nHitsIn1ES;}
01019 int hitsIn2ES() const { return nHitsIn2ES;}
01020
01021 int hitsIn1ESzp() const { return nHitsIn1ESzp;}
01022 int hitsIn1ESzm() const { return nHitsIn1ESzm;}
01023 int hitsIn2ESzp() const { return nHitsIn2ESzp;}
01024 int hitsIn2ESzm() const { return nHitsIn2ESzm;}
01025
01026 int crystalInEB() const { return nCrystalInEB;}
01027 int crystalInEEzp() const { return nCrystalInEEzp; }
01028 int crystalInEEzm() const { return nCrystalInEEzm; }
01029
01030 FloatVector bX0() const { return eBX0; }
01031 FloatVector eX0() const { return eEX0; }
01032
01033
01034 FloatVector eIn1ES() const { return eOf1ES; }
01035 FloatVector eIn2ES() const { return eOf2ES; }
01036 FloatVector zOfInES() const { return zOfES; }
01037
01038 FloatVector eIn1ESzp() const { return eOf1ESzp; }
01039 FloatVector eIn1ESzm() const { return eOf1ESzm; }
01040
01041 FloatVector eIn2ESzp() const { return eOf2ESzp; }
01042 FloatVector eIn2ESzm() const { return eOf2ESzm; }
01043
01044 FloatVector phiOfEEHits() const { return phiOfEECaloG4Hit; }
01045 FloatVector etaOfEEHits() const { return etaOfEECaloG4Hit; }
01046 FloatVector tOfEEHits() const { return tOfEECaloG4Hit; }
01047 FloatVector eOfEEHits() const { return eOfEECaloG4Hit; }
01048 FloatVector eOfEEPlusHits() const { return eOfEEPlusCaloG4Hit; }
01049 FloatVector eOfEEMinusHits() const { return eOfEEMinusCaloG4Hit; }
01050
01051
01052 FloatVector phiOfEBHits() const { return phiOfEBCaloG4Hit; }
01053 FloatVector etaOfEBHits() const { return etaOfEBCaloG4Hit; }
01054 FloatVector tOfEBHits() const { return tOfEBCaloG4Hit; }
01055 FloatVector eOfEBHits() const { return eOfEBCaloG4Hit; }
01056
01057 FloatVector phiOfiESHits() const { return phiOfESCaloG4Hit; }
01058 FloatVector etaOfESHits() const { return etaOfESCaloG4Hit; }
01059 FloatVector tOfESHits() const { return tOfESCaloG4Hit; }
01060 FloatVector eOfESHits() const { return eOfESCaloG4Hit; }
01061
01062 math::XYZTLorentzVector momentum() const { return theMomentum; }
01063 math::XYZTLorentzVector vertex() const { return theVertex; }
01064
01065 int pId() const { return thePID; }
01066
01067 private:
01068
01069 float ee1;
01070 float ee4;
01071 float ee9;
01072 float ee16;
01073 float ee25;
01074
01075 float eb1;
01076 float eb4;
01077 float eb9;
01078 float eb16;
01079 float eb25;
01080
01081
01082
01083 float totalEInEE;
01084 float totalEInEB;
01085 float totalEInES;
01086
01087 float totalEInEEzp;
01088 float totalEInEEzm;
01089 float totalEInESzp;
01090 float totalEInESzm;
01091
01092
01093
01094 int totalHits;
01095 int nHitsInEE;
01096 int nHitsInEB;
01097 int nHitsInES;
01098 int nHitsIn1ES;
01099 int nHitsIn2ES;
01100
01101 int nHitsIn1ESzp;
01102 int nHitsIn1ESzm;
01103 int nHitsIn2ESzp;
01104 int nHitsIn2ESzm;
01105
01106 int nCrystalInEB;
01107 int nCrystalInEEzp;
01108 int nCrystalInEEzm;
01109
01110
01111 FloatVector eBX0;
01112 FloatVector eEX0;
01113
01114 FloatVector eOf1ES;
01115 FloatVector eOf2ES;
01116 FloatVector zOfES;
01117
01118
01119 FloatVector eOf1ESzp;
01120 FloatVector eOf1ESzm;
01121 FloatVector eOf2ESzp;
01122 FloatVector eOf2ESzm;
01123
01124 FloatVector phiOfEECaloG4Hit;
01125 FloatVector etaOfEECaloG4Hit;
01126 FloatVector tOfEECaloG4Hit;
01127 FloatVector eOfEECaloG4Hit;
01128 FloatVector eOfEEPlusCaloG4Hit;
01129 FloatVector eOfEEMinusCaloG4Hit;
01130
01131 FloatVector phiOfESCaloG4Hit;
01132 FloatVector etaOfESCaloG4Hit;
01133 FloatVector tOfESCaloG4Hit;
01134 FloatVector eOfESCaloG4Hit;
01135
01136 FloatVector phiOfEBCaloG4Hit;
01137 FloatVector etaOfEBCaloG4Hit;
01138 FloatVector tOfEBCaloG4Hit;
01139 FloatVector eOfEBCaloG4Hit;
01140
01141
01142
01143 int thePID;
01144 math::XYZTLorentzVector theMomentum;
01145 math::XYZTLorentzVector theVertex;
01146 };
01147
01148
01149 #endif // endif PECal
01150
01152
01154
01155 #ifndef PHcalValidInfoJets_H
01156 #define PHcalValidInfoJets_H
01157
01158 #include <string>
01159 #include <vector>
01160 #include <memory>
01161
01162 class SimG4HcalValidation;
01163
01164 class PHcalValidInfoJets {
01165
01166 friend class SimG4HcalValidation;
01167
01168 public:
01169
01170 PHcalValidInfoJets(): nJetHit(0), nJet(0), ecalJet(0.), hcalJet(0.),
01171 hoJet(0.), etotJet(0.), detaJet(0.), dphiJet(0.),
01172 drJet(0.), dijetM(0.) {}
01173 virtual ~PHcalValidInfoJets() {}
01174
01175
01176
01177 std::vector<float> jethite() const {return jetHite;}
01178 std::vector<float> jethitr() const {return jetHitr;}
01179 std::vector<float> jethitt() const {return jetHitt;}
01180 int njethit() const {return nJetHit;}
01181
01182 std::vector<float> jete() const {return jetE;}
01183 std::vector<float> jeteta() const {return jetEta;}
01184 std::vector<float> jetphi() const {return jetPhi;}
01185 int njet() const {return nJet;}
01186
01187 float ecaljet() const {return ecalJet;}
01188 float hcaljet() const {return hcalJet;}
01189 float hojet() const {return hoJet;}
01190 float etotjet() const {return etotJet;}
01191
01192 float detajet() const {return detaJet;}
01193 float dphijet() const {return dphiJet;}
01194 float drjet() const {return drJet;}
01195 float dijetm() const {return dijetM;}
01196
01197
01198 void fillTProfileJet (double e, double r, double t);
01199 void fillEcollectJet (double ee, double he, double hoe, double etot);
01200 void fillEtaPhiProfileJet (double eta0, double phi0, double eta,
01201 double phi, double dist);
01202 void fillJets (const std::vector<double>& enj, const std::vector<double>& etaj,
01203 const std::vector<double>& phij);
01204 void fillDiJets (double mass);
01205
01206 private:
01207
01208 int nJetHit, nJet;
01209 float ecalJet, hcalJet, hoJet, etotJet;
01210 float detaJet, dphiJet, drJet, dijetM;
01211 std::vector<float> jetHite;
01212 std::vector<float> jetHitr;
01213 std::vector<float> jetHitt;
01214 std::vector<float> jetE;
01215 std::vector<float> jetEta;
01216 std::vector<float> jetPhi;
01217
01218 };
01219
01220 #endif
01221
01223
01225
01226 #ifndef PHcalValidInfoLayer_H
01227 #define PHcalValidInfoLayer_H
01228
01229 #include <string>
01230 #include <vector>
01231 #include <memory>
01232
01233 class SimG4HcalValidation;
01234
01235 class PHcalValidInfoLayer {
01236
01237 friend class SimG4HcalValidation;
01238
01239 public:
01240
01241 PHcalValidInfoLayer(): hitN(0), eHO(0.0),eHBHE(0.0),eEBEE(0.0),elongHF(0.0),
01242 eshortHF(0.0), eEcalHF(0.0), eHcalHF(0.0) {}
01243 virtual ~PHcalValidInfoLayer() {}
01244
01245
01246 int nHit() const {return hitN;}
01247
01248 float eho() const {return eHO;}
01249 float ehbhe() const {return eHBHE;}
01250 float eebee() const {return eEBEE;}
01251 float elonghf() const {return elongHF;}
01252 float eshorthf() const {return eshortHF;}
01253 float eecalhf() const {return eEcalHF;}
01254 float ehcalhf() const {return eHcalHF;}
01255
01256 std::vector<float> elayer() const {return eLayer;}
01257 std::vector<float> edepth() const {return eDepth;}
01258
01259 std::vector<float> etaHit() const {return hitEta;}
01260 std::vector<float> phiHit() const {return hitPhi;}
01261 std::vector<float> eHit() const {return hitE;}
01262 std::vector<float> tHit() const {return hitTime;}
01263 std::vector<float> layerHit() const {return hitLayer;}
01264 std::vector<float> idHit() const {return hitId;}
01265
01266
01267 void fillLayers (double el[], double ed[], double ho, double hbhe,
01268 double ebee);
01269 void fillHF (double fibl, double fibs, double enec, double enhc);
01270 void fillHits (int Nhits, int lay, int unitID, double eta, double phi,
01271 double ehit, double t);
01272
01273
01274
01275 private:
01276
01277 int hitN;
01278 float eHO, eHBHE, eEBEE;
01279 float elongHF, eshortHF, eEcalHF, eHcalHF;
01280 std::vector<float> eLayer;
01281 std::vector<float> eDepth;
01282
01283 std::vector<float> hitLayer;
01284 std::vector<float> hitId;
01285 std::vector<float> hitEta;
01286 std::vector<float> hitPhi;
01287 std::vector<float> hitE;
01288 std::vector<float> hitTime;
01289
01290 };
01291
01292 #endif
01293
01295
01297
01298 #ifndef PHcalValidInfoNxN_H
01299 #define PHcalValidInfoNxN_H
01300
01301 #include <string>
01302 #include <vector>
01303 #include <memory>
01304
01305 class SimG4HcalValidation;
01306
01307
01308 class PHcalValidInfoNxN {
01309
01310 friend class SimG4HcalValidation;
01311
01312 public:
01313
01314 PHcalValidInfoNxN(): nNxN(0), ecalNxNr(0), hcalNxNr(0.), hoNxNr(0.),
01315 etotNxNr(0.), ecalNxN(0.), hcalNxN(0.), hoNxN(0.), etotNxN(0.) {}
01316 virtual ~PHcalValidInfoNxN() {}
01317
01318
01319 std::vector<float> idnxn() const {return idNxN;}
01320 std::vector<float> enxn() const {return eNxN;}
01321 std::vector<float> tnxn() const {return tNxN;}
01322 int nnxn() const {return nNxN;}
01323
01324 float ecalnxnr() const {return ecalNxNr;}
01325 float hcalnxnr() const {return hcalNxNr;}
01326 float honxnr() const {return hoNxNr;}
01327 float etotnxnr() const {return etotNxNr;}
01328
01329 float ecalnxn () const {return ecalNxN ;}
01330 float hcalnxn () const {return hcalNxN ;}
01331 float honxn () const {return hoNxN ;}
01332 float etotnxn () const {return etotNxN ;}
01333
01334
01335
01336 void fillHvsE (double ee, double he, double hoe, double etot);
01337 void fillEcollectNxN (double een, double hen, double hoen, double etotn);
01338 void fillTProfileNxN (double e, int i, double t);
01339
01340 private:
01341
01342 int nNxN;
01343 float ecalNxNr, hcalNxNr, hoNxNr, etotNxNr;
01344 float ecalNxN, hcalNxN, hoNxN, etotNxN;
01345 std::vector<float> idNxN;
01346 std::vector<float> eNxN;
01347 std::vector<float> tNxN;
01348
01349 };
01350
01351 #endif
01352
01354
01356
01357 #ifndef PMuonSimHit_h
01358 #define PMuonSimHit_h
01359
01360 #include <vector>
01361 #include <memory>
01362
01365
01366 class PMuonSimHit
01367 {
01368 public:
01369
01370 PMuonSimHit(): nRawGenPart(0), nG4Vtx(0), nG4Trk(0),
01371 nCSCHits(0), nDTHits(0), nRPCHits(0) {}
01372 virtual ~PMuonSimHit(){}
01373
01374 struct Vtx
01375 {
01376 Vtx(): x(0), y(0), z(0) {}
01377 float x;
01378 float y;
01379 float z;
01380 };
01381
01382 struct Trk
01383 {
01384 Trk() : pt(0), e(0), eta(0), phi(0) {}
01385 float pt;
01386 float e;
01387 float eta;
01388 float phi;
01389 };
01390
01391
01392 struct CSC
01393 {
01394 CSC() :
01395 _cscId(0),
01396 _detUnitId(0), _trackId(0), _processType(0),
01397 _particleType(0),_pabs(0),
01398 _globposz(0), _globposphi(0), _globposeta(0),
01399 _locposx(0), _locposy(0), _locposz(0),
01400 _locdirx(0), _locdiry(0), _locdirz(0),
01401 _locdirtheta(0), _locdirphi(0),
01402 _exitpointx(0), _exitpointy(0), _exitpointz(0),
01403 _entrypointx(0), _entrypointy(0), _entrypointz(0),
01404 _enloss(0), _tof(0) {}
01405
01406 int _cscId;
01407 unsigned int _detUnitId;
01408 float _trackId;
01409 float _processType;
01410 float _particleType;
01411 float _pabs;
01412 float _globposz;
01413 float _globposphi;
01414 float _globposeta;
01415 float _locposx;
01416 float _locposy;
01417 float _locposz;
01418 float _locdirx;
01419 float _locdiry;
01420 float _locdirz;
01421 float _locdirtheta;
01422 float _locdirphi;
01423 float _exitpointx;
01424 float _exitpointy;
01425 float _exitpointz;
01426 float _entrypointx;
01427 float _entrypointy;
01428 float _entrypointz;
01429 float _enloss;
01430 float _tof;
01431 };
01432
01433 struct DT
01434 {
01435 DT() :
01436 _detUnitId(0), _trackId(0), _processType(0),
01437 _particleType(0),_pabs(0),
01438 _globposz(0), _globposphi(0), _globposeta(0),
01439 _locposx(0), _locposy(0), _locposz(0),
01440 _locdirx(0), _locdiry(0), _locdirz(0),
01441 _locdirtheta(0), _locdirphi(0),
01442 _exitpointx(0), _exitpointy(0), _exitpointz(0),
01443 _entrypointx(0), _entrypointy(0), _entrypointz(0),
01444 _enloss(0), _tof(0) {}
01445
01446 unsigned int _detUnitId;
01447 float _trackId;
01448 float _processType;
01449 float _particleType;
01450 float _pabs;
01451 float _globposz;
01452 float _globposphi;
01453 float _globposeta;
01454 float _locposx;
01455 float _locposy;
01456 float _locposz;
01457 float _locdirx;
01458 float _locdiry;
01459 float _locdirz;
01460 float _locdirtheta;
01461 float _locdirphi;
01462 float _exitpointx;
01463 float _exitpointy;
01464 float _exitpointz;
01465 float _entrypointx;
01466 float _entrypointy;
01467 float _entrypointz;
01468 float _enloss;
01469 float _tof;
01470 };
01471
01472 struct RPC
01473 {
01474 RPC() :
01475 _detUnitId(0), _trackId(0), _processType(0),
01476 _particleType(0),_pabs(0),
01477 _globposz(0), _globposphi(0), _globposeta(0),
01478 _locposx(0), _locposy(0), _locposz(0),
01479 _locdirx(0), _locdiry(0), _locdirz(0),
01480 _locdirtheta(0), _locdirphi(0),
01481 _exitpointx(0), _exitpointy(0), _exitpointz(0),
01482 _entrypointx(0), _entrypointy(0), _entrypointz(0),
01483 _enloss(0), _tof(0) {}
01484
01485 unsigned int _detUnitId;
01486 float _trackId;
01487 float _processType;
01488 float _particleType;
01489 float _pabs;
01490 float _globposz;
01491 float _globposphi;
01492 float _globposeta;
01493 float _locposx;
01494 float _locposy;
01495 float _locposz;
01496 float _locdirx;
01497 float _locdiry;
01498 float _locdirz;
01499 float _locdirtheta;
01500 float _locdirphi;
01501 float _exitpointx;
01502 float _exitpointy;
01503 float _exitpointz;
01504 float _entrypointx;
01505 float _entrypointy;
01506 float _entrypointz;
01507 float _enloss;
01508 float _tof;
01509 };
01510
01511 typedef std::vector<Vtx> VtxVector;
01512 typedef std::vector<Trk> TrkVector;
01513
01514 typedef std::vector<CSC> CSCVector;
01515 typedef std::vector<DT> DTVector;
01516 typedef std::vector<RPC> RPCVector;
01517
01519
01520 void putRawGenPart(int n);
01521
01522 void putG4Vtx(const std::vector<float>& x, const std::vector<float>& y,
01523 const std::vector<float>& z);
01524 void putG4Trk(const std::vector<float>& pt, const std::vector<float>& e,
01525 const std::vector<float>& eta, const std::vector<float>& phi);
01526
01527 void putCSCHits(
01528 const std::vector<int>& _cscId,
01529 const std::vector<unsigned int>& _detUnitId,
01530 const std::vector<float>& _trackId ,
01531 const std::vector<float>& _processType,
01532 const std::vector<float>& _particleType,
01533 const std::vector<float>& _pabs,
01534 const std::vector<float>& _globposz,
01535 const std::vector<float>& _globposphi,
01536 const std::vector<float>& _globposeta,
01537 const std::vector<float>& _locposx,
01538 const std::vector<float>& _locposy,
01539 const std::vector<float>& _locposz,
01540 const std::vector<float>& _locdirx,
01541 const std::vector<float>& _locdiry,
01542 const std::vector<float>& _locdirz,
01543 const std::vector<float>& _locdirtheta,
01544 const std::vector<float>& _locdirphi,
01545 const std::vector<float>& _exitpointx,
01546 const std::vector<float>& _exitpointy,
01547 const std::vector<float>& _exitpointz,
01548 const std::vector<float>& _entrypointx,
01549 const std::vector<float>& _entrypointy,
01550 const std::vector<float>& _entrypointz,
01551 const std::vector<float>& _enloss,
01552 const std::vector<float>& _tof);
01553
01554 void putDTHits(
01555 const std::vector<unsigned int>& _detUnitId,
01556 const std::vector<float>& _trackId ,
01557 const std::vector<float>& _processType,
01558 const std::vector<float>& _particleType,
01559 const std::vector<float>& _pabs,
01560 const std::vector<float>& _globposz,
01561 const std::vector<float>& _globposphi,
01562 const std::vector<float>& _globposeta,
01563 const std::vector<float>& _locposx,
01564 const std::vector<float>& _locposy,
01565 const std::vector<float>& _locposz,
01566 const std::vector<float>& _locdirx,
01567 const std::vector<float>& _locdiry,
01568 const std::vector<float>& _locdirz,
01569 const std::vector<float>& _locdirtheta,
01570 const std::vector<float>& _locdirphi,
01571 const std::vector<float>& _exitpointx,
01572 const std::vector<float>& _exitpointy,
01573 const std::vector<float>& _exitpointz,
01574 const std::vector<float>& _entrypointx,
01575 const std::vector<float>& _entrypointy,
01576 const std::vector<float>& _entrypointz,
01577 const std::vector<float>& _enloss,
01578 const std::vector<float>& _tof);
01579
01580 void putRPCHits(
01581 const std::vector<unsigned int>& _detUnitId,
01582 const std::vector<float>& _trackId ,
01583 const std::vector<float>& _processType,
01584 const std::vector<float>& _particleType,
01585 const std::vector<float>& _pabs,
01586 const std::vector<float>& _globposz,
01587 const std::vector<float>& _globposphi,
01588 const std::vector<float>& _globposeta,
01589 const std::vector<float>& _locposx,
01590 const std::vector<float>& _locposy,
01591 const std::vector<float>& _locposz,
01592 const std::vector<float>& _locdirx,
01593 const std::vector<float>& _locdiry,
01594 const std::vector<float>& _locdirz,
01595 const std::vector<float>& _locdirtheta,
01596 const std::vector<float>& _locdirphi,
01597 const std::vector<float>& _exitpointx,
01598 const std::vector<float>& _exitpointy,
01599 const std::vector<float>& _exitpointz,
01600 const std::vector<float>& _entrypointx,
01601 const std::vector<float>& _entrypointy,
01602 const std::vector<float>& _entrypointz,
01603 const std::vector<float>& _enloss,
01604 const std::vector<float>& _tof);
01605
01607
01608 int getnRawGenPart() {return nRawGenPart;}
01609 int getnG4Vtx() {return nG4Vtx;}
01610 int getnG4Trk() {return nG4Trk;}
01611
01612 VtxVector getG4Vtx() {return G4Vtx;}
01613 TrkVector getG4Trk() {return G4Trk;}
01614
01615 int getnCSCHits() {return nCSCHits;}
01616 CSCVector getCSCHits() {return CSCHits;}
01617
01618 int getnDTHits() {return nDTHits;}
01619 DTVector getDTHits() {return DTHits;}
01620
01621 int getnRPCHits() {return nRPCHits;}
01622 RPCVector getRPCHits() {return RPCHits;}
01623
01624
01625 private:
01626
01628
01629 int nRawGenPart;
01630 int nG4Vtx;
01631 VtxVector G4Vtx;
01632 int nG4Trk;
01633 TrkVector G4Trk;
01634
01636
01637 int nCSCHits;
01638 CSCVector CSCHits;
01639
01640 int nDTHits;
01641 DTVector DTHits;
01642
01643 int nRPCHits;
01644 RPCVector RPCHits;
01645
01646 };
01647
01648 #endif
01649
01651
01653
01654 #ifndef PTrackerSimHit_h
01655 #define PTrackerSimHit_h
01656
01657 #include <vector>
01658 #include <memory>
01659
01660 class PTrackerSimHit
01661 {
01662
01663 public:
01664
01665 PTrackerSimHit(): nRawGenPart(0), nG4Vtx(0), nG4Trk(0), nHits(0) {}
01666 virtual ~PTrackerSimHit(){}
01667
01668 struct Vtx
01669 {
01670 Vtx(): x(0), y(0), z(0) {}
01671 float x;
01672 float y;
01673 float z;
01674 };
01675
01676 struct Trk
01677 {
01678 Trk() : pt(0), e(0), eta(0), phi(0) {}
01679 float pt;
01680 float e;
01681 float eta;
01682 float phi;
01683 };
01684
01685
01686 struct Hit
01687 {
01688 Hit() : _sysID(0), _detUnitId(0), _trackId(0), _processType(0),
01689 _particleType(0), _pabs(0),
01690 _lpx(0), _lpy(0), _lpz(0),
01691 _ldx(0), _ldy(0), _ldz(0), _ldtheta(0), _ldphi(0),
01692 _exx(0), _exy(0), _exz(0),
01693 _enx(0), _eny(0), _enz(0), _eloss(0), _tof(0) {}
01694 int _sysID;
01695 float _detUnitId;
01696 float _trackId;
01697 float _processType;
01698 float _particleType;
01699 float _pabs;
01700 float _lpx;
01701 float _lpy;
01702 float _lpz;
01703 float _ldx;
01704 float _ldy;
01705 float _ldz;
01706 float _ldtheta;
01707 float _ldphi;
01708 float _exx;
01709 float _exy;
01710 float _exz;
01711 float _enx;
01712 float _eny;
01713 float _enz;
01714 float _eloss;
01715 float _tof;
01716 };
01717
01718
01719 typedef std::vector<Vtx> VtxVector;
01720 typedef std::vector<Trk> TrkVector;
01721 typedef std::vector<Hit> HitVector;
01722
01723
01724 void putRawGenPart(int n);
01725 void putG4Vtx(const std::vector<float> &x, const std::vector<float> &y, const std::vector<float> &z);
01726 void putG4Trk(const std::vector<float> &pt, const std::vector<float> &e, const std::vector<float> &eta, const std::vector<float> &phi);
01727 void putHits(const std::vector<int> &_sysID, const std::vector<float> &_detUnitId,
01728 const std::vector<float>&_trackId , const std::vector<float>&_processType,
01729 const std::vector<float>&_particleType, const std::vector<float> &_pabs,
01730 const std::vector<float>&_lpx, const std::vector<float>&_lpy, const std::vector<float>&_lpz,
01731 const std::vector<float>&_ldx, const std::vector<float>&_ldy, const std::vector<float>&_ldz,
01732 const std::vector<float>&_ldtheta, const std::vector<float>&_ldphi,
01733 const std::vector<float>&_exx, const std::vector<float>&_exy, const std::vector<float>&_exz,
01734 const std::vector<float>&_enx, const std::vector<float>&_eny, const std::vector<float>&_enz,
01735 const std::vector<float>&_eloss, const std::vector<float>&_tof);
01736
01737
01738 int getnRawGenPart() {return nRawGenPart;}
01739 int getnG4Vtx() {return nG4Vtx;}
01740 VtxVector getG4Vtx() {return G4Vtx;}
01741 int getnG4Trk() {return nG4Trk;}
01742 TrkVector getG4Trk() {return G4Trk;}
01743 int getnHits() {return nHits;}
01744 HitVector getHits() {return Hits;}
01745
01746 private:
01747
01748
01749 int nRawGenPart;
01750 int nG4Vtx;
01751 VtxVector G4Vtx;
01752 int nG4Trk;
01753 TrkVector G4Trk;
01754
01755 int nHits;
01756 HitVector Hits;
01757
01758
01759 };
01760
01761 #endif
01762
01763 #endif // endif PValidationFormats_h