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
CSCGasCollisions::theEnergyBins
std::vector< float > theEnergyBins
Definition:
CSCGasCollisions.h:76
CSCGasCollisions::~CSCGasCollisions
virtual ~CSCGasCollisions()
Definition:
CSCGasCollisions.cc:87
CSCGasCollisions::ionize
void ionize(double energyTransferred, LocalPoint startHere) const
Definition:
CSCGasCollisions.cc:319
CSCGasCollisions::MAX_STEPS
static const int MAX_STEPS
Definition:
CSCGasCollisions.h:45
CSCGasCollisions::CSCGasCollisions
CSCGasCollisions(const edm::ParameterSet &pset)
Definition:
CSCGasCollisions.cc:58
CSCGasCollisions::N_ENTRIES
static const int N_ENTRIES
Definition:
CSCGasCollisions.h:44
CSCCrossGap.h
CSCCrossGap
Definition:
CSCCrossGap.h:22
CSCGasCollisions::generateStep
double generateStep(double avCollisions, CLHEP::HepRandomEngine *) const
Definition:
CSCGasCollisions.cc:277
CSCGasCollisions::readCollisionTable
void readCollisionTable()
Definition:
CSCGasCollisions.cc:92
CSCGasCollisions::eion
double eion
Definition:
CSCGasCollisions.h:70
CSCGasCollisions::saveGasCollisions
bool saveGasCollisions(void) const
Definition:
CSCGasCollisions.h:40
CSCGasCollisions::dumpGasCollisions_
bool dumpGasCollisions_
Definition:
CSCGasCollisions.h:83
PSimHit.h
Point3DBase< float, LocalTag >
CSCGasCollisions::gasDensity
double gasDensity
Definition:
CSCGasCollisions.h:63
CSCGasCollisions::fillCollisionsForThisGamma
void fillCollisionsForThisGamma(float, std::vector< float > &) const
Definition:
CSCGasCollisions.cc:550
CSCGasCollisions::theCrossGap
CSCCrossGap * theCrossGap
Definition:
CSCGasCollisions.h:79
CLHEP
Definition:
CocoaGlobals.h:27
CSCGasCollisions::theCollisionTable
std::vector< float > theCollisionTable
Definition:
CSCGasCollisions.h:77
bsc_activity_cfg.clusters
clusters
Definition:
bsc_activity_cfg.py:36
CSCGasCollisions::writeSummary
void writeSummary(int n_try, int n_steps, double sum_steps, float dedx, const PSimHit &simhit) const
Definition:
CSCGasCollisions.cc:397
CSCGasCollisions::generateEnergyLoss
float generateEnergyLoss(double avCollisions, double anmin, double anmax, const std::vector< float > &collisions, CLHEP::HepRandomEngine *) const
Definition:
CSCGasCollisions.cc:293
CSCGasCollisions::ework
double ework
Definition:
CSCGasCollisions.h:71
edm::ParameterSet
Definition:
ParameterSet.h:47
ParticleDataTable.h
CSCGasCollisions::clusterExtent
double clusterExtent
Definition:
CSCGasCollisions.h:72
CSCGasCollisions::dumpGasCollisions
bool dumpGasCollisions(void) const
Definition:
CSCGasCollisions.h:39
CSCGasCollisions::simulate
void simulate(const PSimHit &, std::vector< LocalPoint > &clusters, std::vector< int > &electrons, CLHEP::HepRandomEngine *)
Definition:
CSCGasCollisions.cc:148
CSCGasCollisions::lnEnergyLoss
float lnEnergyLoss(float, const std::vector< float > &) const
Definition:
CSCGasCollisions.cc:519
CSCGasCollisions::N_ENERGY
static const int N_ENERGY
Definition:
CSCGasCollisions.h:43
CSCGasCollisions::N_GAMMA
static const int N_GAMMA
Definition:
CSCGasCollisions.h:42
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition:
AlCaHLTBitMon_QueryRunRegistry.py:256
CSCGasCollisions::deCut
double deCut
Definition:
CSCGasCollisions.h:69
CSCGasCollisions::setParticleDataTable
void setParticleDataTable(const ParticleDataTable *pdt)
Definition:
CSCGasCollisions.cc:146
CSCGasCollisions::saveGasCollisions_
bool saveGasCollisions_
Definition:
CSCGasCollisions.h:81
pwdgSkimBPark_cfi.electrons
electrons
Definition:
pwdgSkimBPark_cfi.py:6
CSCGasCollisions::theGammaBins
std::vector< float > theGammaBins
Definition:
CSCGasCollisions.h:75
LocalPoint.h
CSCGasCollisions::me
const std::string me
Definition:
CSCGasCollisions.h:62
CSCGasCollisions
Definition:
CSCGasCollisions.h:27
ParameterSet.h
PSimHit
Definition:
PSimHit.h:15
ParticleDataTable
HepPDT::ParticleDataTable ParticleDataTable
Definition:
ParticleDataTable.h:8
CSCGasCollisions::theParticleDataTable
const ParticleDataTable * theParticleDataTable
Definition:
CSCGasCollisions.h:80
muonDTDigis_cfi.pset
pset
Definition:
muonDTDigis_cfi.py:27
Generated for CMSSW Reference Manual by
1.8.16