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 nElectrons, 
00073                   const int nIsolatedMuons, 
00074                   const int nNonIsolatedMuons,
00075                   const int nPhotons,   
00076                   const int nJets, 
00077                   const int nBJets, 
00078                   const int nCJets,     
00079                   const int nTauJets, 
00080                   const double jetCircularity,
00081                   const double eventCircularity, 
00082                   const double thrust, 
00083                   const double oblateness,
00084                   const HepLorentzVector pMiss, 
00085                   const HepLorentzVector pEscaped) :
00086         DataObject(),
00087         m_nElectrons(nElectrons), 
00088         m_nIsolatedMuons(nIsolatedMuons),
00089         m_nNonIsolatedMuons(nNonIsolatedMuons), 
00090         m_nPhotons(nPhotons),
00091         m_nJets(nJets), 
00092         m_nBJets(nBJets), 
00093         m_nCJets(nCJets),
00094         m_nTauJets(nTauJets), 
00095         m_jetCircularity(jetCircularity),
00096         m_eventCircularity(eventCircularity), 
00097         m_thrust(thrust), 
00098         m_oblateness(oblateness), 
00099         m_pMiss(pMiss), 
00100         m_pEscaped(pEscaped) { };
00101 
00103       EventHeader() :
00104         DataObject(),
00105         m_nElectrons(0), 
00106         m_nIsolatedMuons(0),
00107         m_nNonIsolatedMuons(0), 
00108         m_nPhotons(0),          
00109         m_nJets(0), 
00110         m_nBJets(0), 
00111         m_nCJets(0),
00112         m_nTauJets(0), 
00113         m_jetCircularity(0.0),
00114         m_eventCircularity(0.0), 
00115         m_thrust(0.0), 
00116         m_oblateness(0.0), 
00117         m_pMiss(0.0,0.0,0.0,0.0), 
00118         m_pEscaped(0.0,0.0,0.0,0.0) { };
00120       virtual ~EventHeader() { };
00121       
00122       //
00123       // the default copy constructor and assignment operator should be fine
00124       // so we don't need this...
00125       //EventHeader(const EventHeader &rhs);
00126       //EventHeader& operator=(const EventHeader &rhs);
00127 
00128       //
00129       int nElectrons()     const { return m_nElectrons; }
00130       int nIsolatedMuons() const { return m_nIsolatedMuons; }
00131       int nMuons()         const {return m_nIsolatedMuons+m_nNonIsolatedMuons;}
00132       int nNonIsolatedMuons() const { return m_nNonIsolatedMuons; }
00133       int nPhotons()          const { return m_nPhotons; }
00134 
00135       //Numbers of Jets:
00136       int nJets()    const { return m_nJets; }         // total
00137       int nBJets()   const { return m_nBJets; }       // b-jet candidates
00138       int nCJets()   const { return m_nCJets; }       // c-jet candidates
00139       int nTauJets() const { return m_nTauJets; }   // tau jet candidates
00140 
00141       // Event shapes 
00142       double jetCircularity()     const {return m_jetCircularity;}
00143       double eventCircularity()   const { return m_eventCircularity; }
00144       double thrust()             const { return m_thrust; }
00145       double oblateness()         const { return m_oblateness; }
00146       HepLorentzVector pMiss()    const { return m_pMiss; }
00147       HepLorentzVector pEscaped() const { return m_pEscaped; }
00148                                                   // includes neutrinos and LSP
00149       //.........................
00150       // Athena mandatory methods
00151       // htp FIXME check the const's 
00152       //
00153       static const CLID& classID() { return CLID_ATLFAST_EVENT_HEADER; }
00154       virtual const CLID& clID() const {  return CLID_ATLFAST_EVENT_HEADER; }
00155  
00156 
00157     private:
00158       
00159       int m_nElectrons;
00160       int m_nIsolatedMuons;
00161       int m_nNonIsolatedMuons;
00162       int m_nPhotons;
00163       int m_nJets;
00164       int m_nBJets;
00165       int m_nCJets;
00166       int m_nTauJets;
00167       double m_jetCircularity;
00168       double m_eventCircularity;
00169       double m_thrust;
00170       double m_oblateness;
00171       HepLorentzVector m_pMiss;
00172       HepLorentzVector m_pEscaped;
00173 
00174   };
00175   
00176   
00177 }// end of namespace bracket
00178 #endif
00179 
00180 
00181 
00182 
00183 
00184 
00185 
00186 
00187 
00188 
00189 
00190 

Generated on Wed May 1 14:35:46 2002 for AtlfastEvent by doxygen1.2.13.1 written by Dimitri van Heesch, © 1997-2001