#ifndef Calorimeter_h #define Calorimeter_h /** \class Calorimeter * * Fills calorimeter towers, performs calorimeter resolution smearing * and preselects towers hit by electrons, photons and neutral particles. * * $Date: 2012-11-19 14:05:19 +0100 (Mon, 19 Nov 2012) $ * $Revision: 829 $ * * * \author P. Demin - UCL, Louvain-la-Neuve * */ #include "classes/DelphesModule.h" #include #include #include class TObjArray; class DelphesFormula; class Candidate; class Calorimeter: public DelphesModule { public: Calorimeter(); ~Calorimeter(); void Init(); void Process(); void Finish(); private: typedef std::map< Long64_t, std::pair< Double_t, Double_t > > TFractionMap; //! typedef std::map< Double_t, std::set< Double_t > > TBinMap; //! Candidate *fTower; Double_t fTowerEta, fTowerPhi; Double_t fTowerECalEnergy, fTowerHCalEnergy; Double_t fTowerECalNeutralEnergy, fTowerHCalNeutralEnergy; Bool_t fTowerHasNeutralHit, fTowerHasPhotonHit; TFractionMap fFractionMap; //! TBinMap fBinMap; //! std::vector < Double_t > fEtaBins; std::vector < std::vector < Double_t >* > fPhiBins; std::vector < Long64_t > fTowerHits; std::vector < Double_t > fECalFractions; std::vector < Double_t > fHCalFractions; DelphesFormula *fECalResolutionFormula; //! DelphesFormula *fHCalResolutionFormula; //! TIterator *fItInputArray; //! const TObjArray *fInputArray; //! TObjArray *fTowerOutputArray; //! TObjArray *fNeutralOutputArray; //! TObjArray *fPhotonOutputArray; //! void FinalizeTower(); ClassDef(Calorimeter, 1) }; #endif