#include <GsfBetheHeitlerUpdator.h>
Classes | |
struct | GSContainer |
class | Polynomial |
Public Types | |
enum | CorrectionFlag { NoCorrection = 0, MeanCorrection = 1, FullCorrection = 2 } |
Public Types inherited from GsfMaterialEffectsUpdator | |
typedef materialEffect::Covariance | Covariance |
typedef materialEffect::CovIndex | CovIndex |
typedef materialEffect::Effect | Effect |
Public Member Functions | |
GsfBetheHeitlerUpdator * | clone () const override |
GsfBetheHeitlerUpdator (const std::string fileName, const int correctionFlag) | |
constructor with explicit filename and correction flag More... | |
Public Member Functions inherited from GsfMaterialEffectsUpdator | |
GsfMaterialEffectsUpdator (float mass, uint32_t is) | |
float | mass () const |
size_t | size () const |
virtual TrajectoryStateOnSurface | updateState (const TrajectoryStateOnSurface &TSoS, const PropagationDirection propDir) const |
virtual | ~GsfMaterialEffectsUpdator () |
Private Member Functions | |
void | compute (const TrajectoryStateOnSurface &, const PropagationDirection, Effect[]) const override |
Computation: generates vectors of weights, means and standard deviations. More... | |
float | correctedFirstMean (const float, const GSContainer &) const |
Correction for mean of component 1. More... | |
float | correctedFirstVar (const float, const GSContainer &) const |
Correction for variance of component 1. More... | |
void | correctWeights (GSContainer &) const |
Correction for weight of component 1. More... | |
void | getMixtureParameters (const float, GSContainer &) const |
Filling of mixture (in terms of z=E/E0) More... | |
void | readParameters (const std::string) |
Read parametrization from file. More... | |
Polynomial | readPolynomial (std::ifstream &, const unsigned int) |
Read coefficients of one polynomial from file. More... | |
Private Attributes | |
int | theCorrectionFlag |
values to be transformed by logistic / exp. function? More... | |
int | theNrComponents |
Polynomial | thePolyMeans [MaxSize] |
parametrisation of weight for each component More... | |
Polynomial | thePolyVars [MaxSize] |
parametrisation of mean for each componentP More... | |
Polynomial | thePolyWeights [MaxSize] |
correction of 1st or 1st&2nd moments More... | |
int | theTransformationCode |
number of components used for parameterisation More... | |
Static Private Attributes | |
static constexpr int | MaxOrder = 6 |
static constexpr int | MaxSize = 6 |
Additional Inherited Members | |
Protected Member Functions inherited from GsfMaterialEffectsUpdator | |
void | resize (size_t is) |
Description of electron energy loss according to Bethe-Heitler as a sum of Gaussian components. The weights and parameters of the Gaussians as a function of x/X0 are parametrized as polynomials. The coefficients of these polynomials are read from a file at construction time.
Definition at line 20 of file GsfBetheHeitlerUpdator.h.
Enumerator | |
---|---|
NoCorrection | |
MeanCorrection | |
FullCorrection |
Definition at line 52 of file GsfBetheHeitlerUpdator.h.
GsfBetheHeitlerUpdator::GsfBetheHeitlerUpdator | ( | const std::string | fileName, |
const int | correctionFlag | ||
) |
constructor with explicit filename and correction flag
Definition at line 53 of file GsfBetheHeitlerUpdator.cc.
References cms::cuda::assert(), MillePedeFileConverter_cfg::fileName, readParameters(), GsfMaterialEffectsUpdator::resize(), theCorrectionFlag, and theNrComponents.
Referenced by clone().
|
inlineoverridevirtual |
Implements GsfMaterialEffectsUpdator.
Definition at line 55 of file GsfBetheHeitlerUpdator.h.
References GsfBetheHeitlerUpdator().
|
overrideprivatevirtual |
Computation: generates vectors of weights, means and standard deviations.
Implements GsfMaterialEffectsUpdator.
Definition at line 96 of file GsfBetheHeitlerUpdator.cc.
References alongMomentum, correctedFirstMean(), correctedFirstVar(), correctWeights(), materialEffect::Effect::deltaCov, materialEffect::Effect::deltaP, materialEffect::elos, f, getMixtureParameters(), mps_fire::i, MediumProperties::isValid(), TrajectoryStateOnSurface::localMomentum(), PV3DBase< T, PVType, FrameType >::mag(), Surface::mediumProperties(), AlCaHLTBitMon_ParallelJobs::p, MediumProperties::radLen(), TrajectoryStateOnSurface::surface(), theCorrectionFlag, theNrComponents, materialEffect::Effect::weight, and PV3DBase< T, PVType, FrameType >::z().
|
private |
Correction for mean of component 1.
Definition at line 207 of file GsfBetheHeitlerUpdator.cc.
References GsfBetheHeitlerUpdator::GSContainer::first, mps_fire::i, WZElectronSkims53X_cff::max, SiStripPI::mean, SiStripPI::min, GsfBetheHeitlerUpdator::GSContainer::second, and theNrComponents.
Referenced by compute().
|
private |
Correction for variance of component 1.
Definition at line 222 of file GsfBetheHeitlerUpdator.cc.
References GsfBetheHeitlerUpdator::GSContainer::first, mps_fire::i, WZElectronSkims53X_cff::max, GsfBetheHeitlerUpdator::GSContainer::second, theNrComponents, GsfBetheHeitlerUpdator::GSContainer::third, and ALCARECOEcalPhiSym_cff::var.
Referenced by compute().
|
private |
Correction for weight of component 1.
Definition at line 190 of file GsfBetheHeitlerUpdator.cc.
References GsfBetheHeitlerUpdator::GSContainer::first, cms::cuda::for(), mps_fire::i, and theNrComponents.
Referenced by compute().
|
private |
Filling of mixture (in terms of z=E/E0)
Definition at line 165 of file GsfBetheHeitlerUpdator.cc.
References GsfBetheHeitlerUpdator::GSContainer::first, mps_fire::i, GsfBetheHeitlerUpdator::GSContainer::second, theNrComponents, thePolyMeans, thePolyVars, thePolyWeights, theTransformationCode, GsfBetheHeitlerUpdator::GSContainer::third, btvMC_cff::vz, and z.
Referenced by compute().
|
private |
Read parametrization from file.
Definition at line 65 of file GsfBetheHeitlerUpdator.cc.
References cms::cuda::assert(), MillePedeFileConverter_cfg::fileName, edm::FileInPath::fullPath(), MaxOrder, mergeVDriftHistosByStation::name, readPolynomial(), AlCaHLTBitMon_QueryRunRegistry::string, theNrComponents, thePolyMeans, thePolyVars, thePolyWeights, and theTransformationCode.
Referenced by GsfBetheHeitlerUpdator().
|
private |
Read coefficients of one polynomial from file.
Definition at line 88 of file GsfBetheHeitlerUpdator.cc.
References mps_fire::i, and eventshapeDQM_cfi::order.
Referenced by readParameters().
|
staticprivate |
Definition at line 23 of file GsfBetheHeitlerUpdator.h.
Referenced by readParameters().
|
staticprivate |
Definition at line 22 of file GsfBetheHeitlerUpdator.h.
|
private |
values to be transformed by logistic / exp. function?
Definition at line 87 of file GsfBetheHeitlerUpdator.h.
Referenced by compute(), and GsfBetheHeitlerUpdator().
|
private |
Definition at line 85 of file GsfBetheHeitlerUpdator.h.
Referenced by compute(), correctedFirstMean(), correctedFirstVar(), correctWeights(), getMixtureParameters(), GsfBetheHeitlerUpdator(), and readParameters().
|
private |
parametrisation of weight for each component
Definition at line 90 of file GsfBetheHeitlerUpdator.h.
Referenced by getMixtureParameters(), and readParameters().
|
private |
parametrisation of mean for each componentP
Definition at line 91 of file GsfBetheHeitlerUpdator.h.
Referenced by getMixtureParameters(), and readParameters().
|
private |
correction of 1st or 1st&2nd moments
Definition at line 89 of file GsfBetheHeitlerUpdator.h.
Referenced by getMixtureParameters(), and readParameters().
|
private |
number of components used for parameterisation
Definition at line 86 of file GsfBetheHeitlerUpdator.h.
Referenced by getMixtureParameters(), and readParameters().