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 #include <string> 00009 00010 // Gaudi 00011 #include "GaudiKernel/Algorithm.h" 00012 00013 //Atlfast 00014 namespace HepMC_helper{ 00015 class IMCselector; 00016 } 00017 00018 00019 //Transient event store paths 00020 00021 class ISvcLocator; 00022 00023 namespace Atlfast { 00024 class Calorimeter; 00025 class MagField; 00026 class TesIO; 00027 class ICellSelector; 00028 class EPileupMap; 00029 class ISmearer; 00030 00031 using std::string; 00039 class CellMaker : public Algorithm { 00040 00041 public: 00043 CellMaker(const std::string& name, ISvcLocator* pSvcLocator); 00044 ~CellMaker(); 00045 00046 StatusCode initialize(); 00047 StatusCode execute(); 00048 StatusCode finalize(); 00049 00050 private: 00051 Calorimeter* m_calorimeter; 00052 ICellSelector* m_cellSelector; //select cells on readout of Calorimeter 00053 HepMC_helper::IMCselector* m_mcSelector; //selects input particles 00055 EPileupMap* m_epileupMap; 00057 ISmearer* m_smearer; 00058 00059 // parameters needed to construct a calorimeter object... 00060 double m_etaCoverage; 00061 double m_minETCell; // minimum Et of cell to write out 00062 double m_barrelForwardEta; // boundary between forward and barrel 00063 bool m_fieldOn; // field bending calculted if true 00065 bool m_doSmearing;//warning! not fully tested. Should not be used if JetSmearing == true 00066 00067 00068 //...............Cell Granularities for............................... 00069 double m_granBarrelEta; // barrel eta 00070 double m_granBarrelPhi; // barrel phi 00071 double m_granForwardEta; // forward eta 00072 double m_granForwardPhi; // forward phi 00073 00074 //Paths in the transient event store to get/put things 00075 std::string m_inputLocation; 00076 std::string m_outputLocation; 00077 00078 TesIO* m_tesIO; // TES interface 00079 MagField* m_magField; 00080 00081 }; 00082 00083 } // end of namespace bracket 00084 #endif 00085 00086 00087 00088 00089 00090 00091 00092 00093 00094 00095 00096 00097 00098 00099 00100 00101 00102