00001 #ifndef EcalSimAlgos_EcalShape_h 00002 #define EcalSimAlgos_EcalShape_h 00003 00004 #include<vector> 00005 #include<stdexcept> 00006 #include "SimCalorimetry/CaloSimAlgos/interface/CaloVShape.h" 00007 00012 class EcalShape : public CaloVShape 00013 { 00014 public: 00015 00017 EcalShape(double timePhase); 00019 ~EcalShape(){} 00020 00021 double operator () (double time_) const; 00022 double derivative (double time_) const; 00023 00024 double computeTimeOfMaximum() const; 00025 double computeT0() const; 00026 double computeRisingTime() const; 00027 00028 void load(int xtal_, int SuperModule_); //modif Alex 20/07/07 00029 const std::vector<double>& getTimeTable() const; 00030 const std::vector<double>& getDerivTable() const; 00031 00032 private: 00033 00034 int nsamp; 00035 int tconv; 00036 int nbin; 00037 std::vector<double> nt; 00038 std::vector<double> ntd; 00039 00040 double threshold; 00041 int binstart; 00042 00043 }; 00044 00045 00046 00047 #endif 00048