#ifndef __HPARTICLEEVTINFO_H__ #define __HPARTICLEEVTINFO_H__ #include "TObject.h" #define MAXSECTOR 6 #define MAXIOSEG 2 // ---------------------------------------------------------------------------- class HParticleEvtInfo : public TObject { private: // hit multiplicity per detector (sector wise) Int_t aRichMult [MAXSECTOR]; // RICH rings Int_t aRichCorrMult [MAXSECTOR]; // correlated RICH rings with a RK track Int_t aRichClusMult [MAXSECTOR]; // RICH charged particle clusters Int_t aMdcClusMult [MAXSECTOR][MAXIOSEG]; // MDC cluster (segment wise) Int_t aMdcSegFittedMult [MAXSECTOR][MAXIOSEG]; // fitted MDC segments Int_t aMdcSegUnfittedMult [MAXSECTOR][MAXIOSEG]; // unfitted MDc segments Int_t aTofMult [MAXSECTOR]; // TOF hit multiplicity Int_t aShowerMult [MAXSECTOR]; // Shower/TOFino hit multiplicity Int_t aRpcMult [MAXSECTOR]; // RPC cluster multiplicity Int_t aRpcMultHit [MAXSECTOR]; // RPC hit multiplicity Int_t aParticleCandMult [MAXSECTOR]; // Particle Candidate entries Int_t aSelectedParticleCandMult[MAXSECTOR]; // selected ParticleTrack Candidate entries (flagged kIsUsed) // reaction plane information Int_t nFWallMult; // forward wall hits Double_t fFWallVector; // not yet implemented: vector size of all FW positions Double_t fRPlanePhi; // not yet implemented: phi of reaction plane public: HParticleEvtInfo(void); ~HParticleEvtInfo(void) {} void setRichMult (const Int_t m[MAXSECTOR]) { for (Int_t s = 0; s < MAXSECTOR; ++s) aRichMult [s] = m[s]; } void setRichCorrMult (const Int_t m[MAXSECTOR]) { for (Int_t s = 0; s < MAXSECTOR; ++s) aRichCorrMult [s] = m[s]; } void setRichClusMult (const Int_t m[MAXSECTOR]) { for (Int_t s = 0; s < MAXSECTOR; ++s) aRichClusMult [s] = m[s]; } void setTofMult (const Int_t m[MAXSECTOR]) { for (Int_t s = 0; s < MAXSECTOR; ++s) aTofMult [s] = m[s]; } void setRpcMult (const Int_t m[MAXSECTOR]) { for (Int_t s = 0; s < MAXSECTOR; ++s) aRpcMult [s] = m[s]; } void setRpcMultHit (const Int_t m[MAXSECTOR]) { for (Int_t s = 0; s < MAXSECTOR; ++s) aRpcMultHit [s] = m[s]; } void setShowerMult (const Int_t m[MAXSECTOR]) { for (Int_t s = 0; s < MAXSECTOR; ++s) aShowerMult [s] = m[s]; } void setParticleCandMult (const Int_t m[MAXSECTOR]) { for (Int_t s = 0; s < MAXSECTOR; ++s) aParticleCandMult [s] = m[s]; } void setSelectedParticleCandMult(const Int_t m[MAXSECTOR]) { for (Int_t s = 0; s < MAXSECTOR; ++s) aSelectedParticleCandMult[s] = m[s]; } void setMdcClusMult(const Int_t m[MAXSECTOR][MAXIOSEG]) { for (Int_t s = 0; s < MAXSECTOR; ++s) for (Int_t io = 0; io < MAXIOSEG; ++io) aMdcClusMult[s][io] = m[s][io]; } void setMdcSegFittedMult(const Int_t m[MAXSECTOR][MAXIOSEG]) { for (Int_t s = 0; s < MAXSECTOR; ++s) for (Int_t io = 0; io < MAXIOSEG; ++io) aMdcSegFittedMult[s][io] = m[s][io]; } void setMdcSegUnfittedMult(const Int_t m[MAXSECTOR][MAXIOSEG]) { for (Int_t s = 0; s < MAXSECTOR; ++s) for (Int_t io = 0; io < MAXIOSEG; ++io) aMdcSegUnfittedMult[s][io] = m[s][io]; } void setFWallMult (Int_t m) { nFWallMult = m; } void setFWallVector(Double_t d) { fFWallVector = d; } void setRPlanePhi (Double_t d) { fRPlanePhi = d; } Int_t getRichMult (Int_t s) const { return ( s >= 0 && s < MAXSECTOR ) ? aRichMult [s] : -1; } Int_t getRichCorrMult (Int_t s) const { return ( s >= 0 && s < MAXSECTOR ) ? aRichCorrMult [s] : -1; } Int_t getRichClusMult (Int_t s) const { return ( s >= 0 && s < MAXSECTOR ) ? aRichClusMult [s] : -1; } Int_t getTofMult (Int_t s) const { return ( s >= 0 && s < MAXSECTOR ) ? aTofMult [s] : -1; } Int_t getRpcMult (Int_t s) const { return ( s >= 0 && s < MAXSECTOR ) ? aRpcMult [s] : -1; } Int_t getRpcMultHit (Int_t s) const { return ( s >= 0 && s < MAXSECTOR ) ? aRpcMultHit [s] : -1; } Int_t getShowerMult (Int_t s) const { return ( s >= 0 && s < MAXSECTOR ) ? aShowerMult [s] : -1; } Int_t getParticleCandMult (Int_t s) const { return ( s >= 0 && s < MAXSECTOR ) ? aParticleCandMult [s] : -1; } Int_t getSelectedParticleCandMult(Int_t s) const { return ( s >= 0 && s < MAXSECTOR ) ? aSelectedParticleCandMult[s] : -1; } Int_t getMdcClusMult (Int_t s, Int_t io) const { return ( s >= 0 && s < MAXSECTOR && io >= 0 && io < MAXIOSEG ) ? aMdcClusMult [s][io] : -1; } Int_t getMdcSegFittedMult (Int_t s, Int_t io) const { return ( s >= 0 && s < MAXSECTOR && io >= 0 && io < MAXIOSEG ) ? aMdcSegFittedMult [s][io] : -1; } Int_t getMdcSegUnfittedMult (Int_t s, Int_t io) const { return ( s >= 0 && s < MAXSECTOR && io >= 0 && io < MAXIOSEG) ? aMdcSegUnfittedMult[s][io] : -1; } Int_t getSumRichMult() const { Int_t sum = 0; for (Int_t s = 0; s < MAXSECTOR; ++s ) sum += aRichMult[s]; return sum; } Int_t getSumRichCorrMult() const { Int_t sum = 0; for (Int_t s = 0; s < MAXSECTOR; ++s ) sum += aRichCorrMult[s]; return sum; } Int_t getSumRichClusMult() const { Int_t sum = 0; for (Int_t s = 0; s < MAXSECTOR; ++s ) sum += aRichClusMult[s]; return sum; } Int_t getSumTofMult() const { Int_t sum = 0; for (Int_t s = 0; s < MAXSECTOR; ++s ) sum += aTofMult[s]; return sum; } Int_t getSumRpcMult() const { Int_t sum = 0; for (Int_t s = 0; s < MAXSECTOR; ++s ) sum += aRpcMult[s]; return sum; } Int_t getSumRpcMultHit() const { Int_t sum = 0; for (Int_t s = 0; s < MAXSECTOR; ++s ) sum += aRpcMultHit[s]; return sum; } Int_t getSumShowerMult() const { Int_t sum = 0; for (Int_t s = 0; s < MAXSECTOR; ++s ) sum += aShowerMult[s]; return sum; } Int_t getSumParticleCandMult() const { Int_t sum = 0; for (Int_t s = 0; s < MAXSECTOR; ++s ) sum += aParticleCandMult[s]; return sum; } Int_t getSumSelectedParticleCandMult() const { Int_t sum = 0; for (Int_t s = 0; s < MAXSECTOR; ++s ) sum += aSelectedParticleCandMult[s]; return sum; } Int_t getSumMdcClusMult(Int_t io) const { Int_t sum = 0; for (Int_t s = 0; s < MAXSECTOR; ++s ) sum += aMdcClusMult[s][io]; return sum; } Int_t getSumMdcSegFittedMult(Int_t io) const { Int_t sum = 0; for (Int_t s = 0; s < MAXSECTOR; ++s ) sum += aMdcSegFittedMult[s][io]; return sum; } Int_t getSumMdcSegUnfittedMult(Int_t io) const { Int_t sum = 0; for (Int_t s = 0; s < MAXSECTOR; ++s ) sum += aMdcSegUnfittedMult[s][io]; return sum; } Int_t getFWallMult (void) const { return nFWallMult; } Double_t getFWallVector(void) const { return fFWallVector; } Double_t getRPlanePhi (void) const { return fRPlanePhi; } void clearMembers(void); ClassDef(HParticleEvtInfo, 2) // Event characteristic info }; #endif //__HPARTICEEVTINFO_H__