00001 #ifndef ST_CHARGED_PION_JET_HH
00002 #define ST_CHARGED_PION_JET_HH
00003
00004
00005
00006 #include <vector>
00007 using std::vector;
00008
00009 #include "TLorentzVector.h"
00010 #include "TClonesArray.h"
00011
00012 #include "StChargedPionJetParticle.h"
00013
00014 class StChargedPionJet : public TLorentzVector {
00015 public:
00016 StChargedPionJet();
00017 StChargedPionJet(const StChargedPionJet&);
00018 virtual ~StChargedPionJet();
00019
00020 void Clear(Option_t* = "");
00021
00022 int charge() const;
00023 unsigned int nTpcTracks() const;
00024 unsigned int nBarrelTowers() const;
00025 unsigned int nEndcapTowers() const;
00026
00027 double tpcEtSum() const;
00028 double barrelEtSum() const;
00029 double endcapEtSum() const;
00030
00031 double vertexZ() const;
00032
00033 float detectorEta() const;
00034 float detectorEta(float vz, float r=231.72) const;
00035
00036 bool isTrigger(unsigned int trigId) const;
00037
00038 vector<StChargedPionJetParticle>& particles();
00039 const vector<StChargedPionJetParticle>& particles() const;
00040
00041 const StChargedPionJetParticle& leadingParticle() const;
00042
00043 void setCharge(char);
00044 void setNTpcTracks(unsigned short);
00045 void setNBarrelTowers(unsigned short);
00046 void setNEndcapTowers(unsigned short);
00047 void setTpcEtSum(float);
00048 void setBarrelEtSum(float);
00049 void setEndcapEtSum(float);
00050 void setVertexZ(float);
00051 void addTrigger(unsigned int trigId);
00052 void addParticle(StChargedPionJetParticle*);
00053
00054 private:
00056 Char_t mCharge;
00057 UShort_t mTpcCount;
00058 UShort_t mBtowCount;
00059 UShort_t mEtowCount;
00060 Float_t mTpcEtSum;
00061 Float_t mBtowEtSum;
00062 Float_t mEtowEtSum;
00063
00064
00065 Float_t mVertexZ;
00066
00067
00068 UInt_t mGeomTriggers;
00069
00070
00071 vector<StChargedPionJetParticle> mParticles;
00072
00073 ClassDef(StChargedPionJet, 2)
00074 };
00075
00076 inline int StChargedPionJet::charge() const { return mCharge; }
00077 inline unsigned int StChargedPionJet::nTpcTracks() const { return mTpcCount; }
00078 inline unsigned int StChargedPionJet::nBarrelTowers() const { return mBtowCount; }
00079 inline unsigned int StChargedPionJet::nEndcapTowers() const { return mEtowCount; }
00080 inline double StChargedPionJet::tpcEtSum() const { return mTpcEtSum; }
00081 inline double StChargedPionJet::barrelEtSum() const { return mBtowEtSum; }
00082 inline double StChargedPionJet::endcapEtSum() const { return mEtowEtSum; }
00083 inline double StChargedPionJet::vertexZ() const { return mVertexZ; }
00084 inline vector<StChargedPionJetParticle>& StChargedPionJet::particles() { return mParticles; }
00085 inline const vector<StChargedPionJetParticle>& StChargedPionJet::particles() const { return mParticles; }
00086
00087 inline void StChargedPionJet::setCharge(char a) { mCharge = a; }
00088 inline void StChargedPionJet::setNTpcTracks(unsigned short a) { mTpcCount = a; }
00089 inline void StChargedPionJet::setNBarrelTowers(unsigned short a) { mBtowCount = a; }
00090 inline void StChargedPionJet::setNEndcapTowers(unsigned short a) { mEtowCount = a; }
00091 inline void StChargedPionJet::setTpcEtSum(float a) { mTpcEtSum = a; }
00092 inline void StChargedPionJet::setBarrelEtSum(float a) { mBtowEtSum = a; }
00093 inline void StChargedPionJet::setEndcapEtSum(float a) { mEtowEtSum = a; }
00094 inline void StChargedPionJet::setVertexZ(float a) { mVertexZ = a; }
00095
00096 #endif
00097
00098
00099
00100
00101
00102
00103