Cell.h

Go to the documentation of this file.
00001 
00002 //
00003 #ifndef ATLFAST_CELL_H
00004 #define ATLFAST_CELL_H
00005 
00006 #ifndef CLHEP_LORENTZVECTOR_H
00007 #include "CLHEP/Vector/LorentzVector.h"
00008 #define CLHEP_LORENTZVECTOR_H
00009 #endif
00010 
00011 
00012 //#ifndef ATLFAST_IKINEMATIC_H
00013 //#include "AtlfastEvent/IKinematic.h"
00014 //#endif
00015 
00016 #ifndef ATLFAST_IAODNAVIGATION_H
00017 #include "AtlfastEvent/IAODNavigation.h"
00018 #endif
00019 
00020 #ifndef ATLFAST_ICELL_H
00021 #include "AtlfastEvent/ICell.h"
00022 #endif
00023 
00024 #ifndef ATLFAST_CELLDESCRIPTOR_H
00025 #include "AtlfastEvent/CellDescriptor.h"
00026 #endif
00027 
00028 //#ifndef ATLFAST_IASSOCIATIONMANAGER_H
00029 //#include "AtlfastEvent/IAOO.h"
00030 //#endif
00031 
00032 //#ifndef ATLFAST_ASSOCIATIONMANAGERBASE_H
00033 //#include "AtlfastEvent/AOObase.h"
00034 //#endif
00035 
00036 //#ifndef ATLFAST_IKINEMATICBASE_H
00037 //#include "AtlfastEvent/IKinematicBase.h"
00038 //#endif
00039 
00040 #ifndef ATLFAST_AODNAVIGATIONIMP_H
00041 #include "AtlfastEvent/AODNavigationImp.h"
00042 #endif
00043 
00044 #ifndef ATLFAST_EPILEUPDEPOSIT_H
00045 #include "AtlfastEvent/EPileupDeposit.h"
00046 #endif
00047 
00048 #ifndef HEPMC_GENPARTICLE_H
00049 #include "HepMC/GenParticle.h"
00050 #define HEPMC_GENPARTICLE_H
00051 #endif
00052 
00053 namespace Atlfast {
00054   using ::HepLorentzVector;
00055   using HepMC::GenParticle;
00056   class EPileupDeposit;
00057   class IAOOvisitor;
00065   class Cell : virtual public ICell, protected AODNavigationImp {
00066     public:
00067     Cell();
00068     explicit Cell(const CellDescriptor& cellID);
00069     Cell(const Cell&) ; 
00070     Cell& operator=(const Cell&); 
00071     virtual ~Cell() { } 
00072 
00073     //ICell interface
00074     virtual void newHit(const GenParticle* part);
00075     virtual void newHit(const HepLorentzVector);
00076     virtual void newHit(double pT);
00077     virtual void newHit(const EPileupDeposit*);
00078     virtual void setPt(HepLorentzVector&);
00079     virtual void resetCell();
00080     virtual int numberOfHits() const {return m_particles.size();}
00081     virtual std::vector<const GenParticle*> particles() const;
00083     virtual void addParticle(const GenParticle*);
00084 
00086     virtual HepLorentzVector momentum() const;
00087     virtual double eta() const;
00088     virtual double phi() const;
00089     virtual double pT()  const;
00090     virtual double eT()  const;
00091     virtual double mT()  const;
00092     virtual IKinematic* clone() const;
00093 
00095     virtual void accept(IAOOvisitor*) const;
00096     
00098     virtual void print(const std::string& coor, std::string t="" ) const;
00099   
00100     private:
00101     
00103     CellDescriptor m_id;
00105     double         m_ptSum;
00107     HepLorentzVector m_momentum; 
00109     std::vector<const GenParticle*> m_particles;
00110   };
00112   //               inline (no virtual) methods           //
00114 
00115 }//end of naCell::mespace bracket
00116 #endif
00117 
00118 
00119 
00120 
00121 
00122 
00123 
00124 
00125 

Generated on Fri Sep 21 13:00:08 2007 for AtlfastEvent by  doxygen 1.5.1