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