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
00013
00014
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
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
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
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
00114
00115 }
00116 #endif
00117
00118
00119
00120
00121
00122
00123
00124
00125