ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/Morgan/interface/TRootEvent.h
Revision: 1.12
Committed: Fri Sep 18 14:14:20 2009 UTC (15 years, 7 months ago) by lethuill
Content type: text/plain
Branch: MAIN
CVS Tags: all_3_3_2_01, all_3_2_5_02, all_3_2_5_01, HEAD
Changes since 1.11: +1 -4 lines
Log Message:
Update for 3.2.X

File Contents

# Content
1 #ifndef TRootEvent_h
2 #define TRootEvent_h
3
4 #include <string>
5 #include <iostream>
6 #include <vector>
7 #include <map>
8 #include <cmath>
9
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 {
21
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 // FIXME
149 friend std::ostream& operator<< (std::ostream& stream, const TRootEvent& event) {
150 stream << "Event #"<< event.nb() <<" L1="<< event.passGlobalL1() <<" HLT="<< event.passGlobalHLT();
151 return stream;
152 };
153
154
155 private:
156
157 Int_t nb_;
158 Int_t eventId_;
159 Int_t runId_;
160
161 // Trigger Infos
162 Bool_t passGlobalL1_;
163 Bool_t passGlobalHLT_;
164 std::vector<Bool_t> trigHLT_;
165
166 // CSA07 Process ID and Weight
167 Int_t csa07id_;
168 Float_t csa07weight_;
169 TString csa07process_;
170
171 map<Int_t,Int_t> nBasicClusters_;
172 map<Int_t,Int_t> nSuperClusters_;
173
174 // Selected Primary vertex (by VertexAnalyzer::SelectPrimary)
175 Int_t primaryVertexIndex_; // Index in vertices TClonesArray of the selected primary vertex
176 TRef primaryVertex_; // Reference to the TRootVertex of the selected primary vertex
177
178 // PDF infos
179 Int_t idParton1_;
180 Float_t xParton1_;
181 Int_t idParton2_;
182 Float_t xParton2_;
183 Float_t factorizationScale_;
184
185 ClassDef (TRootEvent,2);
186
187 };
188
189 #endif