#include <CSCGasCollisions.h>
Public Member Functions | |
CSCGasCollisions (const edm::ParameterSet &pset) | |
bool | dumpGasCollisions (void) const |
bool | saveGasCollisions (void) const |
void | setParticleDataTable (const ParticleDataTable *pdt) |
void | simulate (const PSimHit &, std::vector< LocalPoint > &clusters, std::vector< int > &electrons, CLHEP::HepRandomEngine *) |
virtual | ~CSCGasCollisions () |
Static Public Attributes | |
static const int | MAX_STEPS = 400 |
static const int | N_ENERGY = 63 |
static const int | N_ENTRIES = N_GAMMA*N_ENERGY |
static const int | N_GAMMA = 21 |
Private Member Functions | |
void | fillCollisionsForThisGamma (float, std::vector< float > &) const |
float | generateEnergyLoss (double avCollisions, double anmin, double anmax, const std::vector< float > &collisions, CLHEP::HepRandomEngine *) const |
double | generateStep (double avCollisions, CLHEP::HepRandomEngine *) const |
void | ionize (double energyTransferred, LocalPoint startHere) const |
float | lnEnergyLoss (float, const std::vector< float > &) const |
void | readCollisionTable () |
void | writeSummary (int n_try, int n_steps, double sum_steps, float dedx, const PSimHit &simhit) const |
Private Attributes | |
double | clusterExtent |
double | deCut |
bool | dumpGasCollisions_ |
double | eion |
double | ework |
double | gasDensity |
const std::string | me |
bool | saveGasCollisions_ |
std::vector< float > | theCollisionTable |
CSCCrossGap * | theCrossGap |
std::vector< float > | theEnergyBins |
std::vector< float > | theGammaBins |
const ParticleDataTable * | theParticleDataTable |
Class to handle CSC gas ionization simulation during digitization.
This class contains the port of the old CMSIM/ORCA Fortran routine mc_clus.F, and the GEANT3 code it relied on. Of course the version here is much improved :)
Definition at line 27 of file CSCGasCollisions.h.
CSCGasCollisions::CSCGasCollisions | ( | const edm::ParameterSet & | pset | ) |
Definition at line 54 of file CSCGasCollisions.cc.
References clusterExtent, deCut, dumpGasCollisions(), dumpGasCollisions_, eion, ework, gasDensity, edm::ParameterSet::getUntrackedParameter(), me, readCollisionTable(), and saveGasCollisions().
|
virtual |
Definition at line 79 of file CSCGasCollisions.cc.
References me, and theCrossGap.
|
inline |
Definition at line 38 of file CSCGasCollisions.h.
Referenced by CSCGasCollisions(), generateEnergyLoss(), generateStep(), and simulate().
|
private |
Definition at line 545 of file CSCGasCollisions.cc.
References mps_fire::i, LogTrace, me, N_ENERGY, N_GAMMA, theCollisionTable, and theGammaBins.
Referenced by simulate().
|
private |
Definition at line 291 of file CSCGasCollisions.cc.
References CSCCrossGap::addEloss(), CSCCrossGap::beta2(), dumpGasCollisions(), JetChargeProducer_cfi::exp, CSCCrossGap::gamma(), lnEnergyLoss(), cmsBatch::log, LogTrace, me, and theCrossGap.
Referenced by simulate().
|
private |
Definition at line 276 of file CSCGasCollisions.cc.
References CSCCrossGap::addStep(), dumpGasCollisions(), LogTrace, me, and theCrossGap.
Referenced by simulate().
|
private |
Definition at line 313 of file CSCGasCollisions.cc.
References CSCCrossGap::addCluster(), CSCCrossGap::addElectrons(), CSCCrossGap::addElectronToBack(), clusterExtent, eion, ework, gasDensity, LogTrace, me, CSCCrossGap::noOfClusters(), CSCCrossGap::noOfElectrons(), funct::pow(), theCrossGap, and CSCCrossGap::unitVector().
Referenced by simulate().
|
private |
Definition at line 505 of file CSCGasCollisions.cc.
References spr::find(), LogTrace, me, and theEnergyBins.
Referenced by generateEnergyLoss().
|
private |
Definition at line 84 of file CSCGasCollisions.cc.
References Exception, connectstrParser::f1, groupFilesInBlocks::fin, mps_fire::i, LogTrace, me, N_ENERGY, N_ENTRIES, N_GAMMA, theCollisionTable, theEnergyBins, and theGammaBins.
Referenced by CSCGasCollisions().
|
inline |
void CSCGasCollisions::setParticleDataTable | ( | const ParticleDataTable * | pdt | ) |
Definition at line 143 of file CSCGasCollisions.cc.
References theParticleDataTable.
Referenced by CSCWireHitSim::setParticleDataTable().
void CSCGasCollisions::simulate | ( | const PSimHit & | simhit, |
std::vector< LocalPoint > & | clusters, | ||
std::vector< int > & | electrons, | ||
CLHEP::HepRandomEngine * | engine | ||
) |
Definition at line 149 of file CSCGasCollisions.cc.
References deCut, dumpGasCollisions(), eion, CSCCrossGap::electrons(), PSimHit::energyLoss(), PSimHit::entryPoint(), PSimHit::exitPoint(), JetChargeProducer_cfi::exp, fillCollisionsForThisGamma(), generateEnergyLoss(), generateStep(), CSCCrossGap::ionClusters(), ionize(), CSCCrossGap::length(), CSCCrossGap::logGamma(), LogTrace, ResonanceBuilder::mass, MAX_STEPS, me, N_ENERGY, PSimHit::pabs(), PSimHit::particleType(), theCrossGap, theParticleDataTable, CSCCrossGap::unitVector(), and writeSummary().
Referenced by CSCWireHitSim::getIonizationClusters().
|
private |
Definition at line 393 of file CSCGasCollisions.cc.
References eion, genericTrackCleaner_cfi::electrons, CSCCrossGap::electrons(), CSCCrossGap::eLossPerStep(), PSimHit::energyLoss(), PSimHit::entryPoint(), PSimHit::exitPoint(), spr::find(), objects.autophobj::float, mps_fire::i, CSCCrossGap::ionClusters(), MAX_STEPS, PSimHit::pabs(), PSimHit::particleType(), CSCCrossGap::stepLengths(), customisers::steps, and theCrossGap.
Referenced by simulate().
|
private |
Definition at line 69 of file CSCGasCollisions.h.
Referenced by CSCGasCollisions(), and ionize().
|
private |
Definition at line 66 of file CSCGasCollisions.h.
Referenced by CSCGasCollisions(), and simulate().
|
private |
Definition at line 78 of file CSCGasCollisions.h.
Referenced by CSCGasCollisions().
|
private |
Definition at line 67 of file CSCGasCollisions.h.
Referenced by CSCGasCollisions(), ionize(), simulate(), and writeSummary().
|
private |
Definition at line 68 of file CSCGasCollisions.h.
Referenced by CSCGasCollisions(), and ionize().
|
private |
Definition at line 60 of file CSCGasCollisions.h.
Referenced by CSCGasCollisions(), and ionize().
|
static |
Definition at line 44 of file CSCGasCollisions.h.
Referenced by simulate(), and writeSummary().
|
private |
Definition at line 59 of file CSCGasCollisions.h.
Referenced by CSCGasCollisions(), fillCollisionsForThisGamma(), generateEnergyLoss(), generateStep(), ionize(), lnEnergyLoss(), readCollisionTable(), simulate(), and ~CSCGasCollisions().
|
static |
Definition at line 42 of file CSCGasCollisions.h.
Referenced by fillCollisionsForThisGamma(), readCollisionTable(), and simulate().
Definition at line 43 of file CSCGasCollisions.h.
Referenced by readCollisionTable().
|
static |
Definition at line 41 of file CSCGasCollisions.h.
Referenced by fillCollisionsForThisGamma(), and readCollisionTable().
|
private |
Definition at line 77 of file CSCGasCollisions.h.
|
private |
Definition at line 73 of file CSCGasCollisions.h.
Referenced by fillCollisionsForThisGamma(), and readCollisionTable().
|
private |
Definition at line 75 of file CSCGasCollisions.h.
Referenced by generateEnergyLoss(), generateStep(), ionize(), simulate(), writeSummary(), and ~CSCGasCollisions().
|
private |
Definition at line 72 of file CSCGasCollisions.h.
Referenced by lnEnergyLoss(), and readCollisionTable().
|
private |
Definition at line 71 of file CSCGasCollisions.h.
Referenced by fillCollisionsForThisGamma(), and readCollisionTable().
|
private |
Definition at line 76 of file CSCGasCollisions.h.
Referenced by setParticleDataTable(), and simulate().