CMS 3D CMS Logo

MaterialEffectsSimulator Class Reference

This is the generic class for Material Effects in the tracker material, from which FamosPairProductionSimulator, FamosBremsstrahlungSimulator, FamosEnergyLossSimulator and FamosMultipleScatteringSimulator inherit. More...

#include <FastSimulation/MaterialEffects/interface/MaterialEffectsSimulator.h>

Inheritance diagram for MaterialEffectsSimulator:

BremsstrahlungSimulator EnergyLossSimulator MultipleScatteringSimulator NuclearInteractionSimulator PairProductionSimulator

List of all members.

Public Types

typedef std::vector
< RawParticle >
::const_iterator 
RHEP_const_iter

Public Member Functions

RHEP_const_iter beginDaughters () const
 Returns const iterator to the beginning of the daughters list.
int closestDaughterId ()
 The id of the closest charged daughter (filled for nuclear interactions only).
double eMass () const
 Electron mass in GeV/c2.
RHEP_const_iter endDaughters () const
 Returns const iterator to the end of the daughters list.
double excitE () const
 Mean excitation energy (in GeV).
 MaterialEffectsSimulator (const RandomEngine *engine, double A=28.0855, double Z=14.0000, double density=2.329, double radLen=9.360)
unsigned nDaughters () const
 Returns the number of daughters.
XYZVector orthogonal (const XYZVector &) const
 A vector orthogonal to another one (because it's not in XYZTLorentzVector).
double radLenIncm () const
 One radiation length in cm.
double rho () const
 Density in g/cm3.
void setNormalVector (const GlobalVector &normal)
 Sets the vector normal to the surface traversed.
double theA () const
 Functions to return atomic properties of the material Here the tracker material is assumed to be 100% Silicon.
double theZ () const
 Z.
void updateState (ParticlePropagator &myTrack, double radlen)
 Compute the material effect (calls the sub class).
virtual ~MaterialEffectsSimulator ()

Protected Attributes

std::vector< RawParticle_theUpdatedState
double A
double density
double radLen
double radLengths
const RandomEnginerandom
int theClosestChargedDaughterId
GlobalVector theNormalVector
double Z

Private Member Functions

virtual void compute (ParticlePropagator &Particle)=0
 Overloaded in all material effects updtators.
double radiationLength () const
 Returns the fraction of radiation lengths traversed.


Detailed Description

This is the generic class for Material Effects in the tracker material, from which FamosPairProductionSimulator, FamosBremsstrahlungSimulator, FamosEnergyLossSimulator and FamosMultipleScatteringSimulator inherit.

It determines the fraction of radiation lengths traversed by the particle in this tracker layer, defines the tracker layer characteristics (hmmm, 100% Silicon, very crude, but what can we do?) and returns a list of new RawParticles if needed.

Author:
Stephan Wynhoff, Florian Beaudette, Patrick Janot $Date: Last update 8-Jan-2004

Definition at line 23 of file MaterialEffectsSimulator.h.


Member Typedef Documentation

typedef std::vector<RawParticle>::const_iterator MaterialEffectsSimulator::RHEP_const_iter

Definition at line 27 of file MaterialEffectsSimulator.h.


Constructor & Destructor Documentation

MaterialEffectsSimulator::MaterialEffectsSimulator ( const RandomEngine engine,
double  A = 28.0855,
double  Z = 14.0000,
double  density = 2.329,
double  radLen = 9.360 
)

Definition at line 10 of file MaterialEffectsSimulator.cc.

References _theUpdatedState, and random.

00012                                                                                    :
00013   A(A), Z(Z), density(density), radLen(radLen)
00014 { 
00015   random = engine;
00016   _theUpdatedState.clear(); 
00017 }

MaterialEffectsSimulator::~MaterialEffectsSimulator (  )  [virtual]

Definition at line 19 of file MaterialEffectsSimulator.cc.

References _theUpdatedState.

00019                                                     {
00020   // Don't delete the objects contained in the list
00021   _theUpdatedState.clear();
00022 }


Member Function Documentation

RHEP_const_iter MaterialEffectsSimulator::beginDaughters (  )  const [inline]

Returns const iterator to the beginning of the daughters list.

Definition at line 59 of file MaterialEffectsSimulator.h.

References _theUpdatedState.

Referenced by MaterialEffects::interact().

00059 {return _theUpdatedState.begin();}

int MaterialEffectsSimulator::closestDaughterId (  )  [inline]

The id of the closest charged daughter (filled for nuclear interactions only).

Definition at line 74 of file MaterialEffectsSimulator.h.

References theClosestChargedDaughterId.

Referenced by MaterialEffects::interact().

00074 { return theClosestChargedDaughterId; } 

virtual void MaterialEffectsSimulator::compute ( ParticlePropagator Particle  )  [private, pure virtual]

Overloaded in all material effects updtators.

Implemented in BremsstrahlungSimulator, EnergyLossSimulator, MultipleScatteringSimulator, NuclearInteractionSimulator, and PairProductionSimulator.

Referenced by updateState().

double MaterialEffectsSimulator::eMass (  )  const [inline]

Electron mass in GeV/c2.

Definition at line 52 of file MaterialEffectsSimulator.h.

Referenced by EnergyLossSimulator::compute(), and PairProductionSimulator::compute().

00052 { return 0.000510998902; }

RHEP_const_iter MaterialEffectsSimulator::endDaughters (  )  const [inline]

Returns const iterator to the end of the daughters list.

Definition at line 62 of file MaterialEffectsSimulator.h.

References _theUpdatedState.

Referenced by MaterialEffects::interact().

00062 {return _theUpdatedState.end();}

double MaterialEffectsSimulator::excitE (  )  const [inline]

Mean excitation energy (in GeV).

Definition at line 50 of file MaterialEffectsSimulator.h.

References theZ().

Referenced by EnergyLossSimulator::compute().

00050 { return 12.5E-9*theZ(); }

unsigned MaterialEffectsSimulator::nDaughters (  )  const [inline]

Returns the number of daughters.

Definition at line 65 of file MaterialEffectsSimulator.h.

References _theUpdatedState.

Referenced by MaterialEffects::interact().

00065 {return _theUpdatedState.size();}

XYZVector MaterialEffectsSimulator::orthogonal ( const XYZVector aVector  )  const

A vector orthogonal to another one (because it's not in XYZTLorentzVector).

Definition at line 37 of file MaterialEffectsSimulator.cc.

References x, y, and z.

Referenced by NuclearInteractionSimulator::compute(), and MultipleScatteringSimulator::compute().

00037                                                                    { 
00038 
00039   double x = fabs(aVector.X());
00040   double y = fabs(aVector.Y());
00041   double z = fabs(aVector.Z());
00042 
00043   if ( x < y ) 
00044     return x < z ? 
00045       XYZVector(0.,aVector.Z(),-aVector.Y()) :
00046       XYZVector(aVector.Y(),-aVector.X(),0.);
00047   else
00048     return y < z ? 
00049       XYZVector(-aVector.Z(),0.,aVector.X()) :
00050       XYZVector(aVector.Y(),-aVector.X(),0.);
00051 
00052 }

double MaterialEffectsSimulator::radiationLength (  )  const [inline, private]

Returns the fraction of radiation lengths traversed.

Definition at line 82 of file MaterialEffectsSimulator.h.

References radLengths.

00082 {return radLengths;}

double MaterialEffectsSimulator::radLenIncm (  )  const [inline]

One radiation length in cm.

Definition at line 48 of file MaterialEffectsSimulator.h.

References radLen.

Referenced by EnergyLossSimulator::compute(), and MultipleScatteringSimulator::compute().

00048 { return radLen; }

double MaterialEffectsSimulator::rho (  )  const [inline]

Density in g/cm3.

Definition at line 46 of file MaterialEffectsSimulator.h.

References density.

Referenced by EnergyLossSimulator::compute().

00046 { return density; }

void MaterialEffectsSimulator::setNormalVector ( const GlobalVector normal  )  [inline]

Sets the vector normal to the surface traversed.

Definition at line 68 of file MaterialEffectsSimulator.h.

References theNormalVector.

Referenced by MuonSimHitProducer::applyMaterialEffects(), and MaterialEffects::interact().

00068 { theNormalVector = normal; }

double MaterialEffectsSimulator::theA (  )  const [inline]

Functions to return atomic properties of the material Here the tracker material is assumed to be 100% Silicon.

A

Definition at line 42 of file MaterialEffectsSimulator.h.

References A.

Referenced by EnergyLossSimulator::compute(), and NuclearInteractionSimulator::compute().

00042 { return A; }

double MaterialEffectsSimulator::theZ (  )  const [inline]

Z.

Definition at line 44 of file MaterialEffectsSimulator.h.

References Z.

Referenced by EnergyLossSimulator::compute(), excitE(), PairProductionSimulator::gbteth(), and BremsstrahlungSimulator::gbteth().

00044 { return Z; }

void MaterialEffectsSimulator::updateState ( ParticlePropagator myTrack,
double  radlen 
)

Compute the material effect (calls the sub class).

Definition at line 24 of file MaterialEffectsSimulator.cc.

References _theUpdatedState, compute(), radLengths, and theClosestChargedDaughterId.

Referenced by MuonSimHitProducer::applyMaterialEffects(), and MaterialEffects::interact().

00026 {
00027 
00028   _theUpdatedState.clear();
00029   theClosestChargedDaughterId = -1;
00030 
00031   radLengths = radlen;
00032   if ( radLengths > 0. ) compute(Particle);
00033 
00034 }


Member Data Documentation

std::vector<RawParticle> MaterialEffectsSimulator::_theUpdatedState [protected]

Definition at line 87 of file MaterialEffectsSimulator.h.

Referenced by beginDaughters(), NuclearInteractionSimulator::compute(), BremsstrahlungSimulator::compute(), PairProductionSimulator::compute(), endDaughters(), MaterialEffectsSimulator(), nDaughters(), updateState(), and ~MaterialEffectsSimulator().

double MaterialEffectsSimulator::A [protected]

Definition at line 92 of file MaterialEffectsSimulator.h.

Referenced by theA().

double MaterialEffectsSimulator::density [protected]

Definition at line 94 of file MaterialEffectsSimulator.h.

Referenced by rho().

double MaterialEffectsSimulator::radLen [protected]

Definition at line 95 of file MaterialEffectsSimulator.h.

Referenced by radLenIncm().

double MaterialEffectsSimulator::radLengths [protected]

Definition at line 89 of file MaterialEffectsSimulator.h.

Referenced by EnergyLossSimulator::compute(), NuclearInteractionSimulator::compute(), BremsstrahlungSimulator::compute(), PairProductionSimulator::compute(), MultipleScatteringSimulator::compute(), radiationLength(), and updateState().

const RandomEngine* MaterialEffectsSimulator::random [protected]

Definition at line 99 of file MaterialEffectsSimulator.h.

Referenced by BremsstrahlungSimulator::brem(), NuclearInteractionSimulator::compute(), PairProductionSimulator::compute(), MultipleScatteringSimulator::compute(), PairProductionSimulator::gbteth(), BremsstrahlungSimulator::gbteth(), MaterialEffectsSimulator(), NuclearInteractionSimulator::NuclearInteractionSimulator(), and BremsstrahlungSimulator::poisson().

int MaterialEffectsSimulator::theClosestChargedDaughterId [protected]

Definition at line 101 of file MaterialEffectsSimulator.h.

Referenced by closestDaughterId(), NuclearInteractionSimulator::compute(), and updateState().

GlobalVector MaterialEffectsSimulator::theNormalVector [protected]

Definition at line 97 of file MaterialEffectsSimulator.h.

Referenced by MultipleScatteringSimulator::compute(), and setNormalVector().

double MaterialEffectsSimulator::Z [protected]

Definition at line 93 of file MaterialEffectsSimulator.h.

Referenced by theZ().


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