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.3 by lethuill, Tue Nov 18 13:57:10 2008 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                        ,preshowerEnergy_(0.)
44                        ,rawEnergy_(0.)
45                        ,photon_()
46                        ,electron_()
47                        {;}
48                
49        TRootSuperCluster(const TRootSuperCluster& cluster) :
50                        TRootCluster(cluster)
51                        ,nBasicClusters_(cluster.nBasicClusters_)
52                        ,subClusterUID_(cluster.subClusterUID_)
53                        ,subClusterIndex_(cluster.subClusterIndex_)
54                        ,preshowerEnergy_(cluster.preshowerEnergy_)
55                        ,rawEnergy_(cluster.rawEnergy_)
56                        ,photon_(cluster.photon_)
57                        ,electron_(cluster.photon_)
58                        {;}
59                        
60        TRootSuperCluster(Double_t energy, Double_t eta, Double_t phi) :
61                        TRootCluster(energy, eta, phi)
62                        ,nBasicClusters_(0)
63                        ,subClusterUID_()
64                        ,subClusterIndex_()
65                        ,preshowerEnergy_(0.)
66                        ,rawEnergy_(0.)
67                        ,photon_()
68                        ,electron_()
69                        {;}
70                        
71        TRootSuperCluster(Double_t energy, Double_t eta, Double_t phi, Double_t x, Double_t y, Double_t z) :
72                        TRootCluster(energy, eta, phi, x, y, z)
73                        ,nBasicClusters_(0)
74                        ,subClusterUID_()
75                        ,subClusterIndex_()
76                        ,preshowerEnergy_(0.)
77                        ,rawEnergy_(0.)
78                        ,photon_()
79                        ,electron_()
80                        {;}
81                        
82        TRootSuperCluster(Double_t energy, Double_t eta, Double_t phi, Double_t x, Double_t y, Double_t z, Int_t det) :
83                        TRootCluster(energy, eta, phi, x, y, z, det)
84                        ,nBasicClusters_(0)
85                        ,subClusterUID_()
86                        ,subClusterIndex_()
87                        ,preshowerEnergy_(0.)
88                        ,rawEnergy_(0.)
89                        ,photon_()
90                        ,electron_()
91                        {;}
92                                                
93        ~TRootSuperCluster() {;}
94
95        
96        Int_t nBasicClusters() const   { return nBasicClusters_; }
97        std::vector<Int_t> subClusterUID() const { return subClusterUID_; }
98        std::vector<Int_t> subClusterIndex() const { return subClusterIndex_; }
99        Int_t seedIndex() const
100        {
101                if(subClusterIndex_.size()>0)
102                {
103                        return subClusterIndex_.at(0);
104                }
105                else
106                {
107                        cout << "No seed BasicCluster in this SuperCluster...." << endl;
108                        return 0;
109                }
110        }
111        
112        Float_t preshowerEnergy() const   { return preshowerEnergy_; }
113        Float_t rawEnergy() const   { return rawEnergy_; }
114        TObject* photon() const  { return photon_.GetObject();}
115        TObject* electron() const  { return electron_.GetObject();}
116        Bool_t isPhoton() const { return ( photon_.GetObject() == 0 ? false : true); }
117        Bool_t isElectron() const { return ( electron_.GetObject() == 0 ? false : true); }
118
119        void setNBasicClusters(Int_t nBasicClusters) { nBasicClusters_ = nBasicClusters; }
120        void addSubClusterUID(Int_t uid) { subClusterUID_.push_back(uid); }
121        void clearSubClusterUID() { subClusterUID_.clear(); }
122        void addSubClusterIndex(Int_t idx) { subClusterIndex_.push_back(idx); }
123        void clearSubClusterIndex() { subClusterIndex_.clear(); }
124        void setPreshowerEnergy(Float_t preshowerEnergy) { preshowerEnergy_ = preshowerEnergy; }
125        void setRawEnergy(Float_t rawEnergy) { rawEnergy_ = rawEnergy; }
126        void setPhoton(TObject* photon) { photon_ = photon; }
127        void setElectron(TObject* electron) { electron_ = electron; }
128
129
130        friend std::ostream& operator<< (std::ostream& stream, const TRootSuperCluster& clus) {
131                stream << "TRootSuperCluster - Type=" << clus.det_ << "  (E,Et,eta,phi)=(" << clus.Mag() <<"," << clus.Pt() <<"," << clus.Eta() <<"," << clus.Phi() << ")"
132                                << " Calo position (x,y,z)=(" << clus.calX() << "," << clus.calY() << "," << clus.calZ() << ")"
133                                << " nBasicClusters=" << clus.nBasicClusters() << " e3x3=" << clus.e3x3() << " e5x5=" << clus.e5x5() << " eMax=" << clus.eMax()<< " e2nd=" << clus.e2nd()
134                                << " nXtals=" << clus.nXtals() << " preshowerEnergy=" << clus.preshowerEnergy() << " rawEnergy=" << clus.rawEnergy();
135                return stream;
136        };
137        
138        
139                
140 protected:
141        
142        Int_t nBasicClusters_;
143        std::vector<Int_t> subClusterUID_;
144        std::vector<Int_t> subClusterIndex_;
145        Float_t preshowerEnergy_;
146        Float_t rawEnergy_;
147        TRef photon_;
148        TRef electron_;
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 +   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  
151        ClassDef (TRootSuperCluster,4);
166   };
167  
168   #endif

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines