5 |
|
// |
6 |
|
// This class holds the super cluster information. |
7 |
|
// |
8 |
< |
// Authors: S.Xie |
8 |
> |
// Authors: C.Paus, J.Bendavid, S.Xie |
9 |
|
//-------------------------------------------------------------------------------------------------- |
10 |
|
|
11 |
|
#ifndef MITANA_DATATREE_SUPERCLUSTER_H |
15 |
|
#include "MitCommon/DataFormats/interface/Vect3C.h" |
16 |
|
#include "MitAna/DataTree/interface/DataObject.h" |
17 |
|
#include "MitAna/DataTree/interface/BasicCluster.h" |
18 |
+ |
#include "MitAna/DataTree/interface/PsCluster.h" |
19 |
|
#include "MitAna/DataTree/interface/CaloTower.h" |
20 |
|
#include "MitAna/DataCont/interface/RefArray.h" |
21 |
|
#include "MitAna/DataCont/interface/Ref.h" |
30 |
|
fEtaC(-99.), fEtaS(-99.), fEtaM(-99.), |
31 |
|
fPhiC(-99.), fPhiS(-99.), fPhiM(-99.), |
32 |
|
fXC(-99.), fXS(-99.), fXM(-99.), fXZ(-99.), |
33 |
< |
fYC(-99.), fYS(-99.), fYM(-99.), fYZ(-99.) {} |
33 |
> |
fYC(-99.), fYS(-99.), fYM(-99.), fYZ(-99.), |
34 |
> |
fPreshowerEnergyPlane1(0.), fPreshowerEnergyPlane2(0.), |
35 |
> |
fPsEffWidthSigmaXX(-99.), fPsEffWidthSigmaYY(-99.) {} |
36 |
|
|
37 |
|
void AddCluster(const BasicCluster *c) { fClusters.Add(c); } |
38 |
+ |
void AddPsClust(const PsCluster *c) { fPsClusts.Add(c); } |
39 |
|
void AddTower(const CaloTower *t) { fCaloTowers.Add(t); } |
40 |
|
const BasicCluster *Cluster(UInt_t i) const { return fClusters.At(i); } |
41 |
|
UInt_t ClusterSize() const { return fClusters.Entries(); } |
42 |
|
UInt_t NClusters() const { return fClusters.Entries(); } |
43 |
|
UInt_t NHits() const; |
44 |
+ |
const PsCluster *PsClust(UInt_t i) const { return fPsClusts.At(i); } |
45 |
+ |
UInt_t NPsClusts() const { return fPsClusts.Entries(); } |
46 |
|
Int_t Compare(const TObject *o) const; |
47 |
|
Double_t Energy() const { return fEnergy; } |
48 |
|
Double_t Et() const; |
65 |
|
ThreeVectorC Point() const { return fPoint.V(); } |
66 |
|
void Print(Option_t *opt="") const; |
67 |
|
Double_t PreshowerEnergy() const { return fPreshowerEnergy; } |
68 |
+ |
Double_t PreshowerEnergyPlane1() const { return fPreshowerEnergyPlane1; } |
69 |
+ |
Double_t PreshowerEnergyPlane2() const { return fPreshowerEnergyPlane2; } |
70 |
|
Double_t RawEnergy() const { return fRawEnergy; } |
71 |
|
Double_t Rho() const { return fPoint.Rho(); } |
72 |
|
Double_t R9() const { return fSeedRef.Obj()->E3x3()/fRawEnergy; } |
86 |
|
Double_t YS() const { return fYS; } |
87 |
|
Double_t YM() const { return fYM; } |
88 |
|
Double_t YZ() const { return fYZ; } |
89 |
+ |
Double_t Time() const { return fTime; } |
90 |
+ |
Double_t SeedTime() const { return fSeedTime; } |
91 |
+ |
Double_t PsEffWidthSigmaXX() const { return fPsEffWidthSigmaXX; } |
92 |
+ |
Double_t PsEffWidthSigmaYY() const { return fPsEffWidthSigmaYY; } |
93 |
+ |
|
94 |
|
void SetEnergy(Double_t energy) { fEnergy = energy; } |
95 |
|
void SetEtaWidth(Double_t etaWidth) { fEtaWidth = etaWidth; } |
96 |
|
void SetPhiWidth(Double_t phiWidth) { fPhiWidth = phiWidth; } |
97 |
|
void SetPreshowerEnergy(Double_t e) { fPreshowerEnergy = e; } |
98 |
+ |
void SetPreshowerEnergyPlane1(Double_t e) { fPreshowerEnergyPlane1 = e; } |
99 |
+ |
void SetPreshowerEnergyPlane2(Double_t e) { fPreshowerEnergyPlane2 = e; } |
100 |
|
void SetRawEnergy(Double_t rawEnergy) { fRawEnergy = rawEnergy; } |
101 |
|
void SetHcalDepth1Energy(Double_t x) { fHcalDepth1Energy = x; } |
102 |
|
void SetHcalDepth2Energy(Double_t x) { fHcalDepth2Energy = x; } |
116 |
|
void SetYS(Double_t x) { fYS = x; } |
117 |
|
void SetYM(Double_t x) { fYM = x; } |
118 |
|
void SetYZ(Double_t x) { fYZ = x; } |
119 |
+ |
void SetTime(Double_t x) { fTime = x; } |
120 |
+ |
void SetSeedTime(Double_t x) { fSeedTime = x; } |
121 |
+ |
void SetPsEffWidthSigmaXX(Double_t x) { fPsEffWidthSigmaXX = x; } |
122 |
+ |
void SetPsEffWidthSigmaYY(Double_t x) { fPsEffWidthSigmaYY = x; } |
123 |
|
|
124 |
|
// Some structural tools |
125 |
|
void Mark(UInt_t i=1) const; |
150 |
|
Double32_t fYS; //local coordinates |
151 |
|
Double32_t fYM; //local coordinates |
152 |
|
Double32_t fYZ; //local coordinates |
153 |
+ |
Double32_t fTime; //ecal timing (weighted average) |
154 |
+ |
Double32_t fSeedTime; //ecal timing (seed crystal) |
155 |
+ |
|
156 |
+ |
Double32_t fPreshowerEnergyPlane1; //local coordinates |
157 |
+ |
Double32_t fPreshowerEnergyPlane2; //local coordinates |
158 |
+ |
Double32_t fPsEffWidthSigmaXX; //preshower cluster width in x plane |
159 |
+ |
Double32_t fPsEffWidthSigmaYY; //preshower cluster width in y plane |
160 |
+ |
RefArray<PsCluster> fPsClusts; //assigned preshower clusters |
161 |
|
|
162 |
< |
ClassDef(SuperCluster, 4) // Super cluster class |
162 |
> |
ClassDef(SuperCluster, 5) // Super cluster class |
163 |
|
}; |
164 |
|
} |
165 |
|
|
172 |
|
if (fSeedRef.IsValid()) |
173 |
|
fSeedRef.Obj()->Mark(ib); |
174 |
|
fClusters .Mark(ib); |
175 |
+ |
fPsClusts .Mark(ib); |
176 |
|
fCaloTowers.Mark(ib); |
177 |
|
} |
178 |
|
|