#include <SimCalorimetry/HcalSimAlgos/interface/HFShape.h>
Public Member Functions | |
double | derivative (double time) const |
double | getTpeak () const |
HFShape (const HFShape &d) | |
HFShape () | |
virtual double | operator() (double time) const |
virtual | ~HFShape () |
Private Member Functions | |
void | computeShapeHF () |
Private Attributes | |
int | nbin_ |
std::vector< float > | nt_ |
Definition at line 16 of file HFShape.h.
HFShape::HFShape | ( | ) |
Definition at line 4 of file HFShape.cc.
References computeShapeHF(), and CaloVShape::setTpeak().
00005 : nbin_(256), 00006 nt_(nbin_, 0.) 00007 { 00008 setTpeak(2.0); 00009 computeShapeHF(); 00010 }
HFShape::HFShape | ( | const HFShape & | d | ) |
void HFShape::computeShapeHF | ( | ) | [private] |
Definition at line 22 of file HFShape.cc.
References funct::exp(), j, nbin_, norm, and nt_.
Referenced by HFShape().
00023 { 00024 00025 // cout << endl << " ===== computeShapeHF !!! " << endl << endl; 00026 00027 const float ts = 3.0; // time constant in t * exp(-(t/ts)**2) 00028 00029 00030 int j; 00031 float norm; 00032 00033 // HF SHAPE 00034 norm = 0.0; 00035 for( j = 0; j < 3 * ts && j < nbin_; j++){ 00036 //nt_[j] = ((float)j)*exp(-((float)(j*j))/(ts*ts)); 00037 nt_[j] = j * exp(-(j*j)/(ts*ts)); 00038 norm += nt_[j]; 00039 } 00040 // normalize pulse area to 1.0 00041 for( j = 0; j < 3 * ts && j < nbin_; j++){ 00042 nt_[j] /= norm; 00043 } 00044 }
double HFShape::derivative | ( | double | time | ) | const |
double HFShape::getTpeak | ( | ) | const |
Reimplemented from CaloVShape.
double HFShape::operator() | ( | double | time | ) | const [virtual] |
Implements CaloVShape.
Definition at line 46 of file HFShape.cc.
00047 { 00048 00049 // return pulse amplitude for request time in ns 00050 int jtime; 00051 jtime = static_cast<int>(time+0.5); 00052 00053 if(jtime >= 0 && jtime < nbin_) 00054 return nt_[jtime]; 00055 else 00056 return 0.0; 00057 }
int HFShape::nbin_ [private] |
std::vector<float> HFShape::nt_ [private] |