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

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_DBCONTAINERCONVERTER_H
00013 #include "GaudiDb/DbContainerConverter.h"
00014 #define GAUDIKERNEL_DBCONTAINERCONVERTER_H
00015 #endif
00016 
00017 #ifndef GAUDIKERNEL_OBJECTFACTORY_H
00018 #include "GaudiKernel/ObjectFactory.h"
00019 #define GAUDIKERNEL_OBJECTFACTORY_H
00020 #endif
00021 
00022 #ifndef CLHEP_LORENTZVECTOR_H
00023 #include "CLHEP/Vector/LorentzVector.h"
00024 #define CLHEP_LORENTZVECTOR_H
00025 #endif
00026 
00027 
00028 #ifndef ATLFAST_IKINEMATIC_H
00029 #include "AtlfastCode/IKinematic.h"
00030 #endif
00031 
00032 #ifndef ATLFAST_CELLDESCRIPTOR_H
00033 #include "AtlfastCode/CellDescriptor.h"
00034 #endif
00035 
00036 #ifndef ATLFAST_ASSOCIATIONMANAGER_H
00037 #include "AtlfastCode/AssociationManager.h"
00038 #endif
00039 
00040 #ifndef STD_VECTOR_H
00041 #include <vector>
00042 #define STD_VECTOR_H
00043 #endif
00044 
00045 // Class ID for Cell class
00046 static const CLID CLID_ATLFAST_CELL=2301 ;
00047 
00048 namespace HepMC{
00049   class GenParticle;
00050 }
00051 namespace Atlfast {
00052   using HepMC::GenParticle;
00053 
00060   class Cell : 
00061     public ContainedObject, 
00062     public IKinematic, 
00063     public AssociationManager {
00064     public:
00066     Cell() : ContainedObject(), AssociationManager(){}
00068     Cell(const CellDescriptor& cellID) ;
00070     Cell(const Cell&) ; 
00072     Cell& operator=(const Cell&); 
00074     virtual ~Cell() { } 
00076     static const  CLID& classID()    { return CLID_ATLFAST_CELL; }
00078     virtual const CLID& clID() const { return CLID_ATLFAST_CELL; }
00082     void newHit(const GenParticle* part);
00086     void reset();
00090     virtual HepLorentzVector momentum() const;
00094     virtual double eta() const {return m_id.eta();}
00098     virtual double phi() const {return m_id.phi();} 
00102     virtual double pT()  const {return m_ptSum;}
00106     virtual double eT() const {return m_ptSum;} 
00110     virtual double mT() const {return 0;} // HTP FIXME!!!!
00111     
00115     int numberOfHits() const {return m_particles.size();}
00116     
00121     std::vector<const GenParticle*> particles() const {return m_particles;}
00122     
00126     virtual StreamBuffer& serialize(StreamBuffer& s);
00127     
00131     virtual StreamBuffer& serialize(StreamBuffer& s) const;
00132     
00133     private:
00134     
00138     CellDescriptor m_id;
00142     double         m_ptSum;
00143     HepLorentzVector m_momentum; 
00147     std::vector<const GenParticle*> m_particles;
00148       
00149   };
00150 }  //end of namespace bracket
00151 #endif
00152 
00153 
00154 
00155 
00156 
00157 
00158 
00159 
00160 

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