CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes
SiLinearChargeDivider Class Reference

#include <SiLinearChargeDivider.h>

Inheritance diagram for SiLinearChargeDivider:
SiChargeDivider

Public Member Functions

SiChargeDivider::ionization_type divide (const PSimHit *, const LocalVector &, double, const StripGeomDetUnit &det, CLHEP::HepRandomEngine *)
 
void setParticleDataTable (const ParticleDataTable *pdt)
 
 SiLinearChargeDivider (const edm::ParameterSet &conf)
 
virtual ~SiLinearChargeDivider ()
 
- Public Member Functions inherited from SiChargeDivider
virtual ~SiChargeDivider ()
 

Private Member Functions

float DeconvolutionShape (const PSimHit *, const StripGeomDetUnit &det)
 
float driftXPos (const Local3DPoint &pos, const LocalVector &drift, double thickness)
 
void fluctuateEloss (double const particleMass, float momentum, float eloss, float length, int NumberOfSegmentation, float elossVector[], CLHEP::HepRandomEngine *)
 
float PeakShape (const PSimHit *, const StripGeomDetUnit &det)
 
float TimeResponse (const PSimHit *hit, const StripGeomDetUnit &det)
 

Private Attributes

const int chargedivisionsPerStrip
 
const double cosmicShift
 
const double deltaCut
 
std::unique_ptr
< SiG4UniversalFluctuation
fluctuate
 
const bool fluctuateCharge
 
const bool peakMode
 
const ParticleDataTabletheParticleDataTable
 

Static Private Attributes

static float const decoValues [651]
 
static float const peakValues [921]
 

Additional Inherited Members

- Public Types inherited from SiChargeDivider
typedef std::vector
< EnergyDepositUnit
ionization_type
 

Detailed Description

Concrete implementation of SiChargeDivider. It divides the charge on the line connecting entry and exit point of the SimTrack in the Silicon. Effects that are considered here are:

Definition at line 27 of file SiLinearChargeDivider.h.

Constructor & Destructor Documentation

SiLinearChargeDivider::SiLinearChargeDivider ( const edm::ParameterSet conf)

Definition at line 7 of file SiLinearChargeDivider.cc.

SiLinearChargeDivider::~SiLinearChargeDivider ( )
virtual

Definition at line 26 of file SiLinearChargeDivider.cc.

Member Function Documentation

float SiLinearChargeDivider::DeconvolutionShape ( const PSimHit hit,
const StripGeomDetUnit det 
)
private

Definition at line 135 of file SiLinearChargeDivider.cc.

Referenced by TimeResponse().

SiChargeDivider::ionization_type SiLinearChargeDivider::divide ( const PSimHit hit,
const LocalVector driftdir,
double  moduleThickness,
const StripGeomDetUnit det,
CLHEP::HepRandomEngine *  engine 
)
virtual

Implements SiChargeDivider.

Definition at line 30 of file SiLinearChargeDivider.cc.

float SiLinearChargeDivider::driftXPos ( const Local3DPoint pos,
const LocalVector drift,
double  thickness 
)
inlineprivate

Definition at line 55 of file SiLinearChargeDivider.h.

References PV3DBase< T, PVType, FrameType >::x(), and PV3DBase< T, PVType, FrameType >::z().

55  {
56  return pos.x()+(thickness/2.-pos.z())*drift.x()/drift.z();
57  }
T z() const
Definition: PV3DBase.h:64
T x() const
Definition: PV3DBase.h:62
void SiLinearChargeDivider::fluctuateEloss ( double const  particleMass,
float  momentum,
float  eloss,
float  length,
int  NumberOfSegmentation,
float  elossVector[],
CLHEP::HepRandomEngine *  engine 
)
private

Definition at line 95 of file SiLinearChargeDivider.cc.

float SiLinearChargeDivider::PeakShape ( const PSimHit hit,
const StripGeomDetUnit det 
)
private

Definition at line 127 of file SiLinearChargeDivider.cc.

Referenced by TimeResponse().

void SiLinearChargeDivider::setParticleDataTable ( const ParticleDataTable pdt)
inlinevirtual

Implements SiChargeDivider.

Definition at line 40 of file SiLinearChargeDivider.h.

References theParticleDataTable.

40 { theParticleDataTable = pdt; }
const ParticleDataTable * theParticleDataTable
float SiLinearChargeDivider::TimeResponse ( const PSimHit hit,
const StripGeomDetUnit det 
)
inlineprivate

Definition at line 61 of file SiLinearChargeDivider.h.

References DeconvolutionShape(), peakMode, and PeakShape().

61  {
62  return (peakMode ? PeakShape(hit,det) : DeconvolutionShape(hit,det));
63  }
float PeakShape(const PSimHit *, const StripGeomDetUnit &det)
float DeconvolutionShape(const PSimHit *, const StripGeomDetUnit &det)

Member Data Documentation

const int SiLinearChargeDivider::chargedivisionsPerStrip
private

Definition at line 46 of file SiLinearChargeDivider.h.

const double SiLinearChargeDivider::cosmicShift
private

Definition at line 48 of file SiLinearChargeDivider.h.

float const SiLinearChargeDivider::decoValues
staticprivate

Definition at line 71 of file SiLinearChargeDivider.h.

const double SiLinearChargeDivider::deltaCut
private

Definition at line 47 of file SiLinearChargeDivider.h.

std::unique_ptr<SiG4UniversalFluctuation> SiLinearChargeDivider::fluctuate
private

Definition at line 53 of file SiLinearChargeDivider.h.

const bool SiLinearChargeDivider::fluctuateCharge
private

Definition at line 45 of file SiLinearChargeDivider.h.

const bool SiLinearChargeDivider::peakMode
private

Definition at line 44 of file SiLinearChargeDivider.h.

Referenced by TimeResponse().

float const SiLinearChargeDivider::peakValues
staticprivate

Definition at line 69 of file SiLinearChargeDivider.h.

const ParticleDataTable* SiLinearChargeDivider::theParticleDataTable
private

Definition at line 50 of file SiLinearChargeDivider.h.

Referenced by setParticleDataTable().