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

Cell.h

Go to the documentation of this file.
00001 // Cell class
00002 //
00003 #ifndef ATLFAST_CELL_H
00004 #define ATLFAST_CELL_H
00005 
00006   
00007 #ifndef GAUDIKERNEL_CONTAINEDOBJECT_H
00008 #include "GaudiKernel/ContainedObject.h"
00009 #define GAUDIKERNEL_CONTAINEDOBJECT_H
00010 #endif
00011 
00012 #ifndef GAUDIKERNEL_OBJECTFACTORY_H
00013 #include "GaudiKernel/ObjectFactory.h"
00014 #define GAUDIKERNEL_OBJECTFACTORY_H
00015 #endif
00016 
00017 #ifndef CLHEP_LORENTZVECTOR_H
00018 #include "CLHEP/Vector/LorentzVector.h"
00019 #define CLHEP_LORENTZVECTOR_H
00020 #endif
00021 
00022 
00023 #ifndef ATLFAST_IKINEMATIC_H
00024 #include "AtlfastEvent/IKinematic.h"
00025 #endif
00026 
00027 #ifndef ATLFAST_CELLDESCRIPTOR_H
00028 #include "AtlfastEvent/CellDescriptor.h"
00029 #endif
00030 
00031 #ifndef ATLFAST_ASSOCIATIONMANAGER_H
00032 #include "AtlfastEvent/AssociationManager.h"
00033 #endif
00034 //#ifndef STOREGATE_DATAVECTOR_H
00035 //#include "StoreGate/DataVector.h"
00036 //#define STOREGATE_DATAVECTOR_H
00037 //#endif
00038 // Class ID for Cell class
00039 static const CLID CLID_ATLFAST_CELL=2301 ;
00040 
00041 namespace HepMC{
00042   class GenParticle;
00043 }
00044 namespace Atlfast {
00045   using HepMC::GenParticle;
00046   class EPileupDeposit;
00053   class Cell : 
00054     public ContainedObject, 
00055     public IKinematic, 
00056     public AssociationManager {
00057     public:
00059     Cell();
00061     Cell(const CellDescriptor& cellID);
00063     Cell(const Cell&) ; 
00065     Cell& operator=(const Cell&); 
00067     virtual ~Cell() { } 
00069     static const  CLID& classID()    { return CLID_ATLFAST_CELL; }
00071     virtual const CLID& clID() const { return CLID_ATLFAST_CELL; }
00075     void newHit(const GenParticle* part);
00079     void newHit(const EPileupDeposit*);
00083     void setPt(HepLorentzVector&);
00084 
00088     void reset();
00092     virtual HepLorentzVector momentum() const;
00096     virtual double eta() const {return m_id.eta();}
00100     virtual double phi() const {return m_id.phi();} 
00104     virtual double pT()  const {return m_ptSum;}
00108     virtual double eT() const {return m_ptSum;} 
00112     virtual double mT() const {return 0;} // HTP FIXME!!!!
00113     
00117     int numberOfHits() const {return m_particles.size();}
00118     
00123     std::vector<const GenParticle*> particles() const;
00124     
00125     private:
00126     
00130     CellDescriptor m_id;
00134     double         m_ptSum;
00135     HepLorentzVector m_momentum; 
00140     std::vector<const GenParticle*> m_particles;
00141     //DataVector<const GenParticle> m_particles;
00142   };
00143 }  //end of namespace bracket
00144 #endif
00145 
00146 
00147 
00148 
00149 
00150 
00151 
00152 
00153 

Generated on Fri Nov 29 12:55:11 2002 by doxygen1.3-rc1