1 |
mlethuil |
1.1 |
#ifndef TRootEvent_h
|
2 |
|
|
#define TRootEvent_h
|
3 |
|
|
|
4 |
|
|
#include <string>
|
5 |
|
|
#include <iostream>
|
6 |
lethuill |
1.5 |
#include <vector>
|
7 |
|
|
#include <map>
|
8 |
|
|
#include <cmath>
|
9 |
mlethuil |
1.1 |
|
10 |
|
|
#include "Rtypes.h"
|
11 |
|
|
#include "TObject.h"
|
12 |
|
|
#include "TVector3.h"
|
13 |
lethuill |
1.10 |
#include "TRef.h"
|
14 |
|
|
|
15 |
|
|
#include "../interface/TRootVertex.h"
|
16 |
mlethuil |
1.1 |
|
17 |
|
|
using namespace std;
|
18 |
|
|
|
19 |
|
|
class TRootEvent : public TObject
|
20 |
|
|
{
|
21 |
lethuill |
1.8 |
|
22 |
lethuill |
1.11 |
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 |
lethuill |
1.12 |
stream << "Event #"<< event.nb() <<" L1="<< event.passGlobalL1() <<" HLT="<< event.passGlobalHLT();
|
151 |
lethuill |
1.11 |
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 |
mlethuil |
1.1 |
};
|
188 |
|
|
|
189 |
|
|
#endif
|