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

# User Rev Content
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