#include <CSCGasCollisions.h>
Public Member Functions | |
CSCGasCollisions () | |
void | setParticleDataTable (const ParticleDataTable *pdt) |
void | setRandomEngine (CLHEP::HepRandomEngine &engine) |
void | simulate (const PSimHit &, std::vector< LocalPoint > &clusters, std::vector< int > &electrons) |
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) const |
double | generateStep (double avCollisions) const |
void | ionize (double energyTransferred, LocalPoint startHere) const |
float | lnEnergyLoss (float, const std::vector< float > &) const |
void | readCollisionTable () |
void | writeSummary (int n_steps, double sum_steps, float dedx, float simHiteloss) const |
Private Attributes | |
double | clusterExtent |
double | deCut |
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 |
CLHEP::RandExponential * | theRandExponential |
CLHEP::RandFlat * | theRandFlat |
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 24 of file CSCGasCollisions.h.
CSCGasCollisions::CSCGasCollisions | ( | ) |
Definition at line 47 of file CSCGasCollisions.cc.
References clusterExtent, deCut, eion, ework, gasDensity, me, readCollisionTable(), and saveGasCollisions.
|
virtual |
Definition at line 70 of file CSCGasCollisions.cc.
References me, theCrossGap, theRandExponential, and theRandFlat.
|
private |
Definition at line 510 of file CSCGasCollisions.cc.
References i, LogTrace, me, N_ENERGY, N_GAMMA, theCollisionTable, and theGammaBins.
Referenced by simulate().
|
private |
Definition at line 292 of file CSCGasCollisions.cc.
References CSCCrossGap::beta2(), create_public_lumi_plots::exp, CSCCrossGap::gamma(), lnEnergyLoss(), create_public_lumi_plots::log, LogTrace, me, theCrossGap, and theRandFlat.
Referenced by simulate().
|
private |
Definition at line 277 of file CSCGasCollisions.cc.
References LogTrace, me, relval_parameters_module::step, and theRandExponential.
Referenced by simulate().
|
private |
Definition at line 314 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 470 of file CSCGasCollisions.cc.
References spr::find(), LogTrace, me, and theEnergyBins.
Referenced by generateEnergyLoss().
|
private |
Definition at line 77 of file CSCGasCollisions.cc.
References edm::hlt::Exception, python.connectstrParser::f1, groupFilesInBlocks::fin, i, j, LogTrace, me, N_ENERGY, N_ENTRIES, N_GAMMA, FileInPath::name(), getHLTPrescaleColumns::path, theCollisionTable, theEnergyBins, and theGammaBins.
Referenced by CSCGasCollisions().
void CSCGasCollisions::setParticleDataTable | ( | const ParticleDataTable * | pdt | ) |
Definition at line 146 of file CSCGasCollisions.cc.
References theParticleDataTable.
Referenced by CSCWireHitSim::setParticleDataTable().
void CSCGasCollisions::setRandomEngine | ( | CLHEP::HepRandomEngine & | engine | ) |
Definition at line 152 of file CSCGasCollisions.cc.
References theRandExponential, and theRandFlat.
Referenced by CSCWireHitSim::setRandomEngine().
void CSCGasCollisions::simulate | ( | const PSimHit & | simHit, |
std::vector< LocalPoint > & | clusters, | ||
std::vector< int > & | electrons | ||
) |
Definition at line 159 of file CSCGasCollisions.cc.
References deCut, eion, CSCCrossGap::electrons(), PSimHit::entryPoint(), PSimHit::exitPoint(), create_public_lumi_plots::exp, fillCollisionsForThisGamma(), generateEnergyLoss(), generateStep(), CSCCrossGap::ionClusters(), ionize(), CSCCrossGap::length(), CSCCrossGap::logGamma(), LogTrace, MAX_STEPS, me, N_ENERGY, PSimHit::pabs(), PSimHit::particleType(), relval_parameters_module::step, theCrossGap, theParticleDataTable, and CSCCrossGap::unitVector().
Referenced by CSCWireHitSim::getIonizationClusters().
|
private |
Definition at line 389 of file CSCGasCollisions.cc.
References filterCSVwithJSON::copy, gather_cfg::cout, eion, CSCCrossGap::electrons(), HI_PhotonSkim_cff::electrons, CSCCrossGap::eLossPerStep(), spr::find(), CSCCrossGap::ionClusters(), CSCCrossGap::noOfSteps(), saveGasCollisions, CSCCrossGap::stepLengths(), relval_steps::steps, and theCrossGap.
|
private |
Definition at line 64 of file CSCGasCollisions.h.
Referenced by CSCGasCollisions(), and ionize().
|
private |
Definition at line 61 of file CSCGasCollisions.h.
Referenced by CSCGasCollisions(), and simulate().
|
private |
Definition at line 62 of file CSCGasCollisions.h.
Referenced by CSCGasCollisions(), ionize(), simulate(), and writeSummary().
|
private |
Definition at line 63 of file CSCGasCollisions.h.
Referenced by CSCGasCollisions(), and ionize().
|
private |
Definition at line 55 of file CSCGasCollisions.h.
Referenced by CSCGasCollisions(), and ionize().
|
static |
Definition at line 40 of file CSCGasCollisions.h.
Referenced by simulate().
|
private |
Definition at line 54 of file CSCGasCollisions.h.
Referenced by CSCGasCollisions(), fillCollisionsForThisGamma(), generateEnergyLoss(), generateStep(), ionize(), lnEnergyLoss(), readCollisionTable(), simulate(), and ~CSCGasCollisions().
|
static |
Definition at line 38 of file CSCGasCollisions.h.
Referenced by fillCollisionsForThisGamma(), readCollisionTable(), and simulate().
Definition at line 39 of file CSCGasCollisions.h.
Referenced by readCollisionTable().
|
static |
Definition at line 37 of file CSCGasCollisions.h.
Referenced by fillCollisionsForThisGamma(), and readCollisionTable().
|
private |
Definition at line 74 of file CSCGasCollisions.h.
Referenced by CSCGasCollisions(), and writeSummary().
|
private |
Definition at line 68 of file CSCGasCollisions.h.
Referenced by fillCollisionsForThisGamma(), and readCollisionTable().
|
private |
Definition at line 70 of file CSCGasCollisions.h.
Referenced by generateEnergyLoss(), ionize(), simulate(), writeSummary(), and ~CSCGasCollisions().
|
private |
Definition at line 67 of file CSCGasCollisions.h.
Referenced by lnEnergyLoss(), and readCollisionTable().
|
private |
Definition at line 66 of file CSCGasCollisions.h.
Referenced by fillCollisionsForThisGamma(), and readCollisionTable().
|
private |
Definition at line 71 of file CSCGasCollisions.h.
Referenced by setParticleDataTable(), and simulate().
|
private |
Definition at line 73 of file CSCGasCollisions.h.
Referenced by generateStep(), setRandomEngine(), and ~CSCGasCollisions().
|
private |
Definition at line 72 of file CSCGasCollisions.h.
Referenced by generateEnergyLoss(), setRandomEngine(), and ~CSCGasCollisions().