CMS 3D CMS Logo

Public Member Functions | Private Attributes

HcalPulseShape Class Reference

#include <HcalPulseShape.h>

List of all members.

Public Member Functions

float at (double time) const
float getTpeak () const
 HcalPulseShape ()
float integrate (double tmin, double tmax) const
int nbins () const
float operator() (double time) const
void setNBin (int n)
void setShapeBin (int i, float f)

Private Attributes

int nbin_
std::vector< float > shape_
float tpeak_

Detailed Description

Definition at line 6 of file HcalPulseShape.h.


Constructor & Destructor Documentation

HcalPulseShape::HcalPulseShape ( )

Definition at line 3 of file HcalPulseShape.cc.

References nbin_, and tpeak_.

                               {
  nbin_=0;
  tpeak_=0;
}

Member Function Documentation

float HcalPulseShape::at ( double  time) const

Definition at line 22 of file HcalPulseShape.cc.

References i, nbin_, and shape_.

Referenced by HcalShapeIntegrator::HcalShapeIntegrator(), HBHEPulseShapeFlagSetter::Initialize(), integrate(), HFShape::operator()(), HcalShape::operator()(), operator()(), and HcalNoiseMonitor::ReadHcalPulse().

                                       {
  // shape is in 1 ns steps
  int i=(int)(t+0.5);
  float rv=0;
  if (i>=0 && i<nbin_) rv=shape_[i];
  return rv;
}
float HcalPulseShape::getTpeak ( ) const [inline]

Definition at line 11 of file HcalPulseShape.h.

References tpeak_.

{ return tpeak_; }
float HcalPulseShape::integrate ( double  tmin,
double  tmax 
) const

Definition at line 30 of file HcalPulseShape.cc.

References at(), and lumiQTWidget::t.

                                                          {
  static const float int_delta_ns = 0.05f;
  double intval = 0.0;

  for (double t = t1; t < t2; t+= int_delta_ns) {
    float loedge = at(t);
    float hiedge = at(t+int_delta_ns);
    intval += (loedge+hiedge)*int_delta_ns/2.0;
  }
  return (float)intval;
}
int HcalPulseShape::nbins ( ) const [inline]

Definition at line 15 of file HcalPulseShape.h.

References nbin_.

{return nbin_;}
float HcalPulseShape::operator() ( double  time) const

Definition at line 17 of file HcalPulseShape.cc.

References at().

                                               {
  // shape is in 1 ns steps
  return at(t);
}
void HcalPulseShape::setNBin ( int  n)

Definition at line 8 of file HcalPulseShape.cc.

References n, nbin_, and shape_.

Referenced by HcalPulseShapes::computeHFShape(), HcalPulseShapes::computeHPDShape(), and HcalPulseShapes::computeSiPMShape().

                                  {
  nbin_=n;
  shape_=std::vector<float>(n,0.0f);
}
void HcalPulseShape::setShapeBin ( int  i,
float  f 
)

Definition at line 13 of file HcalPulseShape.cc.

References f, i, nbin_, and shape_.

Referenced by HcalPulseShapes::computeHFShape(), HcalPulseShapes::computeHPDShape(), and HcalPulseShapes::computeSiPMShape().

                                               {
  if (i>=0 && i<nbin_) shape_[i]=f;
}

Member Data Documentation

int HcalPulseShape::nbin_ [private]

Definition at line 18 of file HcalPulseShape.h.

Referenced by at(), HcalPulseShape(), nbins(), setNBin(), and setShapeBin().

std::vector<float> HcalPulseShape::shape_ [private]

Definition at line 17 of file HcalPulseShape.h.

Referenced by at(), setNBin(), and setShapeBin().

float HcalPulseShape::tpeak_ [private]

Definition at line 19 of file HcalPulseShape.h.

Referenced by getTpeak(), and HcalPulseShape().