00001 #include <cmath> 00002 00003 #include "SimCalorimetry/EcalSimAlgos/interface/APDShape.h" 00004 00005 #include<assert.h> 00006 00007 APDShape::~APDShape() 00008 { 00009 } 00010 00011 APDShape::APDShape( double tStart, 00012 double tau ) : 00013 EcalShapeBase( true ) , 00014 m_tStart ( tStart ) , 00015 m_tau ( tau ) 00016 { 00017 assert( m_tau > 1.e-5 ) ; 00018 assert( m_tStart > 0 ) ; 00019 buildMe() ; 00020 } 00021 00022 double 00023 APDShape::threshold() const 00024 { 00025 return 0.0 ; 00026 } 00027 00028 void 00029 APDShape::fillShape( EcalShapeBase::DVec& aVec ) const 00030 { 00031 for( unsigned int i ( 0 ) ; i != k1NSecBinsTotal ; ++i ) 00032 { 00033 const double ctime ( ( 1.*i + 0.5 - m_tStart )/m_tau ) ; 00034 aVec[i] = ( 0 > ctime ? 0 : ctime * exp( 1. - ctime ) ) ; 00035 } 00036 }