Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members  

EventHeader.h

Go to the documentation of this file.
00001 #ifndef ATLFAST_EVENTHEADER_H
00002 #define ATLFAST_EVENTHEADER_H
00003 
00004 //**************************************************
00005 //
00006 // Atlfast Event Header class
00007 //
00008 // Contains infomation on the whole Event, such as
00009 // event shape variables and missing momentum.
00010 //
00011 // Also summarises the number of various particles
00012 // found in the event, for rapid event selection in
00013 // user analysis code.
00014 //
00015 // At present this class is just a big "bag" of
00016 // possibly useful numbers to be stored on the TES.
00017 //
00018 // Some more thought and development of the header will
00019 // come in the future - eg should it summarise the
00020 // Atlfast final output lists? Should it have
00021 // SmartRef's to them? This may become important for
00022 // Persistency later on...
00023 //
00024 // 
00025 //
00026 //
00027 // Authors: Hywel Phillips
00028 //          Peter Clarke
00029 //          Peter Sherwood
00030 //          Richard Steward
00031 //          Elzbieta Richter-Was
00032 //
00033 // Created 22/08/2000
00034 //
00035 //**************************************************
00036 
00037 // Gaudi/Athena 
00038 #include "GaudiKernel/DataObject.h"
00039 
00040 #include "CLHEP/Vector/LorentzVector.h"
00041 class MsgStream;
00042 
00043 
00044 //Class ID for EventHeader class
00045 static const CLID CLID_ATLFAST_EVENT_HEADER=2303 ;
00046 
00047 
00048 
00049 namespace Atlfast {
00050 
00058   class EventHeader;
00059 
00060   MsgStream& operator<<(MsgStream&, const EventHeader&);
00061   MsgStream& operator<<(MsgStream&, const EventHeader* const );
00062 
00063   class EventHeader : public DataObject {
00064   
00065     public:
00066 
00067       //
00068       // constructors, desctructors and operators
00069       //
00071       EventHeader(
00072                   const int runNumber,
00073                   const int evtNumber,
00074                   const int nElectrons, 
00075                   const int nIsolatedMuons, 
00076                   const int nNonIsolatedMuons,
00077                   const int nPhotons,   
00078                   const int nJets, 
00079                   const int nBJets, 
00080                   const int nCJets,     
00081                   const int nTauJets, 
00082                   const double jetCircularity,
00083                   const double eventCircularity, 
00084                   const double thrust, 
00085                   const double oblateness,
00086                   const HepLorentzVector pMiss, 
00087                   const HepLorentzVector pEscaped) :
00088         DataObject(),
00089         m_runNumber(runNumber),
00090         m_evtNumber(evtNumber),
00091         m_nElectrons(nElectrons), 
00092         m_nIsolatedMuons(nIsolatedMuons),
00093         m_nNonIsolatedMuons(nNonIsolatedMuons), 
00094         m_nPhotons(nPhotons),
00095         m_nJets(nJets), 
00096         m_nBJets(nBJets), 
00097         m_nCJets(nCJets),
00098         m_nTauJets(nTauJets), 
00099         m_jetCircularity(jetCircularity),
00100         m_eventCircularity(eventCircularity), 
00101         m_thrust(thrust), 
00102         m_oblateness(oblateness), 
00103         m_pMiss(pMiss), 
00104         m_pEscaped(pEscaped) { };
00105 
00107       EventHeader() :
00108         DataObject(),
00109         m_runNumber(0), 
00110         m_evtNumber(0), 
00111         m_nElectrons(0), 
00112         m_nIsolatedMuons(0),
00113         m_nNonIsolatedMuons(0), 
00114         m_nPhotons(0),          
00115         m_nJets(0), 
00116         m_nBJets(0), 
00117         m_nCJets(0),
00118         m_nTauJets(0), 
00119         m_jetCircularity(0.0),
00120         m_eventCircularity(0.0), 
00121         m_thrust(0.0), 
00122         m_oblateness(0.0), 
00123         m_pMiss(0.0,0.0,0.0,0.0), 
00124         m_pEscaped(0.0,0.0,0.0,0.0) { };
00126       virtual ~EventHeader() { };
00127       
00128       //
00129       // the default copy constructor and assignment operator should be fine
00130       // so we don't need this...
00131       //EventHeader(const EventHeader &rhs);
00132       //EventHeader& operator=(const EventHeader &rhs);
00133 
00134       //
00135       int runNumber()      const { return m_runNumber; }
00136       int evtNumber()      const { return m_evtNumber; }
00137       int nElectrons()     const { return m_nElectrons; }
00138       int nIsolatedMuons() const { return m_nIsolatedMuons; }
00139       int nMuons()         const {return m_nIsolatedMuons+m_nNonIsolatedMuons;}
00140       int nNonIsolatedMuons() const { return m_nNonIsolatedMuons; }
00141       int nPhotons()          const { return m_nPhotons; }
00142 
00143       //Numbers of Jets:
00144       int nJets()    const { return m_nJets; }         // total
00145       int nBJets()   const { return m_nBJets; }       // b-jet candidates
00146       int nCJets()   const { return m_nCJets; }       // c-jet candidates
00147       int nTauJets() const { return m_nTauJets; }   // tau jet candidates
00148 
00149       // Event shapes 
00150       double jetCircularity()     const {return m_jetCircularity;}
00151       double eventCircularity()   const { return m_eventCircularity; }
00152       double thrust()             const { return m_thrust; }
00153       double oblateness()         const { return m_oblateness; }
00154       HepLorentzVector pMiss()    const { return m_pMiss; }
00155       HepLorentzVector pEscaped() const { return m_pEscaped; }
00156                                                   // includes neutrinos and LSP
00158       virtual StreamBuffer& serialize(StreamBuffer& s);
00159 
00161       virtual StreamBuffer& serialize(StreamBuffer& s) const;
00162 
00163       //.........................
00164       // Athena mandatory methods
00165       // htp FIXME check the const's 
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_runNumber;
00174       int m_evtNumber;
00175       int m_nElectrons;
00176       int m_nIsolatedMuons;
00177       int m_nNonIsolatedMuons;
00178       int m_nPhotons;
00179       int m_nJets;
00180       int m_nBJets;
00181       int m_nCJets;
00182       int m_nTauJets;
00183       double m_jetCircularity;
00184       double m_eventCircularity;
00185       double m_thrust;
00186       double m_oblateness;
00187       HepLorentzVector m_pMiss;
00188       HepLorentzVector m_pEscaped;
00189 
00190   };
00191   
00192   
00193 }// end of namespace bracket
00194 #endif
00195 
00196 
00197 
00198 
00199 
00200 
00201 
00202 
00203 
00204 
00205 
00206 

Generated on Mon Feb 4 15:54:23 2002 for Atlfast by doxygen1.2.13.1 written by Dimitri van Heesch, © 1997-2001