00001 #ifndef ATLFAST_EVENTHEADER_H
00002 #define ATLFAST_EVENTHEADER_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032 #include "GaudiKernel/DataObject.h"
00033
00034 #ifndef CLHEP_LORENTZVECTOR_H
00035 #include "CLHEP/Vector/LorentzVector.h"
00036 #define CLHEP_LORENTZVECTOR_H
00037 #endif
00038
00039 #ifndef ATLFAST_MCWEIGHTCONTAINERCOLLECTION_H
00040 #include "AtlfastEvent/MCweightContainerCollection.h"
00041 #endif
00042
00043
00044 class MsgStream;
00045
00046
00047
00048 static const CLID CLID_ATLFAST_EVENT_HEADER=2303 ;
00049
00050
00051
00052 namespace Atlfast {
00053
00054
00055 class EventHeader;
00056
00057 MsgStream& operator<<(MsgStream&, const EventHeader&);
00058 MsgStream& operator<<(MsgStream&, const EventHeader* const );
00067 class EventHeader : public DataObject {
00068
00069 public:
00070
00071
00072
00073
00075 EventHeader(
00076 const int nElectrons,
00077 const int nIsolatedMuons,
00078 const int nNonIsolatedMuons,
00079 const int nPhotons,
00080 const int nJets,
00081 const int nBJets,
00082 const int nCJets,
00083 const int nTauJets,
00084 const double jetCircularity,
00085 const double eventCircularity,
00086 const double thrust,
00087 const double oblateness,
00088 const HepLorentzVector pMiss,
00089 const double sumET,
00090 const HepLorentzVector pEscaped,
00091 const MCweightContainerCollection mcWeightContainers) :
00092 DataObject(),
00093 m_nElectrons(nElectrons),
00094 m_nIsolatedMuons(nIsolatedMuons),
00095 m_nNonIsolatedMuons(nNonIsolatedMuons),
00096 m_nPhotons(nPhotons),
00097 m_nJets(nJets),
00098 m_nBJets(nBJets),
00099 m_nCJets(nCJets),
00100 m_nTauJets(nTauJets),
00101 m_jetCircularity(jetCircularity),
00102 m_eventCircularity(eventCircularity),
00103 m_thrust(thrust),
00104 m_oblateness(oblateness),
00105 m_pMiss(pMiss),
00106 m_sumET(sumET),
00107 m_pEscaped(pEscaped),
00108 m_mcWeightContainers(mcWeightContainers)
00109 { };
00110
00112 EventHeader() :
00113 DataObject(),
00114 m_nElectrons(0),
00115 m_nIsolatedMuons(0),
00116 m_nNonIsolatedMuons(0),
00117 m_nPhotons(0),
00118 m_nJets(0),
00119 m_nBJets(0),
00120 m_nCJets(0),
00121 m_nTauJets(0),
00122 m_jetCircularity(0.0),
00123 m_eventCircularity(0.0),
00124 m_thrust(0.0),
00125 m_oblateness(0.0),
00126 m_pMiss(0.0,0.0,0.0,0.0),
00127 m_sumET(0.),
00128 m_pEscaped(0.0,0.0,0.0,0.0),
00129 m_mcWeightContainers(MCweightContainerCollection()){};
00131 virtual ~EventHeader() { };
00132
00133
00134
00135
00136
00137
00138
00139
00140 int nElectrons() const { return m_nElectrons; }
00141 int nIsolatedMuons() const { return m_nIsolatedMuons; }
00142 int nMuons() const {return m_nIsolatedMuons+m_nNonIsolatedMuons;}
00143 int nNonIsolatedMuons() const { return m_nNonIsolatedMuons; }
00144 int nPhotons() const { return m_nPhotons; }
00145
00146
00147 int nJets() const { return m_nJets; }
00148 int nBJets() const { return m_nBJets; }
00149 int nCJets() const { return m_nCJets; }
00150 int nTauJets() const { return m_nTauJets; }
00151
00152
00153 double jetCircularity() const {return m_jetCircularity;}
00154 double eventCircularity() const { return m_eventCircularity; }
00155 double thrust() const { return m_thrust; }
00156 double oblateness() const { return m_oblateness; }
00157 HepLorentzVector pMiss() const { return m_pMiss; }
00158 double sumET() const { return m_sumET; }
00159 HepLorentzVector pEscaped() const { return m_pEscaped; }
00160
00161
00162 MCweightContainer firstFewWeights(int n) const;
00163
00164
00165
00166
00167 static const CLID& classID() { return CLID_ATLFAST_EVENT_HEADER; }
00168 virtual const CLID& clID() const { return CLID_ATLFAST_EVENT_HEADER; }
00169
00170
00171 private:
00172
00173 int m_nElectrons;
00174 int m_nIsolatedMuons;
00175 int m_nNonIsolatedMuons;
00176 int m_nPhotons;
00177 int m_nJets;
00178 int m_nBJets;
00179 int m_nCJets;
00180 int m_nTauJets;
00181 double m_jetCircularity;
00182 double m_eventCircularity;
00183 double m_thrust;
00184 double m_oblateness;
00185 HepLorentzVector m_pMiss;
00186 double m_sumET;
00187 HepLorentzVector m_pEscaped;
00188 MCweightContainerCollection m_mcWeightContainers;
00189 };
00190
00191
00192 }
00193 #endif
00194
00195
00196
00197
00198
00199
00200
00201
00202
00203
00204
00205