00001
00002
00003
00004 #include "TPi0Event.h"
00005
00006
00007 ClassImp(TPi0Event)
00008 ClassImp(TPi0Candidate)
00009 ClassImp(TMCPi0)
00010 ClassImp(TMCEta)
00011 ClassImp(THit)
00012
00013
00014 TClonesArray* TPi0Event::aPi0Candidates = 0;
00015 TClonesArray* TPi0Event::aMCPi0s = 0;
00016 TClonesArray* TPi0Event::aMCEtas = 0;
00017 TClonesArray* TPi0Event::aHits = 0;
00018
00019
00020
00021 TPi0Event::TPi0Event() {
00022 if (!aPi0Candidates) aPi0Candidates = new TClonesArray("TPi0Candidate", 50);
00023 m_Pi0Candidates = aPi0Candidates;
00024 if (!aMCPi0s) aMCPi0s = new TClonesArray("TMCPi0", 50);
00025 m_MCPi0s = aMCPi0s;
00026 if (!aMCEtas) aMCEtas = new TClonesArray("TMCEta", 50);
00027 m_MCEtas = aMCEtas;
00028 if (!aHits) aHits = new TClonesArray("THit", 50);
00029 m_Hits = aHits;
00030 m_EventNo = 0;
00031 m_RunNo = 0;
00032 m_FillNo = 0;
00033 m_VertexZ = 0;
00034 m_IsMB = 0;
00035 m_IsHTTPF = 0;
00036 m_IsHTTPL2 = 0;
00037 m_IsHTTPL2_Test = 0;
00038 m_IsHT2 = 0;
00039 m_IsJP1 = 0;
00040 m_HiTowerAdc6Bit = 0;
00041 m_BEMCPoints = 0;
00042 m_PrescaleMB = 0;
00043 m_PrescaleHTTPF = 0;
00044 m_PrescaleHTTPL2 = 0;
00045 m_PrescaleHTTPL2_Test = 0;
00046 m_PrescaleHT2 = 0;
00047 m_PrescaleJP1 = 0;
00048 m_BBCTrig = 0;
00049 m_MCVertexZ = 0;
00050 m_Accept = 0;
00051 m_NPi0Candidates = 0;
00052 m_NMCPi0s = 0;
00053 m_NMCEtas = 0;
00054 m_NHits = 0;
00055 m_HighestPi0MCPt = 0;
00056 m_BunchX48 = 0;
00057 m_BunchX7 = 0;
00058 m_SpinBit4 = 0;
00059 m_MaskedXing = 0;
00060 m_ValidSpin = 0;
00061 m_PolLong = 0;
00062 m_DbSpinBit = 0;
00063 m_relLum[0] = 0;
00064 m_relLum[1] = 0;
00065 m_relLum[2] = 0;
00066 m_lumErr[0] = 0;
00067 m_lumErr[1] = 0;
00068 m_lumErr[2] = 0;
00069 m_BBCVertexZ = 0;
00070 m_OnlyBBCVtx = 0;
00071 m_PythiaPartPt = 0;
00072 m_PythiaX1 = 0;
00073 m_PythiaX2 = 0;
00074 m_BBCTimeBin = 0;
00075 m_isBackground = 0;
00076 }
00077
00078 TPi0Event::~TPi0Event() {
00079 Clear();
00080 }
00081
00082 void TPi0Event::Clear(const Option_t*) {
00083
00084 m_EventNo = 0;
00085 m_RunNo = 0;
00086 m_FillNo = 0;
00087 m_VertexZ = 0;
00088 m_IsMB = 0;
00089 m_IsHTTPF = 0;
00090 m_IsHTTPL2 = 0;
00091 m_IsHTTPL2_Test = 0;
00092 m_IsHT2 = 0;
00093 m_IsJP1 = 0;
00094 m_HiTowerAdc6Bit = 0;
00095 m_BEMCPoints = 0;
00096 m_PrescaleMB = 0;
00097 m_PrescaleHTTPF = 0;
00098 m_PrescaleHTTPL2 = 0;
00099 m_PrescaleHTTPL2_Test = 0;
00100 m_PrescaleHT2 = 0;
00101 m_PrescaleJP1 = 0;
00102 m_BBCTrig = 0;
00103 m_MCVertexZ = 0;
00104 m_Accept = 0;
00105 m_NPi0Candidates = 0;
00106 m_NMCPi0s = 0;
00107 m_NMCEtas = 0;
00108 m_NHits = 0;
00109 m_HighestPi0MCPt = 0;
00110 m_BunchX48 = 0;
00111 m_BunchX7 = 0;
00112 m_SpinBit4 = 0;
00113 m_MaskedXing = 0;
00114 m_ValidSpin = 0;
00115 m_PolLong = 0;
00116 m_DbSpinBit = 0;
00117 m_relLum[0] = 0;
00118 m_relLum[1] = 0;
00119 m_relLum[2] = 0;
00120 m_lumErr[0] = 0;
00121 m_lumErr[1] = 0;
00122 m_lumErr[2] = 0;
00123 m_BBCVertexZ = 0;
00124 m_OnlyBBCVtx = 0;
00125 m_PythiaPartPt = 0;
00126 m_PythiaX1 = 0;
00127 m_PythiaX2 = 0;
00128 m_BBCTimeBin = 0;
00129 m_isBackground = 0;
00130 m_BackgroundTowers.clear();
00131 m_Pi0Candidates->Clear();
00132 m_MCPi0s->Clear();
00133 m_MCEtas->Clear();
00134 m_Hits->Clear();
00135
00136 }
00137 void TPi0Event::Reset(Option_t * )
00138 {
00139
00140
00141 delete aPi0Candidates; aPi0Candidates = 0;
00142 delete aMCPi0s; aMCPi0s = 0;
00143 delete aMCEtas; aMCEtas = 0;
00144 delete aHits; aHits = 0;
00145 }
00146
00147
00148 TPi0Candidate* TPi0Event::AddPi0Candidate(TPi0Candidate& cand) {
00149
00150 TClonesArray &aCand = *m_Pi0Candidates;
00151 TPi0Candidate *piCand = new(aCand[m_NPi0Candidates++]) TPi0Candidate(cand);
00152
00153 return piCand;
00154 }
00155
00156 TMCPi0* TPi0Event::AddMCPi0(TMCPi0& cand) {
00157
00158 TClonesArray &aCand = *m_MCPi0s;
00159 TMCPi0 *piCand = new(aCand[m_NMCPi0s++]) TMCPi0(cand);
00160
00161 return piCand;
00162 }
00163 TMCEta* TPi0Event::AddMCEta(TMCEta& cand) {
00164
00165 TClonesArray &aCand = *m_MCEtas;
00166 TMCEta *piCand = new(aCand[m_NMCEtas++]) TMCEta(cand);
00167
00168 return piCand;
00169 }
00170
00171 THit* TPi0Event::AddHit(THit& cand) {
00172
00173 TClonesArray &aCand = *m_Hits;
00174 THit *piCand = new(aCand[m_NHits++]) THit(cand);
00175
00176 return piCand;
00177 }
00178
00179
00180 TPi0Candidate::TPi0Candidate() : TObject(){
00181 m_Pt = m_Mass = 0;
00182 }
00183
00184 TPi0Candidate::TPi0Candidate(const TPi0Candidate& orig) : TObject(orig) {
00185
00186 m_Pt = orig.m_Pt;
00187 m_Mass = orig.m_Mass;
00188 m_Eta = orig.m_Eta;
00189 m_Phi = orig.m_Phi;
00190 m_Asymmetry = orig.m_Asymmetry;
00191 m_CosAngle = orig.m_CosAngle;
00192 m_Distance = orig.m_Distance;
00193 m_TowerId1 = orig.m_TowerId1;
00194 m_TowerId2 = orig.m_TowerId2;
00195 m_ChargedAssociation1 = orig.m_ChargedAssociation1;
00196 m_ChargedAssociation2 = orig.m_ChargedAssociation2;
00197 m_SMDFlagg1 = orig.m_SMDFlagg1;
00198 m_SMDFlagg2 = orig.m_SMDFlagg2;
00199 m_Energy1 = orig.m_Energy1;
00200 m_Energy2 = orig.m_Energy2;
00201 m_TowerEnergy1 = orig.m_TowerEnergy1;
00202 m_TowerEnergy2 = orig.m_TowerEnergy2;
00203 m_SMDe1 = orig.m_SMDe1;
00204 m_SMDp1 = orig.m_SMDp1;
00205 m_SMDe2 = orig.m_SMDe2;
00206 m_SMDp2 = orig.m_SMDp2;
00207 m_Phi1 = orig.m_Phi1;
00208 m_Eta1 = orig.m_Eta1;
00209 m_Phi2 = orig.m_Phi2;
00210 m_Eta2 = orig.m_Eta2;
00211 m_SizeSMDe1 = orig.m_SizeSMDe1;
00212 m_SizeSMDp1 = orig.m_SizeSMDp1;
00213 m_SizeTower1 = orig.m_SizeTower1;
00214 m_SizeSMDe2 = orig.m_SizeSMDe2;
00215 m_SizeSMDp2 = orig.m_SizeSMDp2;
00216 m_SizeTower2 = orig.m_SizeTower2;
00217
00218 }
00219
00220 void TPi0Candidate::SetAll(Float_t data[25]) {
00221 m_Pt = data[0];
00222 m_Mass = data[1];
00223 m_Eta = data[2];
00224 m_Phi = data[3];
00225 m_Asymmetry = data[4];
00226 m_CosAngle = data[5];
00227 m_Distance = data[6];
00228 m_TowerId1 = data[7];
00229 m_TowerId2 = data[8];
00230 m_ChargedAssociation1 = (Int_t) data[9];
00231 m_ChargedAssociation2 = (Int_t) data[10];
00232 m_SMDFlagg1 = (Int_t)data[11];
00233 m_SMDFlagg2 = (Int_t)data[12];
00234 m_Energy1 = data[13];
00235 m_Energy2 = data[14];
00236 m_TowerEnergy1 = data[15];
00237 m_TowerEnergy2 = data[16];
00238 m_SMDe1 = data[17];
00239 m_SMDp1 = data[18];
00240 m_SMDe2 = data[19];
00241 m_SMDp2 = data[20];
00242 m_Eta1 = data[21];
00243 m_Phi1 = data[22];
00244 m_Eta2 = data[23];
00245 m_Phi2 = data[24];
00246 m_SizeSMDe1 = data[25];
00247 m_SizeSMDp1 = data[26];
00248 m_SizeTower1 = data[27];
00249 m_SizeSMDe2 = data[28];
00250 m_SizeSMDp2 = data[29];
00251 m_SizeTower2 = data[30];
00252
00253 }
00254
00255 THit::THit() : TObject() {
00256 m_X = 0;
00257 m_Y = 0;
00258 m_Z = 0;
00259 m_Id = 0;
00260 m_Energy = 0;
00261 m_Pt = 0;
00262 m_NTracks = 0;
00263 m_SMDFlag = 0;
00264 m_EnergySMDe = 0;
00265 m_EnergySMDp = 0;
00266 m_EnergyTower = 0;
00267 m_SizeSMDe = 0;
00268 m_SizeSMDp = 0;
00269 m_SizeTower = 0;
00270 m_Phi = 0;
00271 m_Eta = 0;
00272 }
00273
00274 THit::THit(const THit& orig) : TObject(orig) {
00275 m_X = orig.m_X;
00276 m_Y = orig.m_Y;
00277 m_Z = orig.m_Z;
00278 m_Id = orig.m_Id;
00279 m_Energy = orig.m_Energy;
00280 m_Pt = orig.m_Pt;
00281 m_NTracks = orig.m_NTracks;
00282 m_SMDFlag = orig.m_SMDFlag;
00283 m_EnergySMDe = orig.m_EnergySMDe;
00284 m_EnergySMDp = orig.m_EnergySMDp;
00285 m_EnergyTower = orig.m_EnergyTower;
00286 m_SizeSMDe = orig.m_SizeSMDe;
00287 m_SizeSMDp = orig.m_SizeSMDp;
00288 m_SizeTower = orig.m_SizeTower;
00289 m_Phi = orig.m_Phi;
00290 m_Eta = orig.m_Eta;
00291 }
00292
00293 void THit::SetAll(Float_t data[16]) {
00294 m_X = data[0];
00295 m_Y = data[1];
00296 m_Z = data[2];
00297 m_Id = (Int_t) data[3];
00298 m_Energy = data[4];
00299 m_Pt = data[5];
00300 m_NTracks = (Int_t) data[6];
00301 m_SMDFlag = (Int_t) data[7];
00302 m_EnergySMDe = data[8];
00303 m_EnergySMDp = data[9];
00304 m_EnergyTower = data[10];
00305 m_SizeSMDe = data[11];
00306 m_SizeSMDp = data[12];
00307 m_SizeTower = data[13];
00308 m_Phi = data[14];
00309 m_Eta = data[15];
00310 }
00311
00312 TMCPi0::TMCPi0() : TObject() {
00313 m_Pt = 0;
00314 m_Eta = 0;
00315 m_Phi = 0;
00316 m_Energy1 = 0;
00317 m_Energy2 = 0;
00318 m_TowerId1 = 0;
00319 m_TowerId2 = 0;
00320 }
00321
00322 TMCPi0::TMCPi0(const TMCPi0& orig) : TObject(orig) {
00323 m_Pt = orig.m_Pt;
00324 m_Eta = orig.m_Eta;
00325 m_Phi = orig.m_Phi;
00326 m_Energy1 = orig.m_Energy1;
00327 m_Energy2 = orig.m_Energy2;
00328 m_TowerId1 = orig.m_TowerId1;
00329 m_TowerId2 = orig.m_TowerId2;
00330 m_Phi1 = orig.m_Phi1;
00331 m_Eta1 = orig.m_Eta1;
00332 m_Phi2 = orig.m_Phi2;
00333 m_Eta2 = orig.m_Eta2;
00334 }
00335
00336 void TMCPi0::SetAll(Float_t data[11]) {
00337 m_Pt = data[0];
00338 m_Eta = data[1];
00339 m_Phi = data[2];
00340 m_Energy1 = data[3];
00341 m_Energy2 = data[4];
00342 m_TowerId1 = data[5];
00343 m_TowerId2 = data[6];
00344 m_Eta1 = data[7];
00345 m_Phi1 = data[8];
00346 m_Eta2 = data[9];
00347 m_Phi2 = data[10];
00348 }
00349
00350 TMCEta::TMCEta() : TObject() {
00351 m_Pt = 0;
00352 m_Eta = 0;
00353 m_Phi = 0;
00354 m_DecayMode = 0;
00355 m_Energy1 = 0;
00356 m_Energy2 = 0;
00357 m_TowerId1 = 0;
00358 m_TowerId2 = 0;
00359 m_Pi01Pt = 0;
00360 m_Pi01Eta = 0;
00361 m_Pi01Phi = 0;
00362 m_Pi02Pt = 0;
00363 m_Pi02Eta = 0;
00364 m_Pi02Phi = 0;
00365 m_Pi03Pt = 0;
00366 m_Pi03Eta = 0;
00367 m_Pi03Phi = 0;
00368
00369 }
00370
00371 TMCEta::TMCEta(const TMCEta& orig) : TObject(orig) {
00372 m_Pt = orig.m_Pt;
00373 m_Eta = orig.m_Eta;
00374 m_Phi = orig.m_Phi;
00375 m_DecayMode = orig.m_DecayMode;
00376 m_Energy1 = orig.m_Energy1;
00377 m_Energy2 = orig.m_Energy2;
00378 m_TowerId1 = orig.m_TowerId1;
00379 m_TowerId2 = orig.m_TowerId2;
00380 m_Phi1 = orig.m_Phi1;
00381 m_Eta1 = orig.m_Eta1;
00382 m_Phi2 = orig.m_Phi2;
00383 m_Eta2 = orig.m_Eta2;
00384 m_Pi01Pt = orig.m_Pi01Pt;
00385 m_Pi01Eta = orig.m_Pi01Eta;
00386 m_Pi01Phi = orig.m_Pi01Phi;
00387 m_Pi02Pt = orig.m_Pi02Pt;
00388 m_Pi02Eta = orig.m_Pi02Eta;
00389 m_Pi02Phi = orig.m_Pi02Phi;
00390 m_Pi03Pt = orig.m_Pi03Pt;
00391 m_Pi03Eta = orig.m_Pi03Eta;
00392 m_Pi03Phi = orig.m_Pi03Phi;
00393
00394 }
00395
00396 void TMCEta::SetAll(Float_t data[21]) {
00397 m_Pt = data[0];
00398 m_Eta = data[1];
00399 m_Phi = data[2];
00400 m_DecayMode = ((Int_t) data[3]);
00401 m_Energy1 = data[4];
00402 m_Energy2 = data[5];
00403 m_TowerId1 = data[6];
00404 m_TowerId2 = data[7];
00405 m_Eta1 = data[8];
00406 m_Phi1 = data[9];
00407 m_Eta2 = data[10];
00408 m_Phi2 = data[11];
00409 m_Pi01Pt = data[12];
00410 m_Pi01Eta = data[13];
00411 m_Pi01Phi = data[14];
00412 m_Pi02Pt = data[15];
00413 m_Pi02Eta = data[16];
00414 m_Pi02Phi = data[17];
00415 m_Pi03Pt = data[18];
00416 m_Pi03Eta = data[19];
00417 m_Pi03Phi = data[20];
00418
00419 }