CMS 3D CMS Logo

/data/doxygen/doxygen-1.7.3/gen/CMSSW_4_2_8/src/SimCalorimetry/EcalSimAlgos/interface/EBHitResponse.h

Go to the documentation of this file.
00001 #ifndef EcalSimAlgos_EBHitResponse_h
00002 #define EcalSimAlgos_EBHitResponse_h
00003 
00004 #include "SimCalorimetry/CaloSimAlgos/interface/CaloHitRespoNew.h"
00005 #include "CondFormats/EcalObjects/interface/EcalIntercalibConstantsMC.h"
00006 
00015 class APDSimParameters ;
00016 
00017 class EBHitResponse : public CaloHitRespoNew
00018 {
00019    public:
00020 
00021       typedef CaloHitRespoNew CaloHitResponse ;
00022 
00023       typedef std::vector<double> VecD ;
00024 
00025       enum { kNOffsets = 2000 } ;
00026 
00027       EBHitResponse( const CaloVSimParameterMap* parameterMap , 
00028                      const CaloVShape*           shape        ,
00029                      bool                        apdOnly      ,
00030                      const APDSimParameters*     apdPars      , 
00031                      const CaloVShape*           apdShape       ) ;
00032 
00033       virtual ~EBHitResponse() ;
00034 
00035       virtual bool keepBlank() const { return false ; }
00036 
00037       void setIntercal( const EcalIntercalibConstantsMC* ical ) ;
00038 
00039       const VecD& offsets() const { return m_timeOffVec ; }
00040 
00041    protected:
00042 
00043       virtual void putAnalogSignal( const PCaloHit & inputHit ) ;
00044 
00045    private:
00046 
00047       const APDSimParameters* apdParameters() const ;
00048       const CaloVShape*       apdShape()      const ;
00049 
00050       double apdSignalAmplitude( const PCaloHit& hit ) const ;
00051 
00052       void findIntercalibConstant( const DetId& detId, 
00053                                    double&      icalconst ) const ;
00054 
00055       const bool                       m_apdOnly  ;
00056       const APDSimParameters*          m_apdPars  ;
00057       const CaloVShape*                m_apdShape ;
00058       const EcalIntercalibConstantsMC* m_intercal ;
00059 
00060       std::vector<double> m_timeOffVec ;
00061 };
00062 #endif
00063 
00064