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

CellMaker.h

Go to the documentation of this file.
00001 // Cell Maker.h
00002 //
00003 // HTP tidied up and put into namespace
00004 
00005 #ifndef _Atlfast_CellMaker_H
00006 #define _Atlfast_CellMaker_H
00007 
00008 // Normal STL and physical vectors
00009 
00010 #include "CLHEP/Vector/LorentzVector.h"
00011 #include "CLHEP/Vector/ThreeVector.h"
00012 #include <vector>
00013 #include <string>
00014 
00015 // Gaudi
00016 #include "GaudiKernel/ISvcLocator.h"
00017 #include "GaudiKernel/Algorithm.h"
00018 #include "GaudiKernel/MsgStream.h"
00019 #include "GaudiKernel/DataObject.h"
00020 
00021 #include "HepMC/GenEvent.h"
00022 #include "HepMC/GenParticle.h"
00023 
00024 //Atlfast
00025 #include "AtlfastCode/Cell.h"
00026 #include "AtlfastCode/Calorimeter.h"
00027 #include "AtlfastCode/MagField.h"
00028 #include "AtlfastCode/HepMC_helper.h"
00029 #include "AtlfastCode/TesIO.h"
00030 #include "AtlfastCode/CommonData.h"
00031 
00032 //Transient event store paths
00033 
00034 #define   DEFAULT_inputLocation      "/Event/McEventCollection"
00035 #define   DEFAULT_commonDataLocation "/Event/AtlfastCommonData"
00036 #define   DEFAULT_outputLocation     "/Event/AtlfastCells" 
00037 
00038 //Steering parameters needed to set up a calorimeter object
00039 // it is clearly very ugly to have to read all of this in 
00040 // for CellMaker - we should instead hand CellMaker the right
00041 
00042 
00043 // sort of Calorimeter object. But right now we do it this way
00044 // because we don't yet have Gaudi tools.
00045 //
00046 #define   DEFAULT_etaCoverage 5.0
00047 #define   DEFAULT_minETCell 0.0
00048 // Starting granularities. Will be adjusted to give integral numbers of bins
00049 #define   DEFAULT_granBarrelEta  0.1
00050 #define   DEFAULT_granBarrelPhi  0.1
00051 #define   DEFAULT_granForwardEta 0.2
00052 #define   DEFAULT_granForwardPhi 0.2
00053 
00054 
00055 namespace Atlfast {
00056 
00064   class CellMaker : public Algorithm {
00065 
00066   public:
00067     //Gaudi style constructor and execution methods
00069     CellMaker(const std::string& name, ISvcLocator* pSvcLocator);
00071     ~CellMaker();
00072     
00074     StatusCode          initialize();
00076     StatusCode          execute();
00078     //    StatusCode          finalize() {return StatusCode::SUCCESS;}
00079     StatusCode          finalize();
00080 
00081   private:
00083     Calorimeter*                         m_calorimeter;  
00086     MagField*                            m_magField;     
00089     ICellSelector*                       m_cellSelector;
00092     HepMC_helper::IMCselector*          m_mcSelector;
00093 
00094     // parameters needed to construct a calorimeter object...
00096     double    m_etaCoverage;      
00097  // entire eta coverage
00099     double    m_minETCell;         // minimum Et of cell to write out
00101     double    m_barrelForwardEta;  // boundary between forward and barrel
00103     bool      m_fieldOn;           // field bending calculted if true
00104 
00105 
00109     //...............Cell Granularities for...............................
00111     double    m_granBarrelEta;     // barrel eta
00113     double    m_granBarrelPhi;     // barrel phi
00115     double    m_granForwardEta;    // forward eta
00117     double    m_granForwardPhi;    // forward phi
00118 
00119 
00120 
00121     //Paths in the transient event store to get/put things
00122     //Currently set in member variables to be overwritten
00123     //by job options service
00125     std::string m_inputLocation;
00127     std::string m_commonDataLocation;
00129     std::string m_outputLocation;
00130 
00131     TesIO* m_tesIO;
00132     bool m_notInit;
00133   };
00134 
00135 } // end of namespace bracket
00136 #endif
00137 
00138 
00139 
00140 
00141 
00142 
00143 
00144 
00145 
00146 
00147 
00148 
00149 
00150 
00151 
00152 
00153 
00154 

Generated on Wed Jan 23 12:58:31 2002 for Atlfast by doxygen1.2.13.1 written by Dimitri van Heesch, © 1997-2001