3 |
|
// |
4 |
|
// SuperCluster |
5 |
|
// |
6 |
< |
// Details to be worked out... |
6 |
> |
// This class holds the super cluster information. |
7 |
|
// |
8 |
|
// Authors: S.Xie |
9 |
|
//-------------------------------------------------------------------------------------------------- |
15 |
|
#include "MitAna/DataTree/interface/DataObject.h" |
16 |
|
#include "MitAna/DataTree/interface/BasicCluster.h" |
17 |
|
#include "MitAna/DataCont/interface/RefArray.h" |
18 |
+ |
#include "MitAna/DataCont/interface/Ref.h" |
19 |
|
|
20 |
|
namespace mithep |
21 |
|
{ |
22 |
|
class SuperCluster : public DataObject |
23 |
|
{ |
24 |
|
public: |
25 |
< |
SuperCluster() : fEnergy(0.0), fPoint(0,0,0) , fRawEnergy(-1.0) {} |
26 |
< |
~SuperCluster() {} |
25 |
> |
SuperCluster() : fEnergy(0), fEtaWidth(0), fPreshowerEnergy(0), |
26 |
> |
fPhiWidth(0), fRawEnergy(0) {} |
27 |
|
|
28 |
|
const BasicCluster *Cluster(UInt_t i) const { return fClusters.At(i); } |
29 |
|
UInt_t ClusterSize() const { return fClusters.GetEntries(); } |
30 |
|
Double_t Energy() const { return fEnergy; } |
31 |
|
Double_t Eta() const { return fPoint.Eta(); } |
32 |
|
Double_t EtaWidth() const { return fEtaWidth; } |
33 |
+ |
EObjType ObjType() const { return kSuperCluster; } |
34 |
|
Double_t Phi() const { return fPoint.Phi(); } |
35 |
|
Double_t PhiWidth() const { return fPhiWidth; } |
36 |
+ |
void Print(Option_t *opt="") const; |
37 |
|
Double_t PreshowerEnergy() const { return fPreshowerEnergy; } |
38 |
|
Double_t RawEnergy() const { return fRawEnergy; } |
39 |
< |
const BasicCluster *Seed() const; |
39 |
> |
const BasicCluster *Seed() const { return fSeedRef.Obj(); } |
40 |
|
Double_t X() const { return fPoint.X(); } |
41 |
|
Double_t Y() const { return fPoint.Y(); } |
42 |
|
Double_t Z() const { return fPoint.Z(); } |
43 |
< |
void Print(Option_t *opt="") const; |
44 |
< |
|
45 |
< |
void AddCluster( BasicCluster *Cluster) { fClusters.Add(Cluster); } |
46 |
< |
void SetEnergy(Double_t Energy) { fEnergy = Energy; } |
47 |
< |
void SetEtaWidth(Double_t EtaWidth) { fEtaWidth = EtaWidth; } |
48 |
< |
void SetPhiWidth(Double_t PhiWidth) { fPhiWidth = PhiWidth; } |
49 |
< |
void SetPreshowerEnergy(Double_t PreshowerEnergy) { fPreshowerEnergy |
47 |
< |
= PreshowerEnergy; } |
48 |
< |
void SetRawEnergy(Double_t RawEnergy) { fRawEnergy = RawEnergy; } |
49 |
< |
void SetSeed( BasicCluster* SeedRef) { fSeedRef = SeedRef; } |
43 |
> |
void AddCluster(const BasicCluster *c) { fClusters.Add(c); } |
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 |
< |
|
54 |
< |
Double_t fEnergy; //Supercluster energy |
55 |
< |
Double_t fEtaWidth; //Width in Phi |
56 |
< |
ThreeVector fPoint; //Centroid Position |
57 |
< |
Double_t fPreshowerEnergy; //Energy in the preshower |
58 |
< |
Double_t fPhiWidth; //Width in Phi |
59 |
< |
Double_t fRawEnergy; //Supercluster raw energy |
60 |
< |
RefArray<BasicCluster> fClusters; //||BasicClusters in this SuperCluster |
61 |
< |
TRef fSeedRef; //the seed cluster |
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 |
> |
Ref<BasicCluster> fSeedRef; //seed cluster |
61 |
|
|
62 |
< |
ClassDef(SuperCluster, 1) // Generic particle class |
62 |
> |
ClassDef(SuperCluster, 1) // Super cluster class |
63 |
|
}; |
64 |
|
} |
65 |
|
|
67 |
– |
//-------------------------------------------------------------------------------------------------- |
68 |
– |
inline const mithep::BasicCluster *mithep::SuperCluster::Seed() const |
69 |
– |
{ |
70 |
– |
// Return tracker track. |
71 |
– |
|
72 |
– |
return static_cast<const BasicCluster*>(fSeedRef.GetObject()); |
73 |
– |
} |
66 |
|
#endif |