CMS 3D CMS Logo

CastorShape Class Reference

shaper for Castor More...

#include <SimCalorimetry/CastorSim/src/CastorShape.h>

Inheritance diagram for CastorShape:

CaloVShape

List of all members.

Public Member Functions

 CastorShape (const CastorShape &d)
 CastorShape ()
double derivative (double time) const
double getTpeak () const
virtual double operator() (double time) const
virtual ~CastorShape ()

Private Member Functions

void computeShapeCastor ()

Private Attributes

int nbin_
std::vector< float > nt_


Detailed Description

shaper for Castor

Definition at line 16 of file CastorShape.h.


Constructor & Destructor Documentation

CastorShape::CastorShape (  ) 

Definition at line 4 of file CastorShape.cc.

References computeShapeCastor(), and CaloVShape::setTpeak().

00005 : nbin_(256),
00006   nt_(nbin_, 0.)
00007 {   
00008   setTpeak(2.0);
00009   computeShapeCastor();
00010 }

CastorShape::CastorShape ( const CastorShape d  ) 

Definition at line 13 of file CastorShape.cc.

References CaloVShape::setTpeak().

00014 : CaloVShape(d),
00015   nbin_(d.nbin_),
00016   nt_(d.nt_)
00017 {
00018   setTpeak(2.0);
00019 }

virtual CastorShape::~CastorShape (  )  [inline, virtual]

Definition at line 23 of file CastorShape.h.

00023 {}


Member Function Documentation

void CastorShape::computeShapeCastor (  )  [private]

Definition at line 22 of file CastorShape.cc.

References funct::exp(), j, nbin_, norm, and nt_.

Referenced by CastorShape().

00023 {
00024 
00025   //  cout << endl << " ===== computeShapeCastor  !!! " << 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 CastorShape::derivative ( double  time  )  const

Definition at line 59 of file CastorShape.cc.

00060 {
00061   return 0.0;
00062 }

double CastorShape::getTpeak (  )  const

Reimplemented from CaloVShape.

double CastorShape::operator() ( double  time  )  const [virtual]

Implements CaloVShape.

Definition at line 46 of file CastorShape.cc.

References nbin_, and nt_.

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 }


Member Data Documentation

int CastorShape::nbin_ [private]

Definition at line 33 of file CastorShape.h.

Referenced by computeShapeCastor(), and operator()().

std::vector<float> CastorShape::nt_ [private]

Definition at line 34 of file CastorShape.h.

Referenced by computeShapeCastor(), and operator()().


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:16:14 2009 for CMSSW by  doxygen 1.5.4