4 #include <mdet/MDetectorComponent.h>
5 #include <mdet/PMT_helper.h>
7 #include <utl/ShadowPtr.h>
8 #include <utl/Validated.h>
10 #include <utl/MathConstants.h>
11 #include <utl/ConsecutiveEnumFactory.h>
19 struct ComponentUpdater;
102 TimeSpaceEvaluate(
double t)
116 FrequencySpaceEvaluate(
const double f)
122 const std::complex<double>
e(rp, ip);
182 void Update(
const bool invalidateData,
const bool invalidateComponents);
362 friend struct det::ComponentUpdater;
Simple factory to create an enumerator for a given enumeration.
utl::Validated< double > fPulseAmplitudeStdDev
double GetPulseStdDevStdDev() const
Standard deviation of time spread in SPE pulses.
return kOverallSign *fAmplitude * std::exp(-0.5 *utl::Sqr(x))
double LowerLimit() const
Returns the lower temporal limit.
constexpr T Sqr(const T &x)
Amplitude and standard deviation.
utl::Validated< double > fPulseStdDevStdDev
const std::complex< double > e(rp, ip)
PulseParametrization
SPE can be parametrized fixing two of three parameters.
Defines within it the common (templated) type for muon detector hierarchy components.
return kOverallSign *fAmplitude *std::sqrt(2 *utl::kPi)*fSigma *std doubl UpperLimit)() const
Returns the (for all practical purposes) upper temporal limit of the pulse.
utl::Validated< double > fPulseParametersCorrelation
std::vector< double > CrossTalkContainer
Typedef for mdet::Pixel crosstalk container.
utl::Validated< double > fPulseRelevantWidth
const CrossTalkContainer & GetNeighborsCrossTalkCorner() const
Cross-talk coeffcient for neighbors of corner located pixel.
double GetPulseStdDevMean() const
Mean standard deviation in SPE pulses (time spread).
PulseParametrization GetPulseParametrization() const
Type of SPE parametrization actually employed.
static const char *const kComponentName
double GetPulseChargeStdDev() const
Standard deviation of total charge in SPE pulses.
utl::ConsecutiveEnumFactory< PulseParametrization, eChargeAndStandardDeviation, PulseParametrizationTags > PulseParametrizationCreator
Convenience typedef for creation of PulseParametrization enumerators.
double GetPulseRelevantWidth() const
Pulse relevant time width.
utl::Validated< PulseParametrizationForConfig > fPulseParametrization
utl::Validated< double > fPulseAmplitudeMean
const PMT & GetPMT() const
static const int kOverallSign
Overall sign of the pulses.
double GetAmplitude() const
std::vector< int > IdsContainer
Typedef for container of corresponding Channel, Scintillator, Fiber indices.
double GetPulseAmplitudeMean() const
Mean amplitude of SPE pulses.
Multiple-pixel photo-multiplier tube.
utl::Validated< double > fPulseStdDevMean
utl::ShadowPtr< CrossTalkContainer > fNeighborsCrossTalk
Container for cross-talk coefficients.
utl::Validated< double > fPulseChargeMean
std::string const
Returns the message that identifies this component.
friend void boost::checked_delete(T *) BOOST_NOEXCEPT
Friendship for destruction. Depends on det::ComponentGroup innards.
double GetPulseParametersCorrelation() const
The correlation between the two selected parameters.
std::map< std::string, std::string > IndexMap
Charge and standard deviation.
std::vector< const Pixel * > NeighborsContainer
Typedef for mdet::Pixel neighbor container.
Pixel(const int pId, const det::VManager::IndexMap &parentMap, const PMT &parent)
Constructs the pixel.
static const char *const PulseParametrizationTags[]
Tags for textual representation.
static const char *const kComponentId
utl::Validated< double > fPulseChargeStdDev
void Update(const bool invalidateData, const bool invalidateComponents)
double GetPulseChargeMean() const
Mean total charge in SPE pulses.
utl::ShadowPtr< IdsContainer > fChannelScintillatorFiberIds
Container for indices of corresponding Channel, Scintillator, Fiber.
const IdsContainer & GetChannelScintillatorFiberIds() const
Indices for Channel, Scintillator, Fiber of corrresponding Pixel.
utl::Validated< double > fCrossTalkNormalizationFactor
Conversion factor to percentual values. Handled within mdet::PMT.
Type
The type of file that we are acutally opening.
const CrossTalkContainer & GetNeighborsCrossTalkSide() const
Cross-talk coeffcient for neighbors of a side (not corner) located pixel.
NeighborsContainer fNeighbors
Neighbors.
SPE MakeSPEAt(const double t) const
Constructs an SPE according to this pixel's characteristics.
const CrossTalkContainer & GetNeighborsCrossTalkInside() const
Cross-talk coeffcient for neighbors of a pixel located inside the pixel matrix.
std::string PulseParametrizationForConfig
Alias for a type considered within the config hierarchy, to be converted to the actual enum...
double GetPulseAmplitudeStdDev() const
Standard deviation of amplitude in SPE pulses.
The child the information from the parent upon construction.
SPE(const Pixel &p, const double a, const double m, const double s)
Construct with the parameters.