00001
00002
00003
00004
00005 #ifndef ATLFAST_CALORIMETER_H
00006 #define ATLFAST_CALORIMETER_H
00007
00008 #include <vector>
00009 #include <string>
00010
00011 #include "GaudiKernel/MsgStream.h"
00012
00013 #include "AtlfastEvent/CollectionDefs.h"
00014 #include "AtlfastAlgs/TransportedParticleCollection.h"
00015
00016 namespace Atlfast {
00017 class CalSection;
00018 class ICellSelector;
00019 class EPileupDeposit;
00020 class ISmearer;
00032 class Calorimeter {
00033
00034 public:
00039 Calorimeter(
00040 MsgStream log,
00041 const double etaCoverage,
00042 const double barrelForwardEta,
00043 const double granBarrelEta,
00044 const double granBarrelPhi,
00045 const double granForwardEta,
00046 const double granForwardPhi
00047 );
00049 ~Calorimeter();
00051 Calorimeter(const Calorimeter&);
00052
00058 void deposit(TransportedParticleCollectionIter& first,
00059 TransportedParticleCollectionIter& last) const;
00063 void deposit(std::vector<Atlfast::EPileupDeposit*>::iterator& first,
00064 std::vector<Atlfast::EPileupDeposit*>::iterator& last) const;
00068 void reset();
00069
00073 void giveHitCells(const ICellSelector*, CellCollection*);
00077 void smearCells(ISmearer*);
00078 private:
00083 CalSection* m_section[3];
00084
00085 };
00086 }
00087 #endif
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105