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.7 by lethuill, Mon Dec 1 15:58:05 2008 UTC vs.
Revision 1.12 by lethuill, Fri Sep 18 14:14:20 2009 UTC

# Line 10 | Line 10
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   {
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_;
21  
22 <        ClassDef (TRootEvent,1);
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

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines