Main Page
Namespaces
Classes
Package Documentation
SimMuon
CSCDigitizer
src
CSCGasCollisions.h
Go to the documentation of this file.
1
#ifndef MU_END_CSC_GAS_COLLISIONS_H
2
#define MU_END_CSC_GAS_COLLISIONS_H
3
14
#include "
FWCore/ParameterSet/interface/ParameterSet.h
"
15
#include "
DataFormats/GeometryVector/interface/LocalPoint.h
"
16
#include "
SimDataFormats/TrackingHit/interface/PSimHit.h
"
17
#include "
SimMuon/CSCDigitizer/src/CSCCrossGap.h
"
18
#include "
SimGeneral/HepPDTRecord/interface/ParticleDataTable.h
"
19
20
#include <vector>
21
#include <string>
22
23
namespace
CLHEP
{
24
class
HepRandomEngine;
25
}
26
27
class
CSCGasCollisions
{
28
public
:
29
30
CSCGasCollisions
(
const
edm::ParameterSet
&
pset
);
31
virtual
~
CSCGasCollisions
();
32
33
void
setParticleDataTable(
const
ParticleDataTable
* pdt);
34
35
void
simulate(
const
PSimHit
&,
36
std::vector<LocalPoint>&
clusters
, std::vector<int>&
electrons
, CLHEP::HepRandomEngine* );
37
38
bool
dumpGasCollisions
(
void
)
const
{
return
dumpGasCollisions_; }
39
bool
saveGasCollisions
(
void
)
const
{
return
saveGasCollisions_; }
40
41
static
const
int
N_GAMMA = 21;
42
static
const
int
N_ENERGY = 63;
43
static
const
int
N_ENTRIES = N_GAMMA*N_ENERGY;
44
static
const
int
MAX_STEPS = 400;
45
46
private
:
47
void
readCollisionTable();
48
void
fillCollisionsForThisGamma(
float
, std::vector<float>& )
const
;
49
float
lnEnergyLoss(
float
,
const
std::vector<float>& )
const
;
50
double
generateStep(
double
avCollisions, CLHEP::HepRandomEngine* )
const
;
51
float
generateEnergyLoss(
double
avCollisions,
52
double
anmin,
double
anmax,
const
std::vector<float>& collisions,
53
CLHEP::HepRandomEngine* )
const
;
54
55
void
ionize(
double
energyTransferred,
LocalPoint
startHere)
const
;
56
57
void
writeSummary(
int
n_try,
int
n_steps,
double
sum_steps,
float
dedx,
const
PSimHit
& simhit )
const
;
58
59
const
std::string
me
;
// class name
60
double
gasDensity
;
// Density of CSC gas mix
61
// The question of what is reasonable for deCut is complex. But it seems clear that
62
// this simulation is not credible if any delta electrons generated here
63
// have ranges more than a few mm, or equivalently, energies above a few keV.
64
// deCut = 1000 = 1 keV
65
// deCut = 10000 = 10 keV
66
double
deCut
;
// Delta electron cutoff in eV (Match GEANT!)
67
double
eion
;
// ionization threshold (eV) (min. E for ionizatiom)
68
double
ework
;
// effective work function (av. energy to create one ion pair)
69
double
clusterExtent
;
// Precision of localization of ion clus. Typically 10 microns.
70
71
std::vector<float>
theGammaBins
;
72
std::vector<float>
theEnergyBins
;
73
std::vector<float>
theCollisionTable
;
74
75
CSCCrossGap
*
theCrossGap
;
// Owned by CSCGasCollisions
76
const
ParticleDataTable
*
theParticleDataTable
;
77
bool
saveGasCollisions_
;
// write file of collisions details (not yet implemented in cmssw)
78
bool
dumpGasCollisions_
;
// flag to write summary
79
};
80
81
#endif
LocalPoint.h
CSCGasCollisions::saveGasCollisions_
bool saveGasCollisions_
Definition:
CSCGasCollisions.h:77
ParticleDataTable
HepPDT::ParticleDataTable ParticleDataTable
Definition:
ParticleDataTable.h:8
CSCGasCollisions::saveGasCollisions
bool saveGasCollisions(void) const
Definition:
CSCGasCollisions.h:39
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition:
AlCaHLTBitMon_QueryRunRegistry.py:255
CSCGasCollisions::dumpGasCollisions_
bool dumpGasCollisions_
Definition:
CSCGasCollisions.h:78
muonDTDigis_cfi.pset
pset
Definition:
muonDTDigis_cfi.py:27
CSCGasCollisions
Definition:
CSCGasCollisions.h:27
CSCCrossGap.h
CSCGasCollisions::theGammaBins
std::vector< float > theGammaBins
Definition:
CSCGasCollisions.h:71
CSCGasCollisions::me
const std::string me
Definition:
CSCGasCollisions.h:59
ParameterSet.h
CLHEP
Definition:
CocoaGlobals.h:27
ParticleDataTable.h
CSCGasCollisions::dumpGasCollisions
bool dumpGasCollisions(void) const
Definition:
CSCGasCollisions.h:38
CSCGasCollisions::theParticleDataTable
const ParticleDataTable * theParticleDataTable
Definition:
CSCGasCollisions.h:76
CSCGasCollisions::eion
double eion
Definition:
CSCGasCollisions.h:67
PSimHit.h
CSCGasCollisions::theCollisionTable
std::vector< float > theCollisionTable
Definition:
CSCGasCollisions.h:73
fastPrimaryVertexProducer_cfi.clusters
clusters
Definition:
fastPrimaryVertexProducer_cfi.py:5
CSCGasCollisions::ework
double ework
Definition:
CSCGasCollisions.h:68
CSCCrossGap
Definition:
CSCCrossGap.h:22
CSCGasCollisions::gasDensity
double gasDensity
Definition:
CSCGasCollisions.h:60
CSCGasCollisions::theEnergyBins
std::vector< float > theEnergyBins
Definition:
CSCGasCollisions.h:72
Point3DBase< float, LocalTag >
PSimHit
Definition:
PSimHit.h:15
CSCGasCollisions::clusterExtent
double clusterExtent
Definition:
CSCGasCollisions.h:69
edm::ParameterSet
Definition:
ParameterSet.h:36
CSCGasCollisions::theCrossGap
CSCCrossGap * theCrossGap
Definition:
CSCGasCollisions.h:75
CSCGasCollisions::deCut
double deCut
Definition:
CSCGasCollisions.h:66
electrons_cff.electrons
electrons
Definition:
electrons_cff.py:106
Generated for CMSSW Reference Manual by
1.8.11