List of all members | Classes | Public Member Functions | Public Attributes | Static Public Attributes | Protected Member Functions | Protected Attributes | Private Types | Private Member Functions | Private Attributes | Static Private Attributes | Friends
mdet::Pixel Class Reference

PMT pixel. More...

#include "mdet/Pixel.h"

Inheritance diagram for mdet::Pixel:
Inheritance graph
[legend]

Classes

class  SPE
 SPE pulse. More...
 

Public Member Functions

 AddIdMessage (o)
 
int GetId () const
 The id of this component. More...
 
const VManager::IndexMap & GetIdsMap () const
 The id identifying this component within its detector hierarhy. More...
 
const PMTGetPMT () const
 
SPE MakeSPEAt (const double t) const
 Constructs an SPE according to this pixel's characteristics. More...
 
return o str ()
 

Public Attributes

std::string const
 Returns the message that identifies this component. More...
 
const DetectorUserData< C > & const
 Retrieve the user custom data. More...
 

Static Public Attributes

static const char *const kComponentId = MHierarchyInfo::kComponentsIds[6]
 
static const char *const kComponentName = MHierarchyInfo::kComponentsNames[6]
 

Protected Member Functions

template<typename T , template< typename > class P>
T & GetData (P< T > &d, const std::string &p) const
 Common utility function for configuration. More...
 
template<typename T >
T & GetData (T &d, const std::string &p) const
 Common utility function for configuration. More...
 
void Register (utl::VValidated &v)
 Register the field so as to allow handling it. More...
 
s<< " ]";}DetectorComponent(int
i, const VManager::IndexMap
&parentMap):fId(i), fIdsMap(parentMap){Init();}DetectorComponent(const
int i):fId(i){Init();}virtual
~DetectorComponent(){}virtual
void Update(const bool
invalidateData, const bool){for(FieldsContainer::iterator
i=fFields.begin(), e=fFields.end();i!=e;++i)(*i) -> 
SetValid (false)
 

Protected Attributes

template<typename T1 , typename T2 , template< typename, typename > class P>
T1 & const
 Doubly-templated variation of common utility. More...
 
template<typename T >
T & const
 Specialization for utl::Validated. More...
 
void const
 Message that identifies the component. More...
 
s<< "id="<< GetId()<< " [";for(It
i=GetIdsMap().begin(), e=GetIdsMap().end();i!=e;++i)
s<< " "<< i-> first<< "="<< i-> 
second
 

Private Types

enum  PulseParametrization { eAmplitudeAndCharge, eAmplitudeAndStandardDeviation, eChargeAndStandardDeviation }
 SPE can be parametrized fixing two of three parameters. More...
 
typedef
utl::ConsecutiveEnumFactory
< PulseParametrization,
eChargeAndStandardDeviation,
PulseParametrizationTags
PulseParametrizationCreator
 Convenience typedef for creation of PulseParametrization enumerators. More...
 
typedef std::string PulseParametrizationForConfig
 Alias for a type considered within the config hierarchy, to be converted to the actual enum. More...
 

Private Member Functions

const IdsContainerGetChannelScintillatorFiberIds () const
 Indices for Channel, Scintillator, Fiber of corrresponding Pixel. More...
 
const CrossTalkContainerGetNeighborsCrossTalkCorner () const
 Cross-talk coeffcient for neighbors of corner located pixel. More...
 
const CrossTalkContainerGetNeighborsCrossTalkInside () const
 Cross-talk coeffcient for neighbors of a pixel located inside the pixel matrix. More...
 
const CrossTalkContainerGetNeighborsCrossTalkSide () const
 Cross-talk coeffcient for neighbors of a side (not corner) located pixel. More...
 
double GetPulseAmplitudeMean () const
 Mean amplitude of SPE pulses. More...
 
double GetPulseAmplitudeStdDev () const
 Standard deviation of amplitude in SPE pulses. More...
 
double GetPulseChargeMean () const
 Mean total charge in SPE pulses. More...
 
double GetPulseChargeStdDev () const
 Standard deviation of total charge in SPE pulses. More...
 
double GetPulseParametersCorrelation () const
 The correlation between the two selected parameters. More...
 
PulseParametrization GetPulseParametrization () const
 Type of SPE parametrization actually employed. More...
 
double GetPulseRelevantWidth () const
 Pulse relevant time width. More...
 
double GetPulseStdDevMean () const
 Mean standard deviation in SPE pulses (time spread). More...
 
double GetPulseStdDevStdDev () const
 Standard deviation of time spread in SPE pulses. More...
 
 Pixel (const int pId, const det::VManager::IndexMap &parentMap, const PMT &parent)
 Constructs the pixel. More...
 
void Update (const bool invalidateData, const bool invalidateComponents)
 
 ~Pixel ()
 

Private Attributes

utl::ShadowPtr< IdsContainerfChannelScintillatorFiberIds
 Container for indices of corresponding Channel, Scintillator, Fiber. More...
 
utl::Validated< double > fCrossTalkNormalizationFactor
 Conversion factor to percentual values. Handled within mdet::PMT. More...
 
NeighborsContainer fNeighbors
 Neighbors. More...
 
utl::ShadowPtr
< CrossTalkContainer
fNeighborsCrossTalk
 Container for cross-talk coefficients. More...
 
const PMTfPMT
 
utl::Validated< double > fPulseAmplitudeMean
 
utl::Validated< double > fPulseAmplitudeStdDev
 
utl::Validated< double > fPulseChargeMean
 
utl::Validated< double > fPulseChargeStdDev
 
utl::Validated< double > fPulseParametersCorrelation
 
utl::Validated
< PulseParametrizationForConfig
fPulseParametrization
 
utl::Validated< double > fPulseRelevantWidth
 
utl::Validated< double > fPulseStdDevMean
 
utl::Validated< double > fPulseStdDevStdDev
 

Static Private Attributes

static const char *const PulseParametrizationTags []
 Tags for textual representation. More...
 

Friends

template<class T >
void boost::checked_delete (T *) BOOST_NOEXCEPT
 Friendship for destruction. Depends on det::ComponentGroup innards. More...
 
struct det::ComponentUpdater
 See mdet::Counter. More...
 
struct det::ParentCreator
 Friendship to allow creation (or call it construction). More...
 
class Module
 Friendship to allow id management. More...
 
class PMT
 Friendship to allow neighbors and cross-talk management. More...
 
class utl::ConsecutiveEnumFactory< PulseParametrization, eChargeAndStandardDeviation, PulseParametrizationTags >
 Provide access to the factory. More...
 

Detailed Description

PMT pixel.

Pixel within a photo-multiplier tube.

Todo:
So far, only cross-talk. Other properties that may be added (once properly defined) here are: gain, MuonBackground, SPESpectra, SPEShift.
Author
Rodolfo Federico Gamarra
Date
08 Mar 2009

Definition at line 49 of file MDetector/Pixel.h.

Member Typedef Documentation

Convenience typedef for creation of PulseParametrization enumerators.

Definition at line 218 of file MDetector/Pixel.h.

typedef std::string mdet::Pixel::PulseParametrizationForConfig
private

Alias for a type considered within the config hierarchy, to be converted to the actual enum.

Definition at line 396 of file MDetector/Pixel.h.

Member Enumeration Documentation

SPE can be parametrized fixing two of three parameters.

This enumeration determines which parameters are taken in order to determine the SPE structure: the current SPE has three parameters, fixing two determines the third. The gaussian pulses have amplitude, charge (integral over the whole x-axis) and standard deviation. The mean value doesn't matter in order to determine the shape of the pulse.

The configuration is accessed by getters defined for each one of the three parameters; given a particular value configured for the type of parametrization only two of them will be called.

Enumerator
eAmplitudeAndCharge 

Amplitude and charge.

eAmplitudeAndStandardDeviation 

Amplitude and standard deviation.

eChargeAndStandardDeviation 

Charge and standard deviation.

Definition at line 200 of file MDetector/Pixel.h.

Constructor & Destructor Documentation

mdet::Pixel::Pixel ( const int  pId,
const det::VManager::IndexMap parentMap,
const PMT parent 
)
private

Constructs the pixel.

Parameters
pIdThe identifier to be used.
parentMapThe identifiers of the parent within the hierarchy.
parentThe parent mdet::PMT.

A reference to the parent is kept in this class and part of the construction is delegated to the first super-class.

This method is kept private creation of these objects is not meant to be performed by client code. See the related friendship declaration.

See Also
mdet::MDectectorComponent::Type

Definition at line 30 of file MDetector/Pixel.cc.

mdet::Pixel::~Pixel ( )
inlineprivate

Definition at line 315 of file MDetector/Pixel.h.

Member Function Documentation

template<class C , class ManagerProvider >
det::DetectorComponent< C, ManagerProvider >::AddIdMessage ( )
inherited
const IdsContainer & mdet::Pixel::GetChannelScintillatorFiberIds ( ) const
private

Indices for Channel, Scintillator, Fiber of corrresponding Pixel.

Definition at line 71 of file MDetector/Pixel.cc.

References fChannelScintillatorFiberIds.

Referenced by mdet::Module::Update().

template<class C , class ManagerProvider >
template<typename T , template< typename > class P>
T& det::DetectorComponent< C, ManagerProvider >::GetData ( P< T > &  d,
const std::string &  p 
) const
inlineprotectedinherited

Common utility function for configuration.

Retrieves data from the provided (via this class' template parameter) Manager instance and goes on with initialization.

Parameters
dAn object of type P<T> wrapping the real of type T.
pProperty name. The template class P must provide:
  • A bool-like interface (operator ! and a conversion (possibly implicit to bool) to query initialization.
  • An T& operator*() to retrieve the actual data.
  • P& operator=(T* const ptr) for proper initialization.
  • As of the wrapped class T, it must be default constructible.

This is fullfilled by, for instance, utl::ShadowPtr as P and built-in types for T.

Definition at line 191 of file DetectorComponent.h.

References det::DetectorComponent< C, ManagerProvider >::d, and G4StationSimulatorOG::p.

Referenced by mdet::Channel::GetAbsoluteError(), mdet::BackEndSiPM::GetADCOffset(), mdet::BackEndSiPM::GetADCPar1(), mdet::BackEndSiPM::GetADCPar2(), mdet::BackEndSiPM::GetADCPar3(), mdet::BackEndSiPM::GetADCPar4(), mdet::BackEndSiPM::GetADCPar5(), mdet::BackEndSiPM::GetADCPar6(), mdet::BackEndSiPM::GetADCSaturationDown(), mdet::BackEndSiPM::GetADCSaturationUp(), mdet::Module::GetAreaKind(), mdet::Counter::GetAssociatedTankId(), mdet::Fiber::GetAttenuationAmplitudeA(), mdet::Fiber::GetAttenuationAmplitudeASiPM(), mdet::Fiber::GetAttenuationAmplitudeB(), mdet::Fiber::GetAttenuationAmplitudeBSiPM(), mdet::Fiber::GetAttenuationLengthA(), mdet::Fiber::GetAttenuationLengthASiPM(), mdet::Fiber::GetAttenuationLengthB(), mdet::Fiber::GetAttenuationLengthBSiPM(), mdet::Fiber::GetAttenuationReference(), mdet::Fiber::GetAttenuationReferenceEnergy(), mdet::Fiber::GetAttenuationReferenceThickness(), mdet::Module::GetBackgroundMuonsFlux(), mdet::FrontEndSiPM::GetBaseLineFluctuationHG(), mdet::FrontEndSiPM::GetBaseLineFluctuationLG(), mdet::Channel::GetDCGain(), mdet::Fiber::GetDecayTime(), mdet::Scintillator::GetDecayTime(), mdet::FrontEndSiPM::GetDelayBinaryADCMean(), mdet::FrontEndSiPM::GetDelayBinaryADCSigma(), mdet::FrontEndSiPM::GetDigitalBackGroundProbability(), mdet::FrontEndSiPM::GetDigitalBackGroundWidthMean(), mdet::FrontEndSiPM::GetDigitalBackGroundWidthStdDev(), mdet::ChannelSiPM::GetDiscriminatorGain(), mdet::ChannelSiPM::GetDiscriminatorHiLevel(), mdet::Channel::GetDiscriminatorHiLevel(), mdet::ChannelSiPM::GetDiscriminatorLowLevel(), mdet::Channel::GetDiscriminatorLowLevel(), mdet::ChannelSiPM::GetDiscriminatorThreshold(), mdet::ChannelSiPM::GetDiscriminatorTransitionTime(), mdet::Scintillator::GetEpsilon(), mdet::FrontEnd::GetFalseRangeHiThreshold(), mdet::FrontEndSiPM::GetFalseRangeHiThreshold(), mdet::ChannelSiPM::GetFastShaperGain(), mdet::ChannelSiPM::GetFastShaperTime(), mdet::Channel::GetFeedbackResistance(), mdet::BackEndSiPM::GetFirstAdderOffset(), mdet::BackEndSiPM::GetFirstAdderPar1(), mdet::BackEndSiPM::GetFirstAdderPar2(), mdet::BackEndSiPM::GetFirstAdderPar3(), mdet::BackEndSiPM::GetFirstAdderPar4(), mdet::BackEndSiPM::GetFirstAdderPar5(), mdet::BackEndSiPM::GetFirstAdderSaturationDown(), mdet::BackEndSiPM::GetFirstAdderSaturationUp(), mdet::Scintillator::GetHeight(), mdet::Channel::GetHighCutoffFrequency(), mdet::BackEndSiPM::GetHighGainAmplifierAdjustmentFactor(), mdet::BackEndSiPM::GetHighGainAmplifierOffset(), mdet::BackEndSiPM::GetHighGainAmplifierPar1(), mdet::BackEndSiPM::GetHighGainAmplifierPar2(), mdet::BackEndSiPM::GetHighGainAmplifierPar3(), mdet::BackEndSiPM::GetHighGainAmplifierPar4(), mdet::BackEndSiPM::GetHighGainAmplifierPar5(), mdet::BackEndSiPM::GetHighGainAmplifierPar6(), mdet::BackEndSiPM::GetHighGainAmplifierPar7(), mdet::BackEndSiPM::GetHighGainAmplifierPar8(), mdet::BackEndSiPM::GetHighGainAmplifierPar9(), mdet::BackEndSiPM::GetHighGainAmplifierSaturationDown(), mdet::BackEndSiPM::GetHighGainAmplifierSaturationUp(), mdet::Channel::GetInitialIntervalLength(), mdet::Channel::GetInvertingInputResistance(), mdet::Channel::GetIterationsNumber(), mdet::Scintillator::GetLength(), mdet::Scintillator::GetLocalSoilDensity(), mdet::Channel::GetLowCutoffFrequency(), mdet::BackEndSiPM::GetLowGainAmplifierAdjustmentFactor(), mdet::BackEndSiPM::GetLowGainAmplifierOffset(), mdet::BackEndSiPM::GetLowGainAmplifierPar1(), mdet::BackEndSiPM::GetLowGainAmplifierPar2(), mdet::BackEndSiPM::GetLowGainAmplifierPar3(), mdet::BackEndSiPM::GetLowGainAmplifierPar4(), mdet::BackEndSiPM::GetLowGainAmplifierPar5(), mdet::BackEndSiPM::GetLowGainAmplifierPar6(), mdet::BackEndSiPM::GetLowGainAmplifierPar7(), mdet::BackEndSiPM::GetLowGainAmplifierPar8(), mdet::BackEndSiPM::GetLowGainAmplifierPar9(), mdet::BackEndSiPM::GetLowGainAmplifierSaturationDown(), mdet::BackEndSiPM::GetLowGainAmplifierSaturationUp(), mdet::Channel::GetMaxNumberOfErrors(), mdet::FrontEnd::GetMeanSampleRatePeriod(), mdet::FrontEndSiPM::GetMeanSampleRatePeriod(), mdet::BackEndSiPM::GetNumberOfChannelsToGroup(), mdet::Fiber::GetNumericalAperture(), mdet::Fiber::GetOnManifoldLength(), mdet::Module::GetPhotoDetector(), mdet::FrontEndSiPM::GetPostT1BufferLength(), mdet::FrontEnd::GetPostT1BufferLength(), mdet::ChannelSiPM::GetPreAmplifierGain(), mdet::ChannelSiPM::GetPreAmplifierTime(), mdet::FrontEndSiPM::GetPreT1BufferLength(), mdet::FrontEnd::GetPreT1BufferLength(), mdet::SiPM::GetPulseAmplitude1Mean(), mdet::SiPM::GetPulseAmplitude1StdDev(), mdet::SiPM::GetPulseAmplitude2Mean(), mdet::SiPM::GetPulseAmplitude2StdDev(), mdet::SiPM::GetPulseAmplitude3Mean(), mdet::SiPM::GetPulseAmplitude3StdDev(), GetPulseAmplitudeMean(), GetPulseAmplitudeStdDev(), GetPulseChargeMean(), GetPulseChargeStdDev(), GetPulseParametersCorrelation(), GetPulseParametrization(), mdet::SiPM::GetPulseRelevantWidth(), GetPulseRelevantWidth(), GetPulseStdDevMean(), GetPulseStdDevStdDev(), mdet::SiPM::GetPulseTime1Mean(), mdet::SiPM::GetPulseTime1StdDev(), mdet::SiPM::GetPulseTime2Mean(), mdet::SiPM::GetPulseTime2StdDev(), mdet::SiPM::GetPulseTime3Mean(), mdet::SiPM::GetPulseTime3StdDev(), mdet::SiPM::GetPulseTime4Mean(), mdet::SiPM::GetPulseTime4StdDev(), mdet::Fiber::GetRadius(), mdet::Fiber::GetRefractionIndex(), mdet::Channel::GetResponseTime(), mdet::FrontEnd::GetSampleRatePeriodJitter(), mdet::FrontEndSiPM::GetSampleTimeADC(), mdet::BackEndSiPM::GetSecondAdderOffset(), mdet::BackEndSiPM::GetSecondAdderPar1(), mdet::BackEndSiPM::GetSecondAdderPar2(), mdet::BackEndSiPM::GetSecondAdderPar3(), mdet::BackEndSiPM::GetSecondAdderPar4(), mdet::BackEndSiPM::GetSecondAdderPar5(), mdet::BackEndSiPM::GetSecondAdderSaturationDown(), mdet::BackEndSiPM::GetSecondAdderSaturationUp(), mdet::Channel::GetSignalShiftMean(), mdet::Channel::GetSignalShiftStdDev(), mdet::BackEndSiPM::GetSimplifiedGainHG(), mdet::BackEndSiPM::GetSimplifiedGainLG(), mdet::BackEndSiPM::GetSimplifiedTime(), mdet::Channel::GetSlewRate(), mdet::FrontEndSiPM::GetStepADC(), mdet::Channel::GetThreshold(), mdet::FrontEnd::GetTrueRangeLowThreshold(), mdet::FrontEndSiPM::GetTrueRangeLowThreshold(), and mdet::Scintillator::GetWidth().

template<class C , class ManagerProvider >
template<typename T >
T& det::DetectorComponent< C, ManagerProvider >::GetData ( T &  d,
const std::string &  p 
) const
inlineprotectedinherited

Common utility function for configuration.

Overload without wrapping parameter: directly gets the datum as parameter. Typically invoked with T equal to a primitive type (int, double, so on).

Definition at line 232 of file DetectorComponent.h.

template<class C , class ManagerProvider >
int det::DetectorComponent< C, ManagerProvider >::GetId ( ) const
inlineinherited

The id of this component.

Definition at line 105 of file DetectorComponent.h.

References det::DetectorComponent< C, ManagerProvider >::fId.

Referenced by G4StationSimulatorOG::G4StationConstruction::AssembleUMD(), MuonCounterViewerAG::ScintBuilder::Box(), MdLDFFinderAG::Likelihood2::CalculateCandidateLikelihood(), MdLDFFinderAG::Likelihood3::CalculateCandidateLikelihood(), MdLDFFinderAG::Likelihood::CalculateCandidateLikelihood(), MdLDFFinderAG::MdLDFFinder::CalculateChi2(), MdLDFFinderAG::MdLDFFinder::FillModulesShowerPlaneDistances(), EdepSimulatorAG::PrimaryGenerator::GeneratePrimaries(), mdet::PMT::GetCrossTalk(), det::DetectorComponent< C, ManagerProvider >::Init(), MdOptoElectronicSimulatorAG::MdOptoElectronicSimulator::OptoElectronics(), MdOptoElectronicSimulatorAG::MdOptoElectronicSimulator::PlotChannel(), MdCounterSimulatorAG::MdCounterSimulator::PlotChannel(), MdOptoElectronicSimulatorAG::MdOptoElectronicSimulator::PlotIntegrator(), MdCounterSimulatorAG::MdCounterSimulator::PlotIntegrator(), MdOptoElectronicSimulatorAG::MdOptoElectronicSimulator::ProcessPulses(), MdCounterSimulatorAG::MdCounterSimulator::ProcessPulses(), MdOptoElectronicSimulatorAG::MdOptoElectronicSimulator::ProcessPulsesIntegrator(), MdCounterSimulatorAG::MdCounterSimulator::ProcessPulsesIntegrator(), MdEventSelectorAG::MdEventSelector::RejectTimeOutliers(), EdepSimulatorAG::EdepSimulator::Run(), MuonCounterViewerAG::MuonCounterViewer::Run(), MdCounterSimulatorAG::MdCounterSimulator::RunFromMEventScintillatorSimulated(), MdLDFFinderAG::MdLDFFinder::SetLdfResiduals(), MdOptoElectronicSimulatorAG::MdOptoElectronicSimulator::SimulateElectronics(), MdCounterSimulatorAG::MdCounterSimulator::SimulateElectronics(), and MdCounterSimulatorAG::MdCounterSimulator::SimulatePulses().

template<class C , class ManagerProvider >
const VManager::IndexMap& det::DetectorComponent< C, ManagerProvider >::GetIdsMap ( ) const
inlineinherited
const CrossTalkContainer & mdet::Pixel::GetNeighborsCrossTalkCorner ( ) const
private

Cross-talk coeffcient for neighbors of corner located pixel.

This data is managed by mdet::PMT.

Definition at line 63 of file MDetector/Pixel.cc.

References fNeighborsCrossTalk.

Referenced by mdet::PMT::GetCrossTalk(), and mdet::PMT::GetCrossTalkNormalizationFactor().

const CrossTalkContainer & mdet::Pixel::GetNeighborsCrossTalkInside ( ) const
private

Cross-talk coeffcient for neighbors of a pixel located inside the pixel matrix.

The length has to be the same for every Pixel, be it in the border or not. This data is managed by mdet::PMT.

Definition at line 46 of file MDetector/Pixel.cc.

References fNeighborsCrossTalk.

Referenced by mdet::PMT::GetCrossTalk(), and mdet::PMT::GetCrossTalkNormalizationFactor().

const CrossTalkContainer & mdet::Pixel::GetNeighborsCrossTalkSide ( ) const
private

Cross-talk coeffcient for neighbors of a side (not corner) located pixel.

This data is managed by mdet::PMT.

Definition at line 55 of file MDetector/Pixel.cc.

References fNeighborsCrossTalk.

Referenced by mdet::PMT::GetCrossTalk(), and mdet::PMT::GetCrossTalkNormalizationFactor().

const PMT& mdet::Pixel::GetPMT ( ) const
inline
double mdet::Pixel::GetPulseAmplitudeMean ( ) const
private

Mean amplitude of SPE pulses.

See Also
PulseParametrization

Definition at line 86 of file MDetector/Pixel.cc.

References fPulseAmplitudeMean, and det::DetectorComponent< C, ManagerProvider >::GetData().

Referenced by MakeSPEAt().

double mdet::Pixel::GetPulseAmplitudeStdDev ( ) const
private

Standard deviation of amplitude in SPE pulses.

See Also
PulseParametrization

Definition at line 93 of file MDetector/Pixel.cc.

References fPulseAmplitudeStdDev, and det::DetectorComponent< C, ManagerProvider >::GetData().

Referenced by MakeSPEAt().

double mdet::Pixel::GetPulseChargeMean ( ) const
private

Mean total charge in SPE pulses.

See Also
PulseParametrization

Definition at line 114 of file MDetector/Pixel.cc.

References fPulseChargeMean, and det::DetectorComponent< C, ManagerProvider >::GetData().

Referenced by MakeSPEAt().

double mdet::Pixel::GetPulseChargeStdDev ( ) const
private

Standard deviation of total charge in SPE pulses.

See Also
PulseParametrization

Definition at line 121 of file MDetector/Pixel.cc.

References fPulseChargeStdDev, and det::DetectorComponent< C, ManagerProvider >::GetData().

Referenced by MakeSPEAt().

double mdet::Pixel::GetPulseParametersCorrelation ( ) const
private

The correlation between the two selected parameters.

See Also
PulseParametrization

Definition at line 128 of file MDetector/Pixel.cc.

References fPulseParametersCorrelation, and det::DetectorComponent< C, ManagerProvider >::GetData().

Referenced by MakeSPEAt().

Pixel::PulseParametrization mdet::Pixel::GetPulseParametrization ( ) const
private
double mdet::Pixel::GetPulseRelevantWidth ( ) const
private

Pulse relevant time width.

This magnitude expressed in units of sigma. Mathematically the pulse may last forever, tough computationally it's needed to restrict the interval. Given a particular pulse, with s as sigma and m as mean (center value) and w as this relevant width, then the pulse is taken to last from

\[ m - w \times s \]

to

\[ m + w \times s \]

See Also
Pixel::UpperLimit
Pixel::LowerLimit

Definition at line 135 of file MDetector/Pixel.cc.

References fPulseRelevantWidth, and det::DetectorComponent< C, ManagerProvider >::GetData().

Referenced by mdet::Pixel::SPE::LowerLimit().

double mdet::Pixel::GetPulseStdDevMean ( ) const
private

Mean standard deviation in SPE pulses (time spread).

See Also
PulseParametrization

Definition at line 100 of file MDetector/Pixel.cc.

References fPulseStdDevMean, and det::DetectorComponent< C, ManagerProvider >::GetData().

Referenced by MakeSPEAt().

double mdet::Pixel::GetPulseStdDevStdDev ( ) const
private

Standard deviation of time spread in SPE pulses.

See Also
PulseParametrization

Definition at line 107 of file MDetector/Pixel.cc.

References fPulseStdDevStdDev, and det::DetectorComponent< C, ManagerProvider >::GetData().

Referenced by MakeSPEAt().

Pixel::SPE mdet::Pixel::MakeSPEAt ( const double  t) const
template<class C , class ManagerProvider >
void det::DetectorComponent< C, ManagerProvider >::Register ( utl::VValidated v)
inlineprotectedinherited
template<class C , class ManagerProvider >
s<< " ]"; } DetectorComponent(int i, const VManager::IndexMap& parentMap) : fId(i), fIdsMap(parentMap) { Init(); } DetectorComponent(const int i) : fId(i) { Init(); } virtual ~DetectorComponent() { } virtual void Update(const bool invalidateData, const bool ) { for (FieldsContainer::iterator i = fFields.begin(), e = fFields.end(); i != e; ++i) (*i)-> det::DetectorComponent< C, ManagerProvider >::SetValid ( false  )
protectedinherited
template<class C , class ManagerProvider >
return o det::DetectorComponent< C, ManagerProvider >::str ( )
inherited
void mdet::Pixel::Update ( const bool  invalidateData,
const bool  invalidateComponents 
)
private

Definition at line 238 of file MDetector/Pixel.cc.

References fChannelScintillatorFiberIds, fNeighborsCrossTalk, and Update().

Friends And Related Function Documentation

template<class T >
void boost::checked_delete ( T *  )
friend

Friendship for destruction. Depends on det::ComponentGroup innards.

friend struct det::ComponentUpdater
friend

See mdet::Counter.

Definition at line 362 of file MDetector/Pixel.h.

friend struct det::ParentCreator
friend

Friendship to allow creation (or call it construction).

Definition at line 346 of file MDetector/Pixel.h.

friend class Module
friend

Friendship to allow id management.

Definition at line 359 of file MDetector/Pixel.h.

friend class PMT
friend

Friendship to allow neighbors and cross-talk management.

Definition at line 356 of file MDetector/Pixel.h.

Provide access to the factory.

Definition at line 226 of file MDetector/Pixel.h.

Member Data Documentation

template<class C , class ManagerProvider >
T & det::DetectorComponent< T >::const
inherited
Initial value:
{
std::ostringstream o

Returns the message that identifies this component.

To make unambiguous the call in the wrapped version.

This method is just a convenience informative method, not meant to be used for control-flow logic (please do not parse this!).

See Also
AddIdMessage(std::ostringstream& s) const.

In the wrapped version, when wrapped type is itself a wrapping template, the compiler has a hard time to decide what to do. So this function was created with the logic formerly contained in the non-wrapped version.

Related to this, see http://www.gotw.ca/publications/mill17.htm.

Definition at line 125 of file DetectorComponent.h.

template<class C , class ManagerProvider >
const DetectorUserData<C>& det::DetectorComponent< C, ManagerProvider >::const
inherited
Initial value:
{
if (!fUserData) {
std::string dataMngr;
GetDataNoWrap(dataMngr, "userData");
DetectorUserData<C>* const t = new DetectorUserData<C>();
DetectorUserData<C>::Load(t, dataMngr);
fUserData = t;
}
return *fUserData

Retrieve the user custom data.

Definition at line 137 of file DetectorComponent.h.

template<class C , class ManagerProvider >
template<typename T1 , typename T2 , template< typename, typename > class P>
T1& det::DetectorComponent< C, ManagerProvider >::const
protectedinherited
Initial value:
{
return GetDataUnwrap<T1>(d, p)

Doubly-templated variation of common utility.

Needed to be added in response to the addition of a 2nd policy parameter to utl::ShadowPtr.

Definition at line 203 of file DetectorComponent.h.

template<class C , class ManagerProvider >
template<typename T >
T& det::DetectorComponent< C, ManagerProvider >::const
protectedinherited
Initial value:
{
if (! d.IsValid()) {
GetDataNoWrap(d.Get(), p);
d.SetValid();
}
return d.Get()

Specialization for utl::Validated.

To make unambiguous the call in the wrapped version.

In the wrapped version, when wrapped type is itself a wrapping template, the compiler has a hard time to decide what to do. So this function was created with the logic formerly contained in the non-wrapped version.

Related to this, see http://www.gotw.ca/publications/mill17.htm.

Definition at line 216 of file DetectorComponent.h.

template<class C , class ManagerProvider >
void det::DetectorComponent< C, ManagerProvider >::const
protectedinherited
Initial value:
{
typedef det::VManager::IndexMap::const_iterator It

Message that identifies the component.

Streams-out a (human-readeable) message identifying the component in the hierarchy. It's meant to be used only in messages sent to the user as a way to identify the component that isssues the message (be it an information, warning or error one).

Maybe it'd have been more idiomatic to overload operator<< but I feel that it would be misleading to "stream out" a DetectorComponent.

Definition at line 250 of file DetectorComponent.h.

utl::ShadowPtr<IdsContainer> mdet::Pixel::fChannelScintillatorFiberIds
mutableprivate

Container for indices of corresponding Channel, Scintillator, Fiber.

Definition at line 401 of file MDetector/Pixel.h.

Referenced by GetChannelScintillatorFiberIds(), and Update().

utl::Validated<double> mdet::Pixel::fCrossTalkNormalizationFactor
mutableprivate

Conversion factor to percentual values. Handled within mdet::PMT.

Definition at line 390 of file MDetector/Pixel.h.

Referenced by mdet::PMT::GetCrossTalkNormalizationFactor().

NeighborsContainer mdet::Pixel::fNeighbors
private

Neighbors.

This datum is handled by the parent PMT is kept here as a means to, say, constraint the lifetime of this data to the pixel itself; also, putting this here avoids PMT to store the information in some container (so it works kinda an intrusive mechanism). As long the containg PMT exists this data won't be invalidated (the neigbors will exist), and if the PMT exists this Pixel also will do.

Definition at line 376 of file MDetector/Pixel.h.

Referenced by mdet::PMT::GetCrossTalk(), mdet::PMT::GetCrossTalkNormalizationFactor(), mdet::PMT::IsNeighbor(), mdet::PMT::NeighborsBegin(), and mdet::PMT::NeighborsEnd().

utl::ShadowPtr<CrossTalkContainer> mdet::Pixel::fNeighborsCrossTalk
mutableprivate

Container for cross-talk coefficients.

This datum is shared among the different getters. For a given instance, only of the getter should be called.

Definition at line 384 of file MDetector/Pixel.h.

Referenced by GetNeighborsCrossTalkCorner(), GetNeighborsCrossTalkInside(), GetNeighborsCrossTalkSide(), and Update().

const PMT& mdet::Pixel::fPMT
private

Definition at line 419 of file MDetector/Pixel.h.

Referenced by GetPMT().

utl::Validated<double> mdet::Pixel::fPulseAmplitudeMean
mutableprivate

Definition at line 403 of file MDetector/Pixel.h.

Referenced by GetPulseAmplitudeMean().

utl::Validated<double> mdet::Pixel::fPulseAmplitudeStdDev
mutableprivate

Definition at line 405 of file MDetector/Pixel.h.

Referenced by GetPulseAmplitudeStdDev().

utl::Validated<double> mdet::Pixel::fPulseChargeMean
mutableprivate

Definition at line 411 of file MDetector/Pixel.h.

Referenced by GetPulseChargeMean().

utl::Validated<double> mdet::Pixel::fPulseChargeStdDev
mutableprivate

Definition at line 413 of file MDetector/Pixel.h.

Referenced by GetPulseChargeStdDev().

utl::Validated<double> mdet::Pixel::fPulseParametersCorrelation
mutableprivate

Definition at line 415 of file MDetector/Pixel.h.

Referenced by GetPulseParametersCorrelation().

utl::Validated<PulseParametrizationForConfig> mdet::Pixel::fPulseParametrization
mutableprivate

Definition at line 398 of file MDetector/Pixel.h.

Referenced by GetPulseParametrization().

utl::Validated<double> mdet::Pixel::fPulseRelevantWidth
mutableprivate

Definition at line 417 of file MDetector/Pixel.h.

Referenced by GetPulseRelevantWidth().

utl::Validated<double> mdet::Pixel::fPulseStdDevMean
mutableprivate

Definition at line 407 of file MDetector/Pixel.h.

Referenced by GetPulseStdDevMean().

utl::Validated<double> mdet::Pixel::fPulseStdDevStdDev
mutableprivate

Definition at line 409 of file MDetector/Pixel.h.

Referenced by GetPulseStdDevStdDev().

const char *const mdet::Pixel::kComponentId = MHierarchyInfo::kComponentsIds[6]
static

Definition at line 54 of file MDetector/Pixel.h.

const char *const mdet::Pixel::kComponentName = MHierarchyInfo::kComponentsNames[6]
static

Definition at line 52 of file MDetector/Pixel.h.

const char *const mdet::Pixel::PulseParametrizationTags
staticprivate
Initial value:
= {
"amplitudeAndCharge",
"amplitudeAndStandardDeviation",
"chargeAndStandardDeviation"
}

Tags for textual representation.

Definition at line 207 of file MDetector/Pixel.h.

template<class C , class ManagerProvider >
s<< "id=" << GetId() << " ["; for (It i = GetIdsMap().begin(), e = GetIdsMap().end(); i != e; ++i) s << " " << i-> first<< "=" << i-> det::DetectorComponent< C, ManagerProvider >::second
protectedinherited

The documentation for this class was generated from the following files:

, generated on Tue Sep 26 2023.