00001 #ifndef STAR_Pi0Event
00002 #define STAR_Pi0Event
00003
00004
00005
00006 #include "TObject.h"
00007 #include "TClonesArray.h"
00008 #include "TRefArray.h"
00009 #include "TRef.h"
00010 #include "TH1.h"
00011 #include "TMath.h"
00012 #include <vector>
00013
00014 using namespace std;
00015
00016 class TSkimPionCandidate : public TObject {
00017
00018 private:
00019 Float_t m_Pt;
00020 Float_t m_Mass;
00021 Float_t m_Eta;
00022 Float_t m_Phi;
00023 Float_t m_Asymmetry;
00024 Float_t m_CosAngle;
00025 Float_t m_TowerId1;
00026 Float_t m_TowerId2;
00027 Int_t m_ChargedAssociation1;
00028 Int_t m_ChargedAssociation2;
00029 Int_t m_SMDFlagg1;
00030 Int_t m_SMDFlagg2;
00031 Float_t m_Energy1;
00032 Float_t m_Energy2;
00033 Float_t m_TowerEnergy1;
00034 Float_t m_TowerEnergy2;
00035 Float_t m_SMDe1;
00036 Float_t m_SMDp1;
00037 Float_t m_SMDe2;
00038 Float_t m_SMDp2;
00039 Float_t m_Phi1;
00040 Float_t m_Eta1;
00041 Float_t m_Phi2;
00042 Float_t m_Eta2;
00043
00044 public:
00045 TSkimPionCandidate();
00046 TSkimPionCandidate(const TSkimPionCandidate& orig);
00047 virtual ~TSkimPionCandidate() {};
00048 void Clear(const Option_t* option ="") {};
00049
00050 Float_t Pt() const {return m_Pt;}
00051 Float_t Mass() const {return m_Mass;}
00052 Float_t Eta() const {return m_Eta;}
00053 Float_t Phi() const {return m_Phi;}
00054 Float_t Asymmetry() const {return m_Asymmetry;}
00055 Float_t CosAngle() const {return m_CosAngle;}
00056 Float_t TowerId1() const {return m_TowerId1;}
00057 Float_t TowerId2() const {return m_TowerId2;}
00058 Int_t ChargedAssociation1() const {return m_ChargedAssociation1;}
00059 Int_t ChargedAssociation2() const {return m_ChargedAssociation2;}
00060 Int_t SMDFlagg1() const {return m_SMDFlagg1;}
00061 Int_t SMDFlagg2() const {return m_SMDFlagg2;}
00062 Float_t Energy1() const {return m_Energy1;}
00063 Float_t Energy2() const {return m_Energy2;}
00064 Float_t TowerEnergy1() const {return m_TowerEnergy1;}
00065 Float_t TowerEnergy2() const {return m_TowerEnergy2;}
00066 Float_t SMDe1() const {return m_SMDe1;}
00067 Float_t SMDp1() const {return m_SMDp1;}
00068 Float_t SMDe2() const {return m_SMDe2;}
00069 Float_t SMDp2() const {return m_SMDp2;}
00070 Float_t Phi1() const {return m_Phi1;}
00071 Float_t Eta1() const {return m_Eta1;}
00072 Float_t Phi2() const {return m_Phi2;}
00073 Float_t Eta2() const {return m_Eta2;}
00074
00075 void SetAll(Float_t data[24]);
00076
00077 ClassDef(TSkimPionCandidate,1)
00078 };
00079
00080 class THit : public TObject {
00081 private:
00082 Float_t m_X;
00083 Float_t m_Y;
00084 Float_t m_Z;
00085 Int_t m_Id;
00086 Float_t m_Energy;
00087 Float_t m_Pt;
00088 Int_t m_NTracks;
00089 Int_t m_SMDFlag;
00090 Float_t m_EnergySMDe;
00091 Float_t m_EnergySMDp;
00092 Float_t m_EnergyTower;
00093 Float_t m_SizeSMDe;
00094 Float_t m_SizeSMDp;
00095 Float_t m_SizeTower;
00096 Float_t m_Phi;
00097 Float_t m_Eta;
00098
00099 public:
00100 THit();
00101 THit(const THit& orig);
00102 virtual ~THit() {};
00103 void Clear(const Option_t* option =""){};
00104 Float_t X() const {return m_X;}
00105 Float_t Y() const {return m_Y;}
00106 Float_t Z() const {return m_Z;}
00107 Int_t Id() const {return m_Id;}
00108 Float_t Energy() const {return m_Energy;}
00109 Float_t Pt() const {return m_Pt;}
00110 Int_t NTracks() const {return m_NTracks;}
00111 Int_t SMDFlag() const {return m_SMDFlag;}
00112 Float_t EnergySMDe() const {return m_EnergySMDe;}
00113 Float_t EnergySMDp() const {return m_EnergySMDp;}
00114 Float_t EnergyTower() const {return m_EnergyTower;}
00115 Float_t SizeSMDe() const {return m_SizeSMDe;}
00116 Float_t SizeSMDp() const {return m_SizeSMDp;}
00117 Float_t SizeTower() const {return m_SizeTower;}
00118 Float_t Phi() const {return m_Phi;}
00119 Float_t Eta() const {return m_Eta;}
00120 void SetAll(Float_t data[16]);
00121
00122 ClassDef(THit,1)
00123 };
00124
00125
00126 class TSkimPionEvent : public TObject {
00127
00128 private:
00129 Int_t m_EventNo;
00130 Int_t m_RunNo;
00131 Int_t m_FillNo;
00132 Float_t m_VertexX;
00133 Float_t m_VertexY;
00134 Float_t m_VertexZ;
00135 Int_t m_IsMB;
00136 Int_t m_IsHTTPL2;
00137 Int_t m_IsHTTPL2_Test;
00138 Int_t m_IsSoftHTTPL2;
00139 Int_t m_IsSoftMB;
00140 Int_t m_HiTowerAdc6Bit;
00141 Int_t m_BEMCPoints;
00142 Float_t m_ChargedPtSum;
00143 Float_t m_NeutralEnergy;
00144 Int_t m_PrescaleMB;
00145 Int_t m_PrescaleHTTPL2;
00146 Int_t m_PrescaleHTTPL2_Test;
00147 Int_t m_BBCTrig;
00148 Int_t m_NPi0Candidates;
00149 Int_t m_NHits;
00150 Int_t m_BunchX48;
00151 Int_t m_BunchX7;
00152 Int_t m_SpinBit4;
00153 Int_t m_MaskedXing;
00154 Int_t m_ValidSpin;
00155 Int_t m_PolLong;
00156 Int_t m_DbSpinBit;
00157 Float_t m_BBCVertexZ;
00158 Float_t m_BBCTimeBin;
00159 Int_t m_OnlyBBCVtx;
00160
00161 TClonesArray *m_SkimPionCandidates;
00162 TClonesArray *m_Hits;
00163 static TClonesArray *aSkimPionCandidates;
00164 static TClonesArray *aHits;
00165
00166 public:
00167 TSkimPionEvent();
00168 virtual ~TSkimPionEvent();
00169 void Clear(const Option_t* option ="");
00170 static void Reset(Option_t *option ="");
00171
00172 Int_t EventNo() const {return m_EventNo;}
00173 Int_t RunNo() const {return m_RunNo;}
00174 Int_t FillNo() const {return m_FillNo;}
00175 Float_t VertexX() const {return m_VertexX;}
00176 Float_t VertexY() const {return m_VertexY;}
00177 Float_t VertexZ() const {return m_VertexZ;}
00178 Int_t IsMB() const {return m_IsMB;}
00179 Int_t IsHTTPL2() const {return m_IsHTTPL2;}
00180 Int_t IsHTTPL2_Test() const {return m_IsHTTPL2_Test;}
00181 Int_t IsSoftHTTPL2() const {return m_IsSoftHTTPL2;}
00182 Int_t IsSoftMB() const {return m_IsSoftMB;}
00183 Int_t HiTowerAdc6Bit() const {return m_HiTowerAdc6Bit;}
00184 Int_t BEMCPoints() const {return m_BEMCPoints;}
00185 Float_t ChargedPtSum() const {return m_ChargedPtSum;}
00186 Float_t NeutralEnergy() const {return m_NeutralEnergy;}
00187 Int_t PrescaleMB() const {return m_PrescaleMB;}
00188 Int_t PrescaleHTTPL2() const {return m_PrescaleHTTPL2;}
00189 Int_t PrescaleHTTPL2_Test() const {return m_PrescaleHTTPL2_Test;}
00190 Int_t BBCTrig() const {return m_BBCTrig;}
00191 Int_t NPi0Candidates() const {return m_NPi0Candidates;}
00192 Int_t NHits() const {return m_NHits;}
00193 Int_t BunchX48() const {return m_BunchX48;}
00194 Int_t BunchX7() const {return m_BunchX7;}
00195 Int_t SpinBit() const {return m_SpinBit4;}
00196 Int_t MaskedXing() const {return m_MaskedXing;}
00197 Int_t ValidSpin() const {return m_ValidSpin;}
00198 Int_t PolLong() const {return m_PolLong;}
00199 Int_t DbSpinBit() const {return m_DbSpinBit;}
00200 Float_t BBCVertexZ() const {return m_BBCVertexZ;}
00201 Int_t OnlyBBCVertex() const {return m_OnlyBBCVtx;}
00202 Float_t BBCTimeBin() const {return m_BBCTimeBin;}
00203 TClonesArray* SkimPionCandidates() const {return m_SkimPionCandidates;}
00204 TSkimPionCandidate* SkimPionCandidate(Int_t i) {return (TSkimPionCandidate*)m_SkimPionCandidates->At(i);}
00205 TClonesArray* Hits() const {return m_Hits;}
00206 THit* Hit(Int_t i) {return (THit*)m_Hits->At(i);}
00207
00208
00209
00210 void SetEventNo(Int_t evN) {m_EventNo = evN;}
00211 void SetRunNo(Int_t rN) {m_RunNo = rN;}
00212 void SetFillNo(Int_t fN) {m_FillNo = fN;}
00213 void SetVertex(Float_t vx, Float_t vy, Float_t vz) {m_VertexX = vx; m_VertexY = vy; m_VertexZ = vz;}
00214 void SetTriggers(Int_t tr[3]) {m_IsMB = tr[0]; m_IsHTTPL2 = tr[1]; m_IsHTTPL2_Test = tr[2];}
00215 void SetSoftTriggers(Int_t sftr[2]) {m_IsSoftMB = sftr[0]; m_IsSoftHTTPL2 = sftr[1];}
00216 void SetPrescales(Int_t pr[3]) {m_PrescaleMB = pr[0]; m_PrescaleHTTPL2 = pr[1]; m_PrescaleHTTPL2_Test = pr[2];}
00217 void SetHiTowerAdc6Bit(Int_t ht) {m_HiTowerAdc6Bit = ht;}
00218 void SetBEMCPoints(Int_t points) {m_BEMCPoints = points;}
00219 void SetChargedPtSum(Float_t sum) {m_ChargedPtSum = sum;}
00220 void SetNeutralEnergy(Float_t en) {m_NeutralEnergy = en;}
00221 void SetBBCTrig(Int_t bt) {m_BBCTrig = bt;}
00222 void SetBunchX48(Int_t b48) {m_BunchX48 = b48;}
00223 void SetBunchX7(Int_t b7) {m_BunchX7 = b7;}
00224 void SetSpinBit(Int_t sb) {m_SpinBit4 = sb;}
00225 void SetMaskedXing(Int_t mask) {m_MaskedXing = mask;}
00226 void SetValidSpin(Int_t val) {m_ValidSpin = val;}
00227 void SetPolLong(Int_t pol) {m_PolLong = pol;}
00228 void SetDbSpinBit(Int_t sb) {m_DbSpinBit = sb;}
00229 void SetBBCVertexZ(Float_t vtxz) {m_BBCVertexZ = vtxz;}
00230 void SetOnlyBBCVertex(Int_t flag = 1) {m_OnlyBBCVtx = flag;}
00231 void SetBBCTimeBin(Float_t bin) {m_BBCTimeBin = bin;}
00232 TSkimPionCandidate* AddSkimPionCandidate(TSkimPionCandidate& cand);
00233 THit* AddHit(THit& cand);
00234
00235 ClassDef(TSkimPionEvent,1)
00236 };
00237 #endif