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_TRYTOSHOWER_H
00018 #include "AtlfastAlgs/TryToShower.h"
00019 #endif
00020 
00021 class MsgStream;
00022 
00023 namespace FastShower{
00024   class GridletElement;
00025   class GridletForger;
00026   class Gridlet;
00027 }
00028 
00029 namespace Atlfast {
00030   class CalSection;
00031   class ICellSelector;
00032   class EPileupDeposit;
00033   class ISmearer;
00034 
00035   using FastShower::GridletElement;
00036   using FastShower::GridletForger;
00037   using FastShower::Gridlet;
00038 
00039   typedef std::vector<GridletElement*>      ElementCollection;
00040   typedef ElementCollection::const_iterator ElementCollectionCIter;
00041   typedef ElementCollection::iterator       ElementCollectionIter;
00042 
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(ITransportedParticleCollectionIter& first, 
00082                  ITransportedParticleCollectionIter& 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 addGridlet(Gridlet* g);
00103     void reset();  // reset CalSections
00104 
00108     void giveHitCells(const ICellSelector*, ITwoCptCellCollection*);
00112     void smearCells(ISmearer*);
00113   private:
00118     CalSection* m_section[3]; // this calorimeter has 3 sections 
00119     
00123     MsgStream&                   m_log;
00124     GridletForger*               m_gridletForger;
00125     std::vector<const Gridlet* > m_gridlets;
00126   };
00127 } // end of namespace bracket
00128 #endif
00129 
00130 
00131 
00132 
00133 
00134 
00135 
00136 
00137 
00138 
00139 
00140 
00141 
00142 
00143 
00144 
00145 
00146 

Generated on Mon Sep 24 14:19:10 2007 for AtlfastAlgs by  doxygen 1.5.1