FastSimulation
MaterialEffects
interface
MuonBremsstrahlungSimulator.h
Go to the documentation of this file.
1
#ifndef MUONBREMSSTRAHLUNGSIMULATOR_H
2
#define MUONBREMSSTRAHLUNGSIMULATOR_H
3
4
#include "
FastSimulation/MaterialEffects/interface/MaterialEffectsSimulator.h
"
5
22
#include <string>
23
24
class
TF1;
25
26
class
ParticlePropagator
;
27
class
RandomEngineAndDistribution
;
28
29
class
MuonBremsstrahlungSimulator
:
public
MaterialEffectsSimulator
{
30
public
:
32
MuonBremsstrahlungSimulator
(
33
double
A
,
double
Z
,
double
density
,
double
radLen
,
double
photonEnergyCut
,
double
photonFractECut);
34
36
~MuonBremsstrahlungSimulator
()
override
{}
37
38
// Returns the actual Muon brem Energy
39
inline
const
XYZTLorentzVector
&
deltaP_BremMuon
()
const
{
return
deltaPMuon
; }
40
41
// Returns the actual photon brem Energy
42
inline
const
XYZTLorentzVector
&
deltaP_BremPhoton
()
const
{
return
brem_photon
; }
43
44
private
:
45
TF1*
f1
;
46
47
int
npar
;
48
50
double
photonEnergy
;
51
double
bremProba
;
53
double
photonFractE
;
54
56
double
xmin
,
xmax
,
rand
;
57
double
d
;
//distance
58
60
unsigned
int
poisson
(
double
ymu);
61
63
void
compute
(
ParticlePropagator
&
Particle
,
RandomEngineAndDistribution
const
*)
override
;
64
66
XYZTLorentzVector
brem
(
ParticlePropagator
&
p
,
RandomEngineAndDistribution
const
*)
const
;
67
69
double
gbteth
(
const
double
ener,
const
double
partm,
const
double
efrac,
RandomEngineAndDistribution
const
*)
const
;
70
71
// The actual Muon Brem
72
XYZTLorentzVector
deltaPMuon
;
73
//The photon brem
74
XYZTLorentzVector
brem_photon
;
75
};
76
#endif
MuonBremsstrahlungSimulator::rand
double rand
Definition:
MuonBremsstrahlungSimulator.h:56
MaterialEffectsSimulator.h
AlCaHLTBitMon_ParallelJobs.p
p
Definition:
AlCaHLTBitMon_ParallelJobs.py:153
MuonBremsstrahlungSimulator::compute
void compute(ParticlePropagator &Particle, RandomEngineAndDistribution const *) override
Generate Bremsstrahlung photons.
Definition:
MuonBremsstrahlungSimulator.cc:31
MuonBremsstrahlungSimulator::deltaPMuon
XYZTLorentzVector deltaPMuon
Definition:
MuonBremsstrahlungSimulator.h:72
XYZTLorentzVector
math::XYZTLorentzVector XYZTLorentzVector
Definition:
RawParticle.h:25
MuonBremsstrahlungSimulator::f1
TF1 * f1
Definition:
MuonBremsstrahlungSimulator.h:45
MuonBremsstrahlungSimulator::xmin
double xmin
The fractional photon energy cut (determined from the above two)
Definition:
MuonBremsstrahlungSimulator.h:56
MuonBremsstrahlungSimulator::brem_photon
XYZTLorentzVector brem_photon
Definition:
MuonBremsstrahlungSimulator.h:74
MuonBremsstrahlungSimulator::d
double d
Definition:
MuonBremsstrahlungSimulator.h:57
MuonBremsstrahlungSimulator::npar
int npar
Definition:
MuonBremsstrahlungSimulator.h:47
MuonBremsstrahlungSimulator::xmax
double xmax
Definition:
MuonBremsstrahlungSimulator.h:56
MuonBremsstrahlungSimulator::poisson
unsigned int poisson(double ymu)
Generate numbers according to a Poisson distribution of mean ymu.
MaterialEffectsSimulator::Z
double Z
Definition:
MaterialEffectsSimulator.h:88
fastSimProducer_cff.photonEnergyCut
photonEnergyCut
Definition:
fastSimProducer_cff.py:22
MaterialEffectsSimulator
Definition:
MaterialEffectsSimulator.h:25
MuonBremsstrahlungSimulator::~MuonBremsstrahlungSimulator
~MuonBremsstrahlungSimulator() override
Default destructor.
Definition:
MuonBremsstrahlungSimulator.h:36
MuonBremsstrahlungSimulator::photonFractE
double photonFractE
The minimum photon fractional energy (wrt that of the electron)
Definition:
MuonBremsstrahlungSimulator.h:53
MuonBremsstrahlungSimulator::brem
XYZTLorentzVector brem(ParticlePropagator &p, RandomEngineAndDistribution const *) const
Compute Brem photon energy and angles, if any.
Definition:
MuonBremsstrahlungSimulator.cc:116
MaterialEffectsSimulator::density
double density
Definition:
MaterialEffectsSimulator.h:89
A
ParticlePropagator
Definition:
ParticlePropagator.h:28
MuonBremsstrahlungSimulator::bremProba
double bremProba
Definition:
MuonBremsstrahlungSimulator.h:51
MuonBremsstrahlungSimulator::gbteth
double gbteth(const double ener, const double partm, const double efrac, RandomEngineAndDistribution const *) const
A universal angular distribution - still from GEANT.
Definition:
MuonBremsstrahlungSimulator.cc:153
MaterialEffectsSimulator::radLen
double radLen
Definition:
MaterialEffectsSimulator.h:90
MuonBremsstrahlungSimulator::deltaP_BremMuon
const XYZTLorentzVector & deltaP_BremMuon() const
Definition:
MuonBremsstrahlungSimulator.h:39
MuonBremsstrahlungSimulator
Definition:
MuonBremsstrahlungSimulator.h:29
Particle
Definition:
Particle.py:1
MuonBremsstrahlungSimulator::MuonBremsstrahlungSimulator
MuonBremsstrahlungSimulator(double A, double Z, double density, double radLen, double photonEnergyCut, double photonFractECut)
Constructor.
Definition:
MuonBremsstrahlungSimulator.cc:20
MuonBremsstrahlungSimulator::photonEnergy
double photonEnergy
The minimum photon energy to be radiated, in GeV.
Definition:
MuonBremsstrahlungSimulator.h:50
MuonBremsstrahlungSimulator::deltaP_BremPhoton
const XYZTLorentzVector & deltaP_BremPhoton() const
Definition:
MuonBremsstrahlungSimulator.h:42
RandomEngineAndDistribution
Definition:
RandomEngineAndDistribution.h:18
Generated for CMSSW Reference Manual by
1.8.16