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

Comparing UserCode/Morgan/interface/TRootEvent.h (file contents):
Revision 1.8 by lethuill, Tue Dec 16 14:17:22 2008 UTC vs.
Revision 1.11 by lethuill, Wed Jun 10 11:17:05 2009 UTC

# Line 10 | Line 10
10   #include "Rtypes.h"
11   #include "TObject.h"
12   #include "TVector3.h"
13 + #include "TRef.h"
14 +
15 + #include "../interface/TRootVertex.h"
16  
17   using namespace std;
18  
19   class TRootEvent : public TObject
20   {
18        
19 public:
20        
21        TRootEvent() :
22                        nb_(0)
23                        ,passGlobalL1_(false)
24                        ,passGlobalHLT_(false)
25                        ,trigHLT_(0)
26                        ,csa07id_(-1)
27                        ,csa07weight_(-1.)
28                        ,csa07process_()
29                        ,nBasicClusters_()
30                        ,nSuperClusters_()
31                        ,primaryVertex_(0)
32                        ,idParton1_(-1)
33                        ,xParton1_(-1.)
34                        ,idParton2_(-1)
35                        ,xParton2_(-1.)
36                        ,factorizationScale_(-1.)
37                        {;}
38
39        ~TRootEvent() {;}
40                
41        // Event number
42        Int_t nb() const { return nb_; }
43        
44        // Trigger decision
45        Int_t passGlobalL1() const { return passGlobalL1_; }
46        Bool_t passGlobalHLT() const { return passGlobalHLT_; }
47        unsigned int nHLTPaths() const { return trigHLT_.size(); }
48        std::vector<Bool_t> trigHLT() const { return trigHLT_; }
49        Bool_t trigHLT(unsigned int i) const
50        {
51                 if (trigHLT_.size()>i)
52                 {
53                        return trigHLT_.at(i);
54                 }
55                 else
56                 {
57                         cout << "HLT path " << i << " not found" << endl;
58                         return false;
59                 }
60        }
61
62        // CSA07 Process Id and Event Weight
63        Int_t csa07id() const { return csa07id_; }
64        Float_t csa07weight() const { return csa07weight_; }
65        TString csa07process() const { return csa07process_; }
66        
67        // Nb of primary vertices
68        unsigned nPrimaryVertices() const { return primaryVertex_.size(); }
69        
70        // Nb of BasicClusters of a given type
71        Int_t nBasicClusters(Int_t type)
72        {
73                map<Int_t,Int_t>::iterator it=nBasicClusters_.find(type);
74                return ( it ==nBasicClusters_.end() ? 0 : (*it).second );
75        }
76        
77        // Nb of SuperClusters of a given type
78        Int_t nSuperClusters(Int_t type)
79        {
80                map<Int_t,Int_t>::iterator it=nSuperClusters_.find(type);
81                return ( it ==nSuperClusters_.end() ? 0 : (*it).second );
82        }
83        
84        
85        // Primary Vertex as 3-vector
86        TVector3 primaryVertex() const { return (primaryVertex_.size()>0 ?  primaryVertex_.at(0) : TVector3(0.,0.,0.) ); }
87        TVector3 primaryVertex(unsigned i) const { return (primaryVertex_.size()>i ?  primaryVertex_.at(i) : TVector3(0.,0.,0.) ); }
88        // x, y, z of Primary Vertex
89        Double_t primaryVertex_x() const { return (primaryVertex_.size()>0 ?  primaryVertex_.at(0).x() : 0. ); }
90        Double_t primaryVertex_y() const { return (primaryVertex_.size()>0 ?  primaryVertex_.at(0).y() : 0. ); }
91        Double_t primaryVertex_z() const { return (primaryVertex_.size()>0 ?  primaryVertex_.at(0).z() : 0. ); }
92        Double_t primaryVertex_x(unsigned i) const { return (primaryVertex_.size()>i ?  primaryVertex_.at(i).x() : 0. ); }
93        Double_t primaryVertex_y(unsigned i) const { return (primaryVertex_.size()>i ?  primaryVertex_.at(i).x() : 0. ); }
94        Double_t primaryVertex_z(unsigned i) const { return (primaryVertex_.size()>i ?  primaryVertex_.at(i).x() : 0. ); }
95        
96        // PDF infos
97        // flavour first incoming parton
98        Int_t idParton1() const { return idParton1_; }
99        // energy fraction carried by first incoming parton
100        Float_t xParton1() const { return xParton1_; }
101        // flavour first incoming parton
102        Int_t idParton2() const { return idParton2_; }
103        // energy fraction carried by first incoming parton
104        Float_t xParton2() const { return xParton2_; }
105        // Factorization Scale Q
106        Float_t factorizationScale() const { return factorizationScale_; }
107
108
109        
110        void setNb(Int_t nb) { nb_ = nb; }
111        void setGlobalL1(Int_t passGlobalL1) { passGlobalL1_ = passGlobalL1; }
112        void setGlobalHLT(Bool_t passGlobalHLT) { passGlobalHLT_ = passGlobalHLT; }
113        void setTrigHLT(std::vector<Bool_t> trigHLT)
114        {
115                trigHLT_.resize(trigHLT.size());
116                for (unsigned int i=0; i!=trigHLT.size(); ++i) trigHLT_[i]=trigHLT[i];
117        }
118
119        void setCsa07id(Int_t csa07id) { csa07id_=csa07id; }
120        void setCsa07weight(Float_t csa07weight)  { csa07weight_=csa07weight; }
121        void setCsa07process(TString csa07process)  { csa07process_=csa07process; }
122        void setCsa07process(char* csa07process)  { csa07process_=csa07process; }
123        
124        void setNBasicClusters(Int_t type,Int_t nBC) { nBasicClusters_[type]=nBC; }
125        void setNSuperClusters(Int_t type,Int_t nSC) { nSuperClusters_[type]=nSC; }
126                
127        void addPrimaryVertex(TVector3 vertex) {  primaryVertex_.push_back(vertex); }
128        void clearPrimaryVertex(TVector3 vertex) {  primaryVertex_.clear(); }
129
130        void setIdParton1(Int_t idParton1) { idParton1_=idParton1; }
131        void setXParton1(Float_t xParton1) { xParton1_=xParton1; }
132        void setIdParton2(Int_t idParton2) { idParton2_=idParton2; }
133        void setXParton2(Float_t xParton2) { xParton2_=xParton2; }
134        void setFactorizationScale(Float_t factorizationScale) { factorizationScale_=factorizationScale; }
135
136        /*
137        // FIXME
138        friend std::ostream& operator<< (std::ostream& stream, const TRootEvent& event) {
139                stream << "Event #"<< event.nb() <<"  L1="<< event.trigL1() <<"  HLT="<< event.trigHLT()
140                        << "  Primary vertex x=" << event.primaryVertex_x() << "  y=" << event.primaryVertex_y() << "  z=" << event.primaryVertex_z();
141                return stream;
142        };
143        */
144        
145 private:
146        
147        Int_t nb_;
148
149        // Trigger Infos
150        Bool_t passGlobalL1_;
151        Bool_t passGlobalHLT_;
152        std::vector<Bool_t> trigHLT_;
153
154        // CSA07 Process ID and Weight
155        Int_t csa07id_;
156        Float_t csa07weight_;
157        TString csa07process_;
158        
159        map<Int_t,Int_t> nBasicClusters_;
160        map<Int_t,Int_t> nSuperClusters_;
161        std::vector<TVector3> primaryVertex_;
162
163        // PDF infos
164        Int_t idParton1_;
165        Float_t xParton1_;
166        Int_t idParton2_;
167        Float_t xParton2_;
168        Float_t factorizationScale_;
21  
22 <        ClassDef (TRootEvent,1);
22 >   public:
23 >
24 >      TRootEvent() :
25 >      nb_(0)
26 >      ,eventId_(-1)
27 >      ,runId_(-1)
28 >      ,passGlobalL1_(false)
29 >      ,passGlobalHLT_(false)
30 >      ,trigHLT_(0)
31 >      ,csa07id_(-1)
32 >      ,csa07weight_(-1.)
33 >      ,csa07process_()
34 >      ,nBasicClusters_()
35 >      ,nSuperClusters_()
36 >      ,primaryVertexIndex_(-1)
37 >      ,primaryVertex_(0)
38 >      ,idParton1_(-1)
39 >      ,xParton1_(-1.)
40 >      ,idParton2_(-1)
41 >      ,xParton2_(-1.)
42 >      ,factorizationScale_(-1.)
43 >      {;}
44 >
45 >      ~TRootEvent() {;}
46 >
47 >      // Event number
48 >      Int_t nb() const { return nb_; }
49 >      Int_t eventId() const { return eventId_; }
50 >      Int_t runId() const { return runId_; }
51 >
52 >      // Trigger decision
53 >      Int_t passGlobalL1() const { return passGlobalL1_; }
54 >      Bool_t passGlobalHLT() const { return passGlobalHLT_; }
55 >      unsigned int nHLTPaths() const { return trigHLT_.size(); }
56 >      std::vector<Bool_t> trigHLT() const { return trigHLT_; }
57 >      Bool_t trigHLT(unsigned int i) const
58 >      {
59 >         if (trigHLT_.size()>i)
60 >         {
61 >            return trigHLT_.at(i);
62 >         }
63 >         else
64 >         {
65 >            cout << "HLT path " << i << " not found" << endl;
66 >            return false;
67 >         }
68 >      }
69 >
70 >      // CSA07 Process Id and Event Weight
71 >      Int_t csa07id() const { return csa07id_; }
72 >      Float_t csa07weight() const { return csa07weight_; }
73 >      TString csa07process() const { return csa07process_; }
74 >
75 >      // Nb of BasicClusters of a given type
76 >      Int_t nBasicClusters(Int_t type)
77 >      {
78 >         map<Int_t,Int_t>::iterator it=nBasicClusters_.find(type);
79 >         return ( it ==nBasicClusters_.end() ? 0 : (*it).second );
80 >      }
81 >
82 >      // Nb of SuperClusters of a given type
83 >      Int_t nSuperClusters(Int_t type)
84 >      {
85 >         map<Int_t,Int_t>::iterator it=nSuperClusters_.find(type);
86 >         return ( it ==nSuperClusters_.end() ? 0 : (*it).second );
87 >      }
88 >
89 >
90 >      // Selected Primary Vertex
91 >      Int_t primaryVertexIndex() const { return primaryVertexIndex_; }
92 >      TRootVertex* primaryVertex() const
93 >      {
94 >         if ( primaryVertex_==0)
95 >         {
96 >            cout << "   ********** Error in TRootEvent::primaryVertex() - No primary vertex selected **********" << endl;
97 >            return 0;
98 >         }
99 >         else
100 >         {
101 >            return (TRootVertex*) primaryVertex_.GetObject();
102 >         }
103 >      }
104 >
105 >
106 >      // PDF infos
107 >      // flavour first incoming parton
108 >      Int_t idParton1() const { return idParton1_; }
109 >      // energy fraction carried by first incoming parton
110 >      Float_t xParton1() const { return xParton1_; }
111 >      // flavour first incoming parton
112 >      Int_t idParton2() const { return idParton2_; }
113 >      // energy fraction carried by first incoming parton
114 >      Float_t xParton2() const { return xParton2_; }
115 >      // Factorization Scale Q
116 >      Float_t factorizationScale() const { return factorizationScale_; }
117 >
118 >
119 >
120 >      void setNb(Int_t nb) { nb_ = nb; }
121 >      void setEventId(Int_t eventId) { eventId_ = eventId; }
122 >      void setRunId(Int_t runId) { runId_ = runId; }
123 >      void setGlobalL1(Int_t passGlobalL1) { passGlobalL1_ = passGlobalL1; }
124 >      void setGlobalHLT(Bool_t passGlobalHLT) { passGlobalHLT_ = passGlobalHLT; }
125 >      void setTrigHLT(std::vector<Bool_t> trigHLT)
126 >      {
127 >         trigHLT_.resize(trigHLT.size());
128 >         for (unsigned int i=0; i!=trigHLT.size(); ++i) trigHLT_[i]=trigHLT[i];
129 >      }
130 >
131 >      void setCsa07id(Int_t csa07id) { csa07id_=csa07id; }
132 >      void setCsa07weight(Float_t csa07weight)  { csa07weight_=csa07weight; }
133 >      void setCsa07process(TString csa07process)  { csa07process_=csa07process; }
134 >      void setCsa07process(char* csa07process)  { csa07process_=csa07process; }
135 >
136 >      void setNBasicClusters(Int_t type,Int_t nBC) { nBasicClusters_[type]=nBC; }
137 >      void setNSuperClusters(Int_t type,Int_t nSC) { nSuperClusters_[type]=nSC; }
138 >
139 >      void setPrimaryVertexIndex(Int_t primaryVertexIndex) { primaryVertexIndex_=primaryVertexIndex; }
140 >      void setPrimaryVertex(TRootVertex* primaryVertex) { primaryVertex_ = primaryVertex; }
141 >
142 >      void setIdParton1(Int_t idParton1) { idParton1_=idParton1; }
143 >      void setXParton1(Float_t xParton1) { xParton1_=xParton1; }
144 >      void setIdParton2(Int_t idParton2) { idParton2_=idParton2; }
145 >      void setXParton2(Float_t xParton2) { xParton2_=xParton2; }
146 >      void setFactorizationScale(Float_t factorizationScale) { factorizationScale_=factorizationScale; }
147 >
148 >      /*
149 >      // FIXME
150 >      friend std::ostream& operator<< (std::ostream& stream, const TRootEvent& event) {
151 >      stream << "Event #"<< event.nb() <<"  L1="<< event.trigL1() <<"  HLT="<< event.trigHLT()
152 >      << "  Primary vertex x=" << event.primaryVertex_x() << "  y=" << event.primaryVertex_y() << "  z=" << event.primaryVertex_z();
153 >      return stream;
154 >      };
155 >      */
156 >
157 >
158 >   private:
159 >
160 >      Int_t nb_;
161 >      Int_t eventId_;
162 >      Int_t runId_;
163 >
164 >      // Trigger Infos
165 >      Bool_t passGlobalL1_;
166 >      Bool_t passGlobalHLT_;
167 >      std::vector<Bool_t> trigHLT_;
168 >
169 >      // CSA07 Process ID and Weight
170 >      Int_t csa07id_;
171 >      Float_t csa07weight_;
172 >      TString csa07process_;
173 >
174 >      map<Int_t,Int_t> nBasicClusters_;
175 >      map<Int_t,Int_t> nSuperClusters_;
176 >
177 >      // Selected Primary vertex (by VertexAnalyzer::SelectPrimary)
178 >      Int_t primaryVertexIndex_; // Index in vertices TClonesArray of the selected primary vertex
179 >      TRef primaryVertex_; // Reference to the TRootVertex of the selected primary vertex
180 >
181 >      // PDF infos
182 >      Int_t idParton1_;
183 >      Float_t xParton1_;
184 >      Int_t idParton2_;
185 >      Float_t xParton2_;
186 >      Float_t factorizationScale_;
187 >
188 >      ClassDef (TRootEvent,2);
189 >
190   };
191  
192   #endif

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines