00001 #ifndef EcalSimAlgos_ESElectronicsSimFast_h 00002 #define EcalSimAlgos_ESElectronicsSimFast_h 1 00003 00004 #include "CalibFormats/CaloObjects/interface/CaloTSamples.h" 00005 #include "DataFormats/EcalDigi/interface/ESDataFrame.h" 00006 #include "DataFormats/EcalDigi/interface/ESSample.h" 00007 #include "CondFormats/ESObjects/interface/ESPedestals.h" 00008 #include "CondFormats/ESObjects/interface/ESIntercalibConstants.h" 00009 00010 #include <vector> 00011 00012 namespace CLHEP { 00013 class RandGaussQ ; } 00014 00015 class ESElectronicsSimFast 00016 { 00017 public: 00018 00019 typedef CaloTSamples<float,3> ESSamples ; 00020 00021 enum { MAXADC = 4095, 00022 MINADC = 0 } ; 00023 00024 ESElectronicsSimFast( bool addNoise ) ; 00025 ~ESElectronicsSimFast() ; 00026 00027 void setPedestals( const ESPedestals* peds ) ; 00028 00029 void setMIPs( const ESIntercalibConstants* mips ) ; 00030 00031 void setMIPToGeV( double MIPToGeV ) ; 00032 00033 void analogToDigital( ESSamples& cs , 00034 ESDataFrame& df , 00035 bool isNoise = false ) const ; 00036 00037 void newEvent() {} 00038 00039 private : 00040 00041 bool m_addNoise ; 00042 00043 double m_MIPToGeV ; 00044 00045 const ESPedestals* m_peds ; 00046 00047 const ESIntercalibConstants* m_mips ; 00048 00049 CLHEP::RandGaussQ* m_ranGau ; 00050 } ; 00051 00052 00053 #endif