ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/Morgan/interface/TRootSuperCluster.h
(Generate patch)

Comparing UserCode/Morgan/interface/TRootSuperCluster.h (file contents):
Revision 1.5 by lethuill, Wed Mar 11 12:44:56 2009 UTC vs.
Revision 1.6 by lethuill, Wed Jun 10 11:17:06 2009 UTC

# Line 2 | Line 2
2   #define TRootSuperCluster_h
3  
4   /************************************************************************************************************************************
5 <        SuperCluster Type: ijk
6 <        i = algo =>  1=Island , 2=Hybrid, 3=multi5x5
7 <        j = detector => 1=ECAL Barrel , 2=ECAL Endcap
8 <        k = corrections => 0=nopreshower / uncorrected  ,  1=no preshower / standard CMSSW corections
9 <                                                           2=preshower / standard CMSSW corections  ,  3= preshower / uncorrected
10 <        
11 <        110 => Island Barrel SuperClusters
12 <        120 => Island Endcap SuperClusters
13 <        121 => Corrected Island Endcap SuperClusters (standard CMSSW corrections)
14 <        122 => Corrected Island Endcap SuperClusters with Preshower (standard CMSSW corrections)
15 <        210 => Hybrid Barrel SuperClusters
16 <        211 => Corrected Hybrid Barrel SuperClusters (standard CMSSW corrections)
17 <        320 => Multi5x5 Endcap SuperClusters
18 <        322 => Corrected Multi5x5 Endcap SuperClusters with Preshower (standard CMSSW corrections)
19 <        323 => Multi5x5 Endcap SuperClusters with Preshower
20 <                
5 >   SuperCluster Type: ijk
6 >   i = algo =>  1=Island , 2=Hybrid, 3=multi5x5
7 >   j = detector => 1=ECAL Barrel , 2=ECAL Endcap
8 >   k = corrections => 0=nopreshower / uncorrected  ,  1=no preshower / standard CMSSW corections
9 >                      2=preshower / standard CMSSW corections  ,  3= preshower / uncorrected
10 >
11 >   110 => Island Barrel SuperClusters
12 >   120 => Island Endcap SuperClusters
13 >   121 => Corrected Island Endcap SuperClusters (standard CMSSW corrections)
14 >   122 => Corrected Island Endcap SuperClusters with Preshower (standard CMSSW corrections)
15 >   210 => Hybrid Barrel SuperClusters
16 >   211 => Corrected Hybrid Barrel SuperClusters (standard CMSSW corrections)
17 >   320 => Multi5x5 Endcap SuperClusters
18 >   322 => Corrected Multi5x5 Endcap SuperClusters with Preshower (standard CMSSW corrections)
19 >   323 => Multi5x5 Endcap SuperClusters with Preshower
20 >
21   ************************************************************************************************************************************/
22  
23   #include <string>
# Line 32 | Line 32 | using namespace std;
32  
33   class TRootSuperCluster : public TRootCluster
34   {
35        
36 public:
37        
38        TRootSuperCluster() :
39                TRootCluster()
40                ,nBasicClusters_(0)
41                ,subClusterUID_()
42                ,subClusterIndex_()
43                ,seedClusterVectorIndex_(-1)
44                ,preshowerEnergy_(0.)
45                ,rawEnergy_(0.)
46                ,seedCluster_(0)
47                ,photon_(0)
48                ,electron_(0)
49                {;}
50
51        TRootSuperCluster(const TRootSuperCluster& cluster) :
52                TRootCluster(cluster)
53                ,nBasicClusters_(cluster.nBasicClusters_)
54                ,subClusterUID_(cluster.subClusterUID_)
55                ,subClusterIndex_(cluster.subClusterIndex_)
56                ,seedClusterVectorIndex_(cluster.seedClusterVectorIndex_)
57                ,preshowerEnergy_(cluster.preshowerEnergy_)
58                ,rawEnergy_(cluster.rawEnergy_)
59                ,seedCluster_(cluster.seedCluster_)
60                ,photon_(cluster.photon_)
61                ,electron_(cluster.photon_)
62                {;}
63
64        TRootSuperCluster(Double_t energy, Double_t eta, Double_t phi) :
65                TRootCluster(energy, eta, phi)
66                ,nBasicClusters_(0)
67                ,subClusterUID_()
68                ,subClusterIndex_()
69                ,seedClusterVectorIndex_(-1)
70                ,preshowerEnergy_(0.)
71                ,rawEnergy_(0.)
72                ,seedCluster_(0)
73                ,photon_(0)
74                ,electron_(0)
75                {;}
76
77        TRootSuperCluster(Double_t energy, Double_t eta, Double_t phi, Double_t x, Double_t y, Double_t z) :
78                TRootCluster(energy, eta, phi, x, y, z)
79                ,nBasicClusters_(0)
80                ,subClusterUID_()
81                ,subClusterIndex_()
82                ,seedClusterVectorIndex_(-1)
83                ,preshowerEnergy_(0.)
84                ,rawEnergy_(0.)
85                ,seedCluster_(0)
86                ,photon_(0)
87                ,electron_(0)
88                {;}
89
90        TRootSuperCluster(Double_t energy, Double_t eta, Double_t phi, Double_t x, Double_t y, Double_t z, Int_t det) :
91                TRootCluster(energy, eta, phi, x, y, z, det)
92                ,nBasicClusters_(0)
93                ,subClusterUID_()
94                ,subClusterIndex_()
95                ,seedClusterVectorIndex_(-1)
96                ,preshowerEnergy_(0.)
97                ,rawEnergy_(0.)
98                ,seedCluster_(0)
99                ,photon_(0)
100                ,electron_(0)
101                {;}
102
103        ~TRootSuperCluster() {;}
104
105        
106        Int_t nBasicClusters() const   { return nBasicClusters_; }
107        std::vector<Int_t> subClusterUID() const { return subClusterUID_; }
108        std::vector<Int_t> subClusterIndex() const { return subClusterIndex_; }
109        Int_t seedIndex() const
110        {
111                if( Int_t(subClusterIndex_.size())>seedClusterVectorIndex_)
112                {
113                        return subClusterIndex_.at(seedClusterVectorIndex_);
114                }
115                else
116                {
117                        cout << "No seed BasicCluster in this SuperCluster...." << endl;
118                        return -1;
119                }
120        }
121        
122        Float_t preshowerEnergy() const   { return preshowerEnergy_; }
123        Float_t rawEnergy() const   { return rawEnergy_; }
124        TObject* seedCluster() const  { return seedCluster_.GetObject();}
125        TObject* photon() const  { return photon_.GetObject();}
126        TObject* electron() const  { return electron_.GetObject();}
127        Bool_t isPhoton() const { return ( photon_.GetObject() == 0 ? false : true); }
128        Bool_t isElectron() const { return ( electron_.GetObject() == 0 ? false : true); }
129
130        void setNBasicClusters(Int_t nBasicClusters) { nBasicClusters_ = nBasicClusters; }
131        void addSubClusterUID(Int_t uid) { subClusterUID_.push_back(uid); }
132        void clearSubClusterUID() { subClusterUID_.clear(); }
133        void addSubClusterIndex(Int_t idx) { subClusterIndex_.push_back(idx); }
134        void clearSubClusterIndex() { subClusterIndex_.clear(); }
135        void setSeedClusterVectorIndex(Int_t  seedClusterVectorIndex) { seedClusterVectorIndex_ = seedClusterVectorIndex; }
136        void setPreshowerEnergy(Float_t preshowerEnergy) { preshowerEnergy_ = preshowerEnergy; }
137        void setRawEnergy(Float_t rawEnergy) { rawEnergy_ = rawEnergy; }
138        void setSeedCluster(TObject* seedCluster) { seedCluster_ = seedCluster; }
139        void setPhoton(TObject* photon) { photon_ = photon; }
140        void setElectron(TObject* electron) { electron_ = electron; }
141
142
143        friend std::ostream& operator<< (std::ostream& stream, const TRootSuperCluster& clus) {
144                stream << "TRootSuperCluster - Type=" << clus.det_ << "  (E,Et,eta,phi)=(" << clus.Mag() <<"," << clus.Pt() <<"," << clus.Eta() <<"," << clus.Phi() << ")"
145                                << " Calo position (x,y,z)=(" << clus.calX() << "," << clus.calY() << "," << clus.calZ() << ")"
146                                << " nBasicClusters=" << clus.nBasicClusters() << " e3x3=" << clus.e3x3() << " e5x5=" << clus.e5x5() << " eMax=" << clus.eMax()<< " e2nd=" << clus.e2nd()
147                                << " nXtals=" << clus.nXtals() << " preshowerEnergy=" << clus.preshowerEnergy() << " rawEnergy=" << clus.rawEnergy();
148                return stream;
149        };
150        
151        
152                
153 protected:
154        
155        Int_t nBasicClusters_;
156        std::vector<Int_t> subClusterUID_;
157        std::vector<Int_t> subClusterIndex_;
158        Int_t seedClusterVectorIndex_; // position in subClusterIndex_ vector containing the index of the seed basic cluster in the TRootBasicCluster array
159        Float_t preshowerEnergy_;
160        Float_t rawEnergy_;
161        TRef seedCluster_;
162        TRef photon_;
163        TRef electron_;
35  
36 <        
37 <        ClassDef (TRootSuperCluster,5);
36 >   public:
37 >
38 >      TRootSuperCluster() :
39 >      TRootCluster()
40 >      ,nBasicClusters_(0)
41 >      ,subClusterUID_()
42 >      ,subClusterIndex_()
43 >      ,seedClusterVectorIndex_(-1)
44 >      ,preshowerEnergy_(0.)
45 >      ,rawEnergy_(0.)
46 >      ,seedCluster_(0)
47 >      ,photon_(0)
48 >      ,electron_(0)
49 >      {;}
50 >
51 >      TRootSuperCluster(const TRootSuperCluster& cluster) :
52 >      TRootCluster(cluster)
53 >      ,nBasicClusters_(cluster.nBasicClusters_)
54 >      ,subClusterUID_(cluster.subClusterUID_)
55 >      ,subClusterIndex_(cluster.subClusterIndex_)
56 >      ,seedClusterVectorIndex_(cluster.seedClusterVectorIndex_)
57 >      ,preshowerEnergy_(cluster.preshowerEnergy_)
58 >      ,rawEnergy_(cluster.rawEnergy_)
59 >      ,seedCluster_(cluster.seedCluster_)
60 >      ,photon_(cluster.photon_)
61 >      ,electron_(cluster.photon_)
62 >      {;}
63 >
64 >      TRootSuperCluster(Double_t energy, Double_t eta, Double_t phi) :
65 >      TRootCluster(energy, eta, phi)
66 >      ,nBasicClusters_(0)
67 >      ,subClusterUID_()
68 >      ,subClusterIndex_()
69 >      ,seedClusterVectorIndex_(-1)
70 >      ,preshowerEnergy_(0.)
71 >      ,rawEnergy_(0.)
72 >      ,seedCluster_(0)
73 >      ,photon_(0)
74 >      ,electron_(0)
75 >      {;}
76 >
77 >      TRootSuperCluster(Double_t energy, Double_t eta, Double_t phi, Double_t x, Double_t y, Double_t z) :
78 >      TRootCluster(energy, eta, phi, x, y, z)
79 >      ,nBasicClusters_(0)
80 >      ,subClusterUID_()
81 >      ,subClusterIndex_()
82 >      ,seedClusterVectorIndex_(-1)
83 >      ,preshowerEnergy_(0.)
84 >      ,rawEnergy_(0.)
85 >      ,seedCluster_(0)
86 >      ,photon_(0)
87 >      ,electron_(0)
88 >      {;}
89 >
90 >      TRootSuperCluster(Double_t energy, Double_t eta, Double_t phi, Double_t x, Double_t y, Double_t z, Int_t det) :
91 >      TRootCluster(energy, eta, phi, x, y, z, det)
92 >      ,nBasicClusters_(0)
93 >      ,subClusterUID_()
94 >      ,subClusterIndex_()
95 >      ,seedClusterVectorIndex_(-1)
96 >      ,preshowerEnergy_(0.)
97 >      ,rawEnergy_(0.)
98 >      ,seedCluster_(0)
99 >      ,photon_(0)
100 >      ,electron_(0)
101 >      {;}
102 >
103 >      ~TRootSuperCluster() {;}
104 >
105 >
106 >      Int_t nBasicClusters() const   { return nBasicClusters_; }
107 >      std::vector<Int_t> subClusterUID() const { return subClusterUID_; }
108 >      std::vector<Int_t> subClusterIndex() const { return subClusterIndex_; }
109 >      Int_t seedIndex() const
110 >      {
111 >         if( Int_t(subClusterIndex_.size())>seedClusterVectorIndex_)
112 >         {
113 >            return subClusterIndex_.at(seedClusterVectorIndex_);
114 >         }
115 >         else
116 >         {
117 >            cout << "No seed BasicCluster in this SuperCluster...." << endl;
118 >            return -1;
119 >         }
120 >      }
121 >
122 >      Float_t preshowerEnergy() const   { return preshowerEnergy_; }
123 >      Float_t rawEnergy() const   { return rawEnergy_; }
124 >      TObject* seedCluster() const  { return seedCluster_.GetObject();}
125 >      TObject* photon() const  { return photon_.GetObject();}
126 >      TObject* electron() const  { return electron_.GetObject();}
127 >      Bool_t isPhoton() const { return ( photon_.GetObject() == 0 ? false : true); }
128 >      Bool_t isElectron() const { return ( electron_.GetObject() == 0 ? false : true); }
129 >
130 >      void setNBasicClusters(Int_t nBasicClusters) { nBasicClusters_ = nBasicClusters; }
131 >      void addSubClusterUID(Int_t uid) { subClusterUID_.push_back(uid); }
132 >      void clearSubClusterUID() { subClusterUID_.clear(); }
133 >      void addSubClusterIndex(Int_t idx) { subClusterIndex_.push_back(idx); }
134 >      void clearSubClusterIndex() { subClusterIndex_.clear(); }
135 >      void setSeedClusterVectorIndex(Int_t  seedClusterVectorIndex) { seedClusterVectorIndex_ = seedClusterVectorIndex; }
136 >      void setPreshowerEnergy(Float_t preshowerEnergy) { preshowerEnergy_ = preshowerEnergy; }
137 >      void setRawEnergy(Float_t rawEnergy) { rawEnergy_ = rawEnergy; }
138 >      void setSeedCluster(TObject* seedCluster) { seedCluster_ = seedCluster; }
139 >      void setPhoton(TObject* photon) { photon_ = photon; }
140 >      void setElectron(TObject* electron) { electron_ = electron; }
141 >
142 >
143 >      friend std::ostream& operator<< (std::ostream& stream, const TRootSuperCluster& clus) {
144 >         stream << "TRootSuperCluster - Type=" << clus.det_ << "  (E,Et,eta,phi)=(" << clus.Mag() <<"," << clus.Pt() <<"," << clus.Eta() <<"," << clus.Phi() << ")"
145 >         << " Calo position (x,y,z)=(" << clus.calX() << "," << clus.calY() << "," << clus.calZ() << ")"
146 >         << " nBasicClusters=" << clus.nBasicClusters() << " e3x3=" << clus.e3x3() << " e5x5=" << clus.e5x5() << " eMax=" << clus.eMax()<< " e2nd=" << clus.e2nd()
147 >         << " nXtals=" << clus.nXtals() << " preshowerEnergy=" << clus.preshowerEnergy() << " rawEnergy=" << clus.rawEnergy();
148 >         return stream;
149 >      };
150 >
151 >
152 >   protected:
153 >
154 >      Int_t nBasicClusters_;
155 >      std::vector<Int_t> subClusterUID_;
156 >      std::vector<Int_t> subClusterIndex_;
157 >      Int_t seedClusterVectorIndex_; // position in subClusterIndex_ vector containing the index of the seed basic cluster in the TRootBasicCluster array
158 >      Float_t preshowerEnergy_;
159 >      Float_t rawEnergy_;
160 >      TRef seedCluster_;
161 >      TRef photon_;
162 >      TRef electron_;
163 >
164 >      ClassDef (TRootSuperCluster,5);
165 >
166   };
167  
168   #endif

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines