#include <GsfBetheHeitlerUpdator.h>
Classes | |
class | Polynomial |
Public Types | |
enum | CorrectionFlag { NoCorrection =0, MeanCorrection =1, FullCorrection =2 } |
Public Member Functions | |
virtual GsfBetheHeitlerUpdator * | clone () const |
GsfBetheHeitlerUpdator (const std::string fileName, const int correctionFlag) | |
constructor with explicit filename and correction flag More... | |
Public Member Functions inherited from GsfMaterialEffectsUpdator | |
virtual std::vector < AlgebraicSymMatrix55 > | deltaLocalErrors (const TrajectoryStateOnSurface &TSoS, const PropagationDirection propDir) const |
virtual std::vector< double > | deltaPs (const TrajectoryStateOnSurface &TSoS, const PropagationDirection propDir) const |
GsfMaterialEffectsUpdator (float mass) | |
float | mass () const |
virtual TrajectoryStateOnSurface | updateState (const TrajectoryStateOnSurface &TSoS, const PropagationDirection propDir) const |
virtual std::vector< double > | weights (const TrajectoryStateOnSurface &TSoS, const PropagationDirection propDir) const |
virtual | ~GsfMaterialEffectsUpdator () |
Protected Member Functions | |
virtual bool | newArguments (const TrajectoryStateOnSurface &, const PropagationDirection) const |
check of arguments for use with cached values More... | |
virtual void | storeArguments (const TrajectoryStateOnSurface &, const PropagationDirection) const |
storage of arguments for later use of More... | |
Private Types | |
typedef std::vector< Triplet < double, double, double > > | GSContainer |
Private Member Functions | |
double | BetheHeitlerMean (const double rl) const |
First moment of the Bethe-Heitler distribution (in z=E/E0) More... | |
double | BetheHeitlerVariance (const double rl) const |
Second moment of the Bethe-Heitler distribution (in z=E/E0) More... | |
virtual void | compute (const TrajectoryStateOnSurface &, const PropagationDirection) const |
Computation: generates vectors of weights, means and standard deviations. More... | |
double | correctedFirstMean (const double, const GSContainer &) const |
Correction for mean of component 1. More... | |
double | correctedFirstVar (const double, const GSContainer &) const |
Correction for variance of component 1. More... | |
void | correctWeights (GSContainer &) const |
Correction for weight of component 1. More... | |
void | getMixtureParameters (const double, GSContainer &) const |
Filling of mixture (in terms of z=E/E0) More... | |
double | logisticFunction (const double x) const |
Logistic function (needed for transformation of weight and mean) More... | |
void | readParameters (const std::string) |
Read parametrization from file. More... | |
Polynomial | readPolynomial (std::ifstream &, const int) |
Read coefficients of one polynomial from file. More... | |
Private Attributes | |
int | theCorrectionFlag |
parametrisation of variance for each component More... | |
float | theLastDz |
correction of 1st or 1st&2nd moments More... | |
float | theLastP |
PropagationDirection | theLastPropDir |
float | theLastRadLength |
int | theNrComponents |
std::vector< Polynomial > | thePolyMeans |
parametrisation of weight for each component More... | |
std::vector< Polynomial > | thePolyVars |
parametrisation of mean for each component More... | |
std::vector< Polynomial > | thePolyWeights |
values to be transformed by logistic / exp. function? More... | |
int | theTransformationCode |
number of components used for parameterisation More... | |
Additional Inherited Members | |
Protected Attributes inherited from GsfMaterialEffectsUpdator | |
std::vector< AlgebraicSymMatrix55 > | theDeltaCovs |
std::vector< double > | theDeltaPs |
std::vector< double > | theWeights |
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 19 of file GsfBetheHeitlerUpdator.h.
|
private |
Definition at line 59 of file GsfBetheHeitlerUpdator.h.
Enumerator | |
---|---|
NoCorrection | |
MeanCorrection | |
FullCorrection |
Definition at line 45 of file GsfBetheHeitlerUpdator.h.
GsfBetheHeitlerUpdator::GsfBetheHeitlerUpdator | ( | const std::string | fileName, |
const int | correctionFlag | ||
) |
constructor with explicit filename and correction flag
Definition at line 11 of file GsfBetheHeitlerUpdator.cc.
References readParameters(), and theCorrectionFlag.
Referenced by clone().
|
inlineprivate |
First moment of the Bethe-Heitler distribution (in z=E/E0)
Definition at line 71 of file GsfBetheHeitlerUpdator.h.
References funct::exp().
Referenced by correctedFirstMean(), and correctedFirstVar().
|
inlineprivate |
Second moment of the Bethe-Heitler distribution (in z=E/E0)
Definition at line 76 of file GsfBetheHeitlerUpdator.h.
References funct::exp(), and funct::log().
Referenced by correctedFirstVar().
|
inlinevirtual |
Implements GsfMaterialEffectsUpdator.
Definition at line 48 of file GsfBetheHeitlerUpdator.h.
References GsfBetheHeitlerUpdator().
|
privatevirtual |
Computation: generates vectors of weights, means and standard deviations.
Implements GsfMaterialEffectsUpdator.
Definition at line 62 of file GsfBetheHeitlerUpdator.cc.
References alongMomentum, correctedFirstMean(), correctedFirstVar(), correctWeights(), benchmark_cfg::errors, f, first, getMixtureParameters(), i, TrajectoryStateOnSurface::localMomentum(), PV3DBase< T, PVType, FrameType >::mag(), Surface::mediumProperties(), L1TEmulatorMonitor_cff::p, MediumProperties::radLen(), edm::second(), storeArguments(), TrajectoryStateOnSurface::surface(), theCorrectionFlag, GsfMaterialEffectsUpdator::theDeltaCovs, GsfMaterialEffectsUpdator::theDeltaPs, theNrComponents, GsfMaterialEffectsUpdator::theWeights, and PV3DBase< T, PVType, FrameType >::z().
|
private |
Correction for mean of component 1.
Definition at line 190 of file GsfBetheHeitlerUpdator.cc.
References BetheHeitlerMean(), i, max(), plotscripts::mean(), and min.
Referenced by compute().
|
private |
Correction for variance of component 1.
Definition at line 209 of file GsfBetheHeitlerUpdator.cc.
References BetheHeitlerMean(), BetheHeitlerVariance(), first, i, and max().
Referenced by compute().
|
private |
Correction for weight of component 1.
Definition at line 171 of file GsfBetheHeitlerUpdator.cc.
References i.
Referenced by compute().
|
private |
Filling of mixture (in terms of z=E/E0)
Definition at line 145 of file GsfBetheHeitlerUpdator.cc.
References funct::exp(), i, logisticFunction(), theNrComponents, thePolyMeans, thePolyVars, thePolyWeights, theTransformationCode, CommonMethods::weight(), and detailsBasic3DVector::z.
Referenced by compute().
|
inlineprivate |
Logistic function (needed for transformation of weight and mean)
Definition at line 69 of file GsfBetheHeitlerUpdator.h.
References funct::exp().
Referenced by getMixtureParameters().
|
protectedvirtual |
check of arguments for use with cached values
Reimplemented from GsfMaterialEffectsUpdator.
Definition at line 232 of file GsfBetheHeitlerUpdator.cc.
References TrajectoryStateOnSurface::localMomentum(), PV3DBase< T, PVType, FrameType >::mag(), Surface::mediumProperties(), MediumProperties::radLen(), TrajectoryStateOnSurface::surface(), theLastDz, theLastP, theLastPropDir, theLastRadLength, Vector3DBase< T, FrameTag >::unit(), and PV3DBase< T, PVType, FrameType >::z().
|
private |
Read parametrization from file.
Definition at line 31 of file GsfBetheHeitlerUpdator.cc.
References convertXMLtoSQLite_cfg::fileName, edm::FileInPath::fullPath(), mergeVDriftHistosByStation::name, readPolynomial(), theNrComponents, thePolyMeans, thePolyVars, thePolyWeights, and theTransformationCode.
Referenced by GsfBetheHeitlerUpdator().
|
private |
Read coefficients of one polynomial from file.
Definition at line 54 of file GsfBetheHeitlerUpdator.cc.
References i.
Referenced by readParameters().
|
protectedvirtual |
storage of arguments for later use of
Reimplemented from GsfMaterialEffectsUpdator.
Definition at line 241 of file GsfBetheHeitlerUpdator.cc.
References TrajectoryStateOnSurface::localMomentum(), PV3DBase< T, PVType, FrameType >::mag(), Surface::mediumProperties(), MediumProperties::radLen(), TrajectoryStateOnSurface::surface(), theLastDz, theLastP, theLastPropDir, theLastRadLength, Vector3DBase< T, FrameTag >::unit(), and PV3DBase< T, PVType, FrameType >::z().
Referenced by compute().
|
private |
parametrisation of variance for each component
Definition at line 102 of file GsfBetheHeitlerUpdator.h.
Referenced by compute(), and GsfBetheHeitlerUpdator().
|
mutableprivate |
correction of 1st or 1st&2nd moments
Definition at line 104 of file GsfBetheHeitlerUpdator.h.
Referenced by newArguments(), and storeArguments().
|
mutableprivate |
Definition at line 105 of file GsfBetheHeitlerUpdator.h.
Referenced by newArguments(), and storeArguments().
|
mutableprivate |
Definition at line 106 of file GsfBetheHeitlerUpdator.h.
Referenced by newArguments(), and storeArguments().
|
mutableprivate |
Definition at line 107 of file GsfBetheHeitlerUpdator.h.
Referenced by newArguments(), and storeArguments().
|
private |
Definition at line 96 of file GsfBetheHeitlerUpdator.h.
Referenced by compute(), getMixtureParameters(), and readParameters().
|
private |
parametrisation of weight for each component
Definition at line 99 of file GsfBetheHeitlerUpdator.h.
Referenced by getMixtureParameters(), and readParameters().
|
private |
parametrisation of mean for each component
Definition at line 100 of file GsfBetheHeitlerUpdator.h.
Referenced by getMixtureParameters(), and readParameters().
|
private |
values to be transformed by logistic / exp. function?
Definition at line 98 of file GsfBetheHeitlerUpdator.h.
Referenced by getMixtureParameters(), and readParameters().
|
private |
number of components used for parameterisation
Definition at line 97 of file GsfBetheHeitlerUpdator.h.
Referenced by getMixtureParameters(), and readParameters().