Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members  

Calorimeter.h

Go to the documentation of this file.
00001 // Calorimeter.h
00002 //
00003 // HTP tidied up and put in namespace
00004 // PS  many changes
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 #ifndef ATLFAST_COLLECTIONDEFS_H
00014 #include "AtlfastEvent/CollectionDefs.h"
00015 #endif
00016 
00017 #ifndef ATLFAST_TRANSPORTEDPARTICLECOLLECTION_H
00018 #include "AtlfastAlgs/TransportedParticleCollection.h"
00019 #endif
00020 
00021 #ifndef ATLFAST_TRYTOSHOWER_H
00022 #include "AtlfastAlgs/TryToShower.h"
00023 #endif
00024 
00025 class MsgStream;
00026 
00027 namespace FastShower{
00028   class GridletElement;
00029   class GridletForger;
00030 }
00031 
00032 namespace Atlfast {
00033   class CalSection;
00034   class ICellSelector;
00035   class EPileupDeposit;
00036   class ISmearer;
00037 
00038   using FastShower::GridletElement;
00039   using FastShower::GridletForger;
00051   typedef std::vector<GridletElement*>      ElementCollection;
00052   typedef ElementCollection::const_iterator ElementCollectionCIter;
00053   typedef ElementCollection::iterator       ElementCollectionIter;
00054   class Calorimeter { 
00055 
00056   public:
00061     Calorimeter(
00062                 MsgStream& log,
00063                 bool fastShower,
00064                 const double etaCoverage, 
00065                 const double barrelForwardEta, 
00066                 const double granBarrelEta, 
00067                 const double granBarrelPhi,
00068                 const double granForwardEta, 
00069                 const double granForwardPhi
00070                 ); 
00072     ~Calorimeter();
00074     Calorimeter(const Calorimeter&);
00075 
00081     void deposit(TransportedParticleCollectionIter& first, 
00082                  TransportedParticleCollectionIter& last);
00086     void deposit(std::vector<Atlfast::EPileupDeposit*>::iterator&  first, 
00087                  std::vector<Atlfast::EPileupDeposit*>::iterator&  last) const;
00091     const GridletForger* gridletForger() const;
00095     MsgStream&   msgStream() const;
00099     void addEelements(ElementCollectionIter,  ElementCollectionIter);
00103     void addHelements(ElementCollectionIter, ElementCollectionIter);
00107     void reset();  // reset CalSections
00108 
00112     void giveHitCells(const ICellSelector*, ITwoCptCellCollection*);
00116     void smearCells(ISmearer*);
00117   private:
00122     CalSection* m_section[3]; // this calorimeter has 3 sections 
00123     
00127     MsgStream&           m_log;
00128     GridletForger*       m_gridletForger;
00129     ElementCollection    m_eElements;
00130     ElementCollection    m_hElements;
00131   };
00132 } // end of namespace bracket
00133 #endif
00134 
00135 
00136 
00137 
00138 
00139 
00140 
00141 
00142 
00143 
00144 
00145 
00146 
00147 
00148 
00149 
00150 
00151 

Generated on Tue Mar 18 11:18:22 2003 for AtlfastAlgs by doxygen1.3-rc1