00001
00002
00003
00004
00005 #ifndef _Atlfast_Calorimeter_H
00006 #define _Atlfast_Calorimeter_H
00007
00008
00009
00010 #include "CLHEP/Vector/LorentzVector.h"
00011 #include "CLHEP/Vector/ThreeVector.h"
00012 #include <vector>
00013 #include <string>
00014
00015
00016 #include "GaudiKernel/MsgStream.h"
00017
00018 #include "HepMC/GenEvent.h"
00019 #include "HepMC/GenParticle.h"
00020 #include "HepMC/ParticleDataTable.h"
00021
00022 #include "AtlfastCode/Cell.h"
00023 #include "AtlfastCode/CellCollection.h"
00024 #include "AtlfastCode/ICellSelector.h"
00025 #include "AtlfastCode/CalSection.h"
00026 #include "AtlfastCode/CalSelect.h"
00027 #include "AtlfastCode/TransportedParticleCollection.h"
00028
00029 namespace Atlfast {
00041 class Calorimeter {
00042
00043 public:
00048 Calorimeter(
00049 MsgStream log,
00050 const double etaCoverage,
00051 const double barrelForwardEta,
00052 const double granBarrelEta,
00053 const double granBarrelPhi,
00054 const double granForwardEta,
00055 const double granForwardPhi
00056 );
00058 ~Calorimeter();
00060 Calorimeter(const Calorimeter&);
00061
00067 void deposit(const TPCollectionIter& first, TPCollectionIter& last) const;
00071 void reset();
00072
00076 void giveHitCells(const ICellSelector*, CellCollection*);
00077
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