00001 // Cell class 00002 // 00003 #ifndef ATLFAST_TWOCPTCELL_H 00004 #define ATLFAST_TWOCPTCELL_H 00005 00006 #ifndef ATLFAST_ITWOCPTCELL_H 00007 #include "AtlfastEvent/ITwoCptCell.h" 00008 #endif 00009 00010 #ifndef ATLFAST_CELL_H 00011 #include "AtlfastEvent/Cell.h" 00012 #endif 00013 00014 #ifndef ATLFAST_IKINEMATIC_H 00015 #include "AtlfastEvent/IKinematic.h" 00016 #endif 00017 00018 namespace Atlfast { 00022 class IAOOvisitor; 00023 class TwoCptCell : 00024 virtual public ITwoCptCell, protected Cell { 00025 public: 00027 TwoCptCell(); 00028 explicit 00029 TwoCptCell(const CellDescriptor& cellID); 00030 TwoCptCell(const TwoCptCell&) ; 00031 TwoCptCell& operator=(const TwoCptCell&); 00032 virtual ~TwoCptCell() { } 00033 virtual ITwoCptCell* cloneITCC() const; 00034 00036 virtual void accept(IAOOvisitor* iaPtr) const; 00037 00039 virtual IKinematic* clone() const; 00040 00042 virtual void resetCell(); 00044 virtual void depositEcal(double eT); 00045 virtual void depositHcal(double eT); 00046 virtual void addEgen(double E); 00047 00048 virtual double ecalEt() const; 00049 virtual double hcalEt() const; 00050 virtual double eGen() const; 00051 //IKinematic debug 00052 virtual void print(const std::string& coor, std::string t="" ) const; 00053 private: 00054 double m_ecalEt; 00055 double m_hcalEt; 00056 double m_eGenSum; 00057 00058 }; 00060 // inline methods // 00062 00063 }//end of namespace bracket 00064 #endif 00065 00066 00067 00068 00069 00070 00071 00072 00073 00074 00075 00076