#ifndef CALOREC_CBNTAA_CALOCELL_H #define CALOREC_CBNTAA_CALOCELL_H // // CBNT_CaloCell: // CBNT Algorithm class accessing CaloCell // Retrieve CaloCell container, and make ntuple // // Algorithm properties (name defined in cxx file): // NtupleID: Ntuple ID number // CellColl: Cell Container name #include "CBNT_Utils/CBNT_AthenaAwareBase.h" #include "GaudiKernel/NTuple.h" #include "Identifier/Identifier.h" class StoreGateSvc; class LArEM_ID; class LArFCAL_ID; class LArHEC_ID; class TileID; class ICaloBadChannelTool; class CBNTAA_CaloCell: public CBNT_AthenaAwareBase { public: CBNTAA_CaloCell(const std::string& name, ISvcLocator* pSvcLocator); virtual ~CBNTAA_CaloCell(); StatusCode CBNT_initialize(); StatusCode CBNT_execute(); StatusCode CBNT_finalize(); StatusCode CBNT_clear(); private: unsigned int CaloCell_GetDetectorInfo(Identifier &cellID, const LArEM_ID &emid, const LArFCAL_ID &fcalid, const LArHEC_ID &hecid, const TileID &tileid); std::string m_cellsName; //Cell container int m_maxNCells ; //Maximum number of cells in ntuple std::vector m_caloNums ; // which calo to treat float m_cellEnergyThreshold ; // threshold on cell energy for ntuple // if negative symmetric bool m_saveDetInfo; bool m_saveTimeInfo; bool m_caloSelection ; bool m_saveQInfo; const LArEM_ID *m_emid; const LArFCAL_ID *m_fcalid; const LArHEC_ID *m_hecid; const TileID *m_tileid; ICaloBadChannelTool* m_pb_tool; // variables to be in ntuple. long m_nhit; float m_eCell; long m_nCells; std::vector * m_eCells; std::vector * m_etaCells; std::vector * m_phiCells; // Added LH std::vector * m_xCells; std::vector * m_yCells; std::vector * m_idCells; std::vector * m_detCells; std::vector * m_timeCells; std::vector * m_qCells; std::vector * m_fitQCells; std::vector * m_gainCells; StoreGateSvc* m_storeGate; std::string m_suffix; }; #endif