00001
00002
00003 #ifndef ATLFAST_ICELL_H
00004 #define ATLFAST_ICELL_H
00005
00006
00007
00008
00009
00010 #ifndef ATLFAST_IAODNAVIGATION_H
00011 #include "AtlfastEvent/IAODNavigation.h"
00012 #endif
00013
00014 #ifndef HEPLORENTZVECTOR_H
00015 #include "CLHEP/Vector/LorentzVector.h"
00016 #define HEPLORENTZVECTOR_H
00017 #endif
00018
00019 namespace HepMC{
00020 class GenParticle;
00021 }
00022
00023 namespace Atlfast {
00024 using HepMC::GenParticle;
00025 class EPileupDeposit;
00026
00027 class ICell: virtual public IAODNavigation{
00028 public:
00030 virtual ~ICell() { }
00031
00032 virtual void newHit(const GenParticle* part) = 0;
00033 virtual void newHit(const HepLorentzVector part) = 0;
00034 virtual void newHit(const EPileupDeposit*) = 0;
00035 virtual void newHit(double pT) = 0;
00036 virtual void setPt(HepLorentzVector&) = 0;
00037 virtual void resetCell() = 0;
00038 virtual int numberOfHits() const = 0;
00039 virtual std::vector<const GenParticle*> particles() const = 0;
00040 virtual void addParticle(const GenParticle*) = 0;
00041 };
00042 }
00043 #endif
00044
00045
00046
00047
00048
00049
00050
00051
00052