12 |
|
#define MITANA_DATATREE_SUPERCLUSTER_H |
13 |
|
|
14 |
|
#include <TMath.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/DataCont/interface/RefArray.h" |
19 |
+ |
#include "MitAna/DataCont/interface/Ref.h" |
20 |
|
|
21 |
|
namespace mithep |
22 |
|
{ |
25 |
|
public: |
26 |
|
SuperCluster() : fEnergy(0), fEtaWidth(0), fPreshowerEnergy(0), |
27 |
|
fPhiWidth(0), fRawEnergy(0) {} |
26 |
– |
~SuperCluster() {} |
28 |
|
|
29 |
< |
const BasicCluster *Cluster(UInt_t i) const { return fClusters.At(i); } |
30 |
< |
UInt_t ClusterSize() const { return fClusters.GetEntries(); } |
31 |
< |
Double_t Energy() const { return fEnergy; } |
32 |
< |
Double_t Eta() const { return fPoint.Eta(); } |
33 |
< |
Double_t EtaWidth() const { return fEtaWidth; } |
34 |
< |
EObjType ObjType() const { return kSuperCluster; } |
35 |
< |
Double_t Phi() const { return fPoint.Phi(); } |
36 |
< |
Double_t PhiWidth() const { return fPhiWidth; } |
37 |
< |
void Print(Option_t *opt="") const; |
38 |
< |
Double_t PreshowerEnergy() const { return fPreshowerEnergy; } |
39 |
< |
Double_t RawEnergy() const { return fRawEnergy; } |
40 |
< |
const BasicCluster *Seed() const; |
41 |
< |
Double_t X() const { return fPoint.X(); } |
42 |
< |
Double_t Y() const { return fPoint.Y(); } |
43 |
< |
Double_t Z() const { return fPoint.Z(); } |
44 |
< |
void AddCluster(const BasicCluster *c) { fClusters.Add(c); } |
45 |
< |
void SetEnergy(Double_t energy) { fEnergy = energy; } |
46 |
< |
void SetEtaWidth(Double_t etaWidth) { fEtaWidth = etaWidth; } |
47 |
< |
void SetPhiWidth(Double_t phiWidth) { fPhiWidth = phiWidth; } |
48 |
< |
void SetPreshowerEnergy(Double_t e) { fPreshowerEnergy = e; } |
49 |
< |
void SetRawEnergy(Double_t rawEnergy) { fRawEnergy = rawEnergy; } |
50 |
< |
void SetSeed(const BasicCluster *s) |
50 |
< |
{ fSeedRef = const_cast<BasicCluster*>(s); } |
51 |
< |
void SetXYZ(Double_t x, Double_t y, Double_t z) { fPoint.SetXYZ(x,y,z); } |
29 |
> |
void AddCluster(const BasicCluster *c) { fClusters.Add(c); } |
30 |
> |
const BasicCluster *Cluster(UInt_t i) const { return fClusters.At(i); } |
31 |
> |
UInt_t ClusterSize() const { return fClusters.Entries(); } |
32 |
> |
Double_t Energy() const { return fEnergy; } |
33 |
> |
Double_t Eta() const { return fPoint.Eta(); } |
34 |
> |
Double_t EtaWidth() const { return fEtaWidth; } |
35 |
> |
EObjType ObjType() const { return kSuperCluster; } |
36 |
> |
Double_t Phi() const { return fPoint.Phi(); } |
37 |
> |
Double_t PhiWidth() const { return fPhiWidth; } |
38 |
> |
ThreeVectorC Point() const { return fPoint.V(); } |
39 |
> |
void Print(Option_t *opt="") const; |
40 |
> |
Double_t PreshowerEnergy() const { return fPreshowerEnergy; } |
41 |
> |
Double_t RawEnergy() const { return fRawEnergy; } |
42 |
> |
Double_t Rho() const { return fPoint.Rho(); } |
43 |
> |
const BasicCluster *Seed() const { return fSeedRef.Obj(); } |
44 |
> |
void SetEnergy(Double_t energy) { fEnergy = energy; } |
45 |
> |
void SetEtaWidth(Double_t etaWidth) { fEtaWidth = etaWidth; } |
46 |
> |
void SetPhiWidth(Double_t phiWidth) { fPhiWidth = phiWidth; } |
47 |
> |
void SetPreshowerEnergy(Double_t e) { fPreshowerEnergy = e; } |
48 |
> |
void SetRawEnergy(Double_t rawEnergy) { fRawEnergy = rawEnergy; } |
49 |
> |
void SetSeed(const BasicCluster *s) { fSeedRef = s; } |
50 |
> |
void SetXYZ(Double_t x, Double_t y, Double_t z) { fPoint.SetXYZ(x,y,z); } |
51 |
|
|
52 |
|
protected: |
53 |
< |
Double32_t fEnergy; //super cluster energy |
54 |
< |
Double32_t fEtaWidth; //width in Phi |
55 |
< |
ThreeVector32 fPoint; //centroid Position |
56 |
< |
Double32_t fPreshowerEnergy; //energy in the preshower |
57 |
< |
Double32_t fPhiWidth; //width in Phi |
58 |
< |
Double32_t fRawEnergy; //super cluster raw energy |
59 |
< |
RefArray<BasicCluster,1024> fClusters; //assigned basic clusters |
60 |
< |
TRef fSeedRef; //seed cluster |
53 |
> |
Vect3C fPoint; //centroid Position |
54 |
> |
Double32_t fEnergy; //[0,0,14]super cluster energy |
55 |
> |
Double32_t fEtaWidth; //[0,0,14]width in Phi |
56 |
> |
Double32_t fPreshowerEnergy; //[0,0,14]energy in the preshower |
57 |
> |
Double32_t fPhiWidth; //[0,0,14]width in Phi |
58 |
> |
Double32_t fRawEnergy; //[0,0,14]super cluster raw energy |
59 |
> |
RefArray<BasicCluster> fClusters; //assigned basic clusters |
60 |
> |
Ref<BasicCluster> fSeedRef; //seed cluster |
61 |
|
|
62 |
|
ClassDef(SuperCluster, 1) // Super cluster class |
63 |
|
}; |
64 |
|
} |
66 |
– |
|
67 |
– |
//-------------------------------------------------------------------------------------------------- |
68 |
– |
inline const mithep::BasicCluster *mithep::SuperCluster::Seed() const |
69 |
– |
{ |
70 |
– |
// Return basic cluster seed. |
71 |
– |
|
72 |
– |
return static_cast<const BasicCluster*>(fSeedRef.GetObject()); |
73 |
– |
} |
65 |
|
#endif |