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.1 by mlethuil, Mon May 19 16:12:13 2008 UTC vs.
Revision 1.5 by lethuill, Wed Mar 11 12:44:56 2009 UTC

# Line 3 | Line 3
3  
4   /************************************************************************************************************************************
5          SuperCluster Type: ijk
6 <        i = algo =>  1=Island , 2=Hybrid
6 >        i = algo =>  1=Island , 2=Hybrid, 3=multi5x5
7          j = detector => 1=ECAL Barrel , 2=ECAL Endcap
8 <        k = corrections => 0=uncorrected , 1=standard CMSSW corections , 2=standard CMSSW corections + Preshower
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
# Line 13 | Line 14
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 <
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>
24   #include <iostream>
25 + #include <vector>
26  
27   #include "Rtypes.h"
28  
# Line 30 | Line 35 | class TRootSuperCluster : public TRootCl
35          
36   public:
37          
38 <        TRootSuperCluster() : TRootCluster(), nBasicClusters_(0), subClusterUID_(), subClusterIndex_() {;}
39 <        TRootSuperCluster(const TRootSuperCluster& cluster) : TRootCluster(cluster), nBasicClusters_(cluster.nBasicClusters_), subClusterUID_(cluster.subClusterUID_), subClusterIndex_(cluster.subClusterIndex_) {;}
40 <        TRootSuperCluster(Double_t energy, Double_t eta, Double_t phi) : TRootCluster(energy, eta, phi), nBasicClusters_(0), subClusterUID_(), subClusterIndex_() {;}
41 <        TRootSuperCluster(Double_t energy, Double_t eta, Double_t phi, Double_t x, Double_t y, Double_t z) : TRootCluster(energy, eta, phi, x, y, z), nBasicClusters_(0), subClusterUID_(), subClusterIndex_() {;}
42 <        TRootSuperCluster(Double_t energy, Double_t eta, Double_t phi, Double_t x, Double_t y, Double_t z, Int_t det) : TRootCluster(energy, eta, phi, x, y, z, det), nBasicClusters_(0), subClusterUID_(), subClusterIndex_() {;}
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
109 >        Int_t seedIndex() const
110          {
111 <                if(subClusterIndex_.size()>0)
112 <                {
113 <                        return subClusterIndex_.at(0);
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 0;
119 <                }
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() << " nXtals=" << clus.nXtals();
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          
# Line 75 | Line 155 | protected:
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_;
164  
165 <
166 <        ClassDef (TRootSuperCluster,1);
165 >        
166 >        ClassDef (TRootSuperCluster,5);
167   };
168  
169   #endif

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines