ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/Morgan/interface/TRootEvent.h
Revision: 1.7
Committed: Mon Dec 1 15:58:05 2008 UTC (16 years, 5 months ago) by lethuill
Content type: text/plain
Branch: MAIN
CVS Tags: pat_2_1_12_01
Changes since 1.6: +1 -12 lines
Log Message:
Proto-version for use with different data formats (RECO/AOD/PAT/PAT+AOD)
Replace the absolute path /UserCode/Morgan with a relative one

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
14 using namespace std;
15
16 class TRootEvent : public TObject
17 {
18
19 public:
20
21 TRootEvent() :
22 nb_(0)
23 ,passGlobalL1_(false)
24 ,passGlobalHLT_(false)
25 ,trigHLT_(0)
26 ,csa07id_(0)
27 ,csa07weight_(0.)
28 ,csa07process_()
29 ,nBasicClusters_()
30 ,nSuperClusters_()
31 ,primaryVertex_(0)
32 {;}
33
34 ~TRootEvent() {;}
35
36 // Event number
37 Int_t nb() const { return nb_; }
38
39 // Trigger decision
40 Int_t passGlobalL1() const { return passGlobalL1_; }
41 Bool_t passGlobalHLT() const { return passGlobalHLT_; }
42 unsigned int nHLTPaths() const { return trigHLT_.size(); }
43 std::vector<Bool_t> trigHLT() const { return trigHLT_; }
44 Bool_t trigHLT(unsigned int i) const
45 {
46 if (trigHLT_.size()>i)
47 {
48 return trigHLT_.at(i);
49 }
50 else
51 {
52 cout << "HLT path " << i << " not found" << endl;
53 return false;
54 }
55 }
56
57 // CSA07 Process Id and Event Weight
58 Int_t csa07id() const { return csa07id_; }
59 Float_t csa07weight() const { return csa07weight_; }
60 TString csa07process() const { return csa07process_; }
61
62 // Nb of primary vertices
63 unsigned nPrimaryVertices() const { return primaryVertex_.size(); }
64
65 // Nb of BasicClusters of a given type
66 Int_t nBasicClusters(Int_t type)
67 {
68 map<Int_t,Int_t>::iterator it=nBasicClusters_.find(type);
69 return ( it ==nBasicClusters_.end() ? 0 : (*it).second );
70 }
71
72 // Nb of SuperClusters of a given type
73 Int_t nSuperClusters(Int_t type)
74 {
75 map<Int_t,Int_t>::iterator it=nSuperClusters_.find(type);
76 return ( it ==nSuperClusters_.end() ? 0 : (*it).second );
77 }
78
79
80 // Primary Vertex as 3-vector
81 TVector3 primaryVertex() const { return (primaryVertex_.size()>0 ? primaryVertex_.at(0) : TVector3(0.,0.,0.) ); }
82 TVector3 primaryVertex(unsigned i) const { return (primaryVertex_.size()>i ? primaryVertex_.at(i) : TVector3(0.,0.,0.) ); }
83 // x, y, z of Primary Vertex
84 Double_t primaryVertex_x() const { return (primaryVertex_.size()>0 ? primaryVertex_.at(0).x() : 0. ); }
85 Double_t primaryVertex_y() const { return (primaryVertex_.size()>0 ? primaryVertex_.at(0).y() : 0. ); }
86 Double_t primaryVertex_z() const { return (primaryVertex_.size()>0 ? primaryVertex_.at(0).z() : 0. ); }
87 Double_t primaryVertex_x(unsigned i) const { return (primaryVertex_.size()>i ? primaryVertex_.at(i).x() : 0. ); }
88 Double_t primaryVertex_y(unsigned i) const { return (primaryVertex_.size()>i ? primaryVertex_.at(i).x() : 0. ); }
89 Double_t primaryVertex_z(unsigned i) const { return (primaryVertex_.size()>i ? primaryVertex_.at(i).x() : 0. ); }
90
91
92 void setNb(Int_t nb) { nb_ = nb; }
93 void setGlobalL1(Int_t passGlobalL1) { passGlobalL1_ = passGlobalL1; }
94 void setGlobalHLT(Bool_t passGlobalHLT) { passGlobalHLT_ = passGlobalHLT; }
95 void setTrigHLT(std::vector<Bool_t> trigHLT)
96 {
97 trigHLT_.resize(trigHLT.size());
98 for (unsigned int i=0; i!=trigHLT.size(); ++i) trigHLT_[i]=trigHLT[i];
99 }
100
101 void setCsa07id(Int_t csa07id) { csa07id_=csa07id; }
102 void setCsa07weight(Float_t csa07weight) { csa07weight_=csa07weight; }
103 void setCsa07process(TString csa07process) { csa07process_=csa07process; }
104 void setCsa07process(char* csa07process) { csa07process_=csa07process; }
105
106 void setNBasicClusters(Int_t type,Int_t nBC) { nBasicClusters_[type]=nBC; }
107 void setNSuperClusters(Int_t type,Int_t nSC) { nSuperClusters_[type]=nSC; }
108
109 void addPrimaryVertex(TVector3 vertex) { primaryVertex_.push_back(vertex); }
110 void clearPrimaryVertex(TVector3 vertex) { primaryVertex_.clear(); }
111 /*
112 friend std::ostream& operator<< (std::ostream& stream, const TRootEvent& event) {
113 stream << "Event #"<< event.nb() <<" L1="<< event.trigL1() <<" HLT="<< event.trigHLT()
114 << " Primary vertex x=" << event.primaryVertex_x() << " y=" << event.primaryVertex_y() << " z=" << event.primaryVertex_z();
115 return stream;
116 };
117 */
118
119 private:
120
121 Int_t nb_;
122 Bool_t passGlobalL1_;
123 Bool_t passGlobalHLT_;
124 std::vector<Bool_t> trigHLT_;
125
126 Int_t csa07id_;
127 Float_t csa07weight_;
128 TString csa07process_;
129
130 map<Int_t,Int_t> nBasicClusters_;
131 map<Int_t,Int_t> nSuperClusters_;
132 std::vector<TVector3> primaryVertex_;
133
134 ClassDef (TRootEvent,1);
135 };
136
137 #endif