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.4 by lethuill, Wed Oct 1 16:05:09 2008 UTC vs.
Revision 1.11 by lethuill, Wed Jun 10 11:17:05 2009 UTC

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