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 | Friends
mdet::SiPM Class Reference

#include <SiPM.h>

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

Classes

class  PE
 PE 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 SiPMArrayGetSiPMArray () const
 
PE MakePEAt (double t) const
 Constructs an PE according to this SiPM 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[10]
 
static const char *const kComponentName = MHierarchyInfo::kComponentsNames[10]
 

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

typedef const char * PulseParametrizationForConfig
 Alias for a type considered within the config hierarchy, to be converted to the actual enum. More...
 

Private Member Functions

const IdsContainerGetChannelSiPMScintillatorFiberIds () const
 Indices for Channel, Scintillator, Fiber of corrresponding Pixel. More...
 
double GetPulseAmplitude1Mean () const
 Mean amplitude 1 of PE pulses in Parameter space. More...
 
double GetPulseAmplitude1StdDev () const
 Standard deviation of amplitude 1 in PE pulses in Parameter space. More...
 
double GetPulseAmplitude2Mean () const
 Mean amplitude 2 of PE pulses in Parameter space. More...
 
double GetPulseAmplitude2StdDev () const
 Standard deviation of amplitude 2 in PE pulses in Parameter space. More...
 
double GetPulseAmplitude3Mean () const
 Mean amplitude 3 of PE pulses in Parameter space. More...
 
double GetPulseAmplitude3StdDev () const
 Standard deviation of amplitude 3 in PE pulses in Parameter space. More...
 
double GetPulseRelevantWidth () const
 Pulse relevant time width. More...
 
double GetPulseTime1Mean () const
 Mean time 1 of PE pulses in Parameter space. More...
 
double GetPulseTime1StdDev () const
 Standard deviation of time 1 in PE pulses in Parameter space. More...
 
double GetPulseTime2Mean () const
 Mean time 2 of PE pulses in Parameter space. More...
 
double GetPulseTime2StdDev () const
 Standard deviation of time 2 in PE pulses in Parameter space. More...
 
double GetPulseTime3Mean () const
 Mean time 3 of PE pulses in Parameter space. More...
 
double GetPulseTime3StdDev () const
 Standard deviation of time 3 in PE pulses in Parameter space. More...
 
double GetPulseTime4Mean () const
 Mean time 4 of PE pulses in Parameter space. More...
 
double GetPulseTime4StdDev () const
 Standard deviation of time 4 in PE pulses in Parameter space. More...
 
 SiPM (int pId, const det::VManager::IndexMap &parentMap, const SiPMArray &parent)
 Constructs the SiPM. More...
 
void Update (bool invalidateData, bool invalidateComponents)
 
 ~SiPM ()
 

Private Attributes

utl::ShadowPtr< IdsContainerfChannelSiPMScintillatorFiberIds
 Container for indices of corresponding Channel, Scintillator, Fiber. More...
 
utl::Validated< double > fPulseAmplitude1Mean
 
utl::Validated< double > fPulseAmplitude1StdDev
 
utl::Validated< double > fPulseAmplitude2Mean
 
utl::Validated< double > fPulseAmplitude2StdDev
 
utl::Validated< double > fPulseAmplitude3Mean
 
utl::Validated< double > fPulseAmplitude3StdDev
 
utl::Validated
< PulseParametrizationForConfig
fPulseParametrization
 
utl::Validated< double > fPulseRelevantWidth
 
utl::Validated< double > fPulseTime1Mean
 
utl::Validated< double > fPulseTime1StdDev
 
utl::Validated< double > fPulseTime2Mean
 
utl::Validated< double > fPulseTime2StdDev
 
utl::Validated< double > fPulseTime3Mean
 
utl::Validated< double > fPulseTime3StdDev
 
utl::Validated< double > fPulseTime4Mean
 
utl::Validated< double > fPulseTime4StdDev
 
const SiPMArrayfSiPMArray
 

Friends

template<class T >
void boost::checked_delete (T *) BOOST_NOEXCEPT
 Friendship for destruction. 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 SiPMArray
 Friendship to allow neighbors and cross-talk management. More...
 

Detailed Description

Definition at line 39 of file SiPM.h.

Member Typedef Documentation

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

Definition at line 336 of file SiPM.h.

Constructor & Destructor Documentation

mdet::SiPM::SiPM ( int  pId,
const det::VManager::IndexMap parentMap,
const SiPMArray parent 
)
private

Constructs the SiPM.

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

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 26 of file SiPM.cc.

mdet::SiPM::~SiPM ( )
inlineprivate

Definition at line 305 of file SiPM.h.

Member Function Documentation

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

Indices for Channel, Scintillator, Fiber of corrresponding Pixel.

Definition at line 49 of file SiPM.cc.

References fChannelSiPMScintillatorFiberIds.

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(), GetPulseAmplitude1Mean(), GetPulseAmplitude1StdDev(), GetPulseAmplitude2Mean(), GetPulseAmplitude2StdDev(), GetPulseAmplitude3Mean(), GetPulseAmplitude3StdDev(), mdet::Pixel::GetPulseAmplitudeMean(), mdet::Pixel::GetPulseAmplitudeStdDev(), mdet::Pixel::GetPulseChargeMean(), mdet::Pixel::GetPulseChargeStdDev(), mdet::Pixel::GetPulseParametersCorrelation(), mdet::Pixel::GetPulseParametrization(), GetPulseRelevantWidth(), mdet::Pixel::GetPulseRelevantWidth(), mdet::Pixel::GetPulseStdDevMean(), mdet::Pixel::GetPulseStdDevStdDev(), GetPulseTime1Mean(), GetPulseTime1StdDev(), GetPulseTime2Mean(), GetPulseTime2StdDev(), GetPulseTime3Mean(), GetPulseTime3StdDev(), GetPulseTime4Mean(), 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
double mdet::SiPM::GetPulseAmplitude1Mean ( ) const
private

Mean amplitude 1 of PE pulses in Parameter space.

See Also
PulseParametrization

Definition at line 58 of file SiPM.cc.

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

Referenced by MakePEAt().

double mdet::SiPM::GetPulseAmplitude1StdDev ( ) const
private

Standard deviation of amplitude 1 in PE pulses in Parameter space.

See Also
PulseParametrization

Definition at line 65 of file SiPM.cc.

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

Referenced by MakePEAt().

double mdet::SiPM::GetPulseAmplitude2Mean ( ) const
private

Mean amplitude 2 of PE pulses in Parameter space.

See Also
PulseParametrization

Definition at line 72 of file SiPM.cc.

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

Referenced by MakePEAt().

double mdet::SiPM::GetPulseAmplitude2StdDev ( ) const
private

Standard deviation of amplitude 2 in PE pulses in Parameter space.

See Also
PulseParametrization

Definition at line 79 of file SiPM.cc.

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

Referenced by MakePEAt().

double mdet::SiPM::GetPulseAmplitude3Mean ( ) const
private

Mean amplitude 3 of PE pulses in Parameter space.

See Also
PulseParametrization

Definition at line 86 of file SiPM.cc.

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

Referenced by MakePEAt().

double mdet::SiPM::GetPulseAmplitude3StdDev ( ) const
private

Standard deviation of amplitude 3 in PE pulses in Parameter space.

See Also
PulseParametrization

Definition at line 93 of file SiPM.cc.

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

Referenced by MakePEAt().

double mdet::SiPM::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 156 of file SiPM.cc.

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

Referenced by mdet::SiPM::PE::UpperLimit().

double mdet::SiPM::GetPulseTime1Mean ( ) const
private

Mean time 1 of PE pulses in Parameter space.

See Also
PulseParametrization

Definition at line 100 of file SiPM.cc.

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

Referenced by MakePEAt().

double mdet::SiPM::GetPulseTime1StdDev ( ) const
private

Standard deviation of time 1 in PE pulses in Parameter space.

See Also
PulseParametrization

Definition at line 107 of file SiPM.cc.

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

Referenced by MakePEAt().

double mdet::SiPM::GetPulseTime2Mean ( ) const
private

Mean time 2 of PE pulses in Parameter space.

See Also
PulseParametrization

Definition at line 114 of file SiPM.cc.

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

Referenced by MakePEAt().

double mdet::SiPM::GetPulseTime2StdDev ( ) const
private

Standard deviation of time 2 in PE pulses in Parameter space.

See Also
PulseParametrization

Definition at line 121 of file SiPM.cc.

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

Referenced by MakePEAt().

double mdet::SiPM::GetPulseTime3Mean ( ) const
private

Mean time 3 of PE pulses in Parameter space.

See Also
PulseParametrization

Definition at line 128 of file SiPM.cc.

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

Referenced by MakePEAt().

double mdet::SiPM::GetPulseTime3StdDev ( ) const
private

Standard deviation of time 3 in PE pulses in Parameter space.

See Also
PulseParametrization

Definition at line 135 of file SiPM.cc.

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

Referenced by MakePEAt().

double mdet::SiPM::GetPulseTime4Mean ( ) const
private

Mean time 4 of PE pulses in Parameter space.

See Also
PulseParametrization

Definition at line 142 of file SiPM.cc.

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

Referenced by MakePEAt().

double mdet::SiPM::GetPulseTime4StdDev ( ) const
private

Standard deviation of time 4 in PE pulses in Parameter space.

See Also
PulseParametrization

Definition at line 149 of file SiPM.cc.

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

Referenced by MakePEAt().

const SiPMArray& mdet::SiPM::GetSiPMArray ( ) const
inline

Definition at line 47 of file SiPM.h.

References fSiPMArray.

SiPM::PE mdet::SiPM::MakePEAt ( 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::SiPM::Update ( bool  invalidateData,
bool  invalidateComponents 
)
private

Definition at line 208 of file SiPM.cc.

References 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 330 of file SiPM.h.

friend struct det::ParentCreator
friend

Friendship to allow creation (or call it construction).

Definition at line 313 of file SiPM.h.

friend class Module
friend

Friendship to allow id management.

Definition at line 328 of file SiPM.h.

friend class SiPMArray
friend

Friendship to allow neighbors and cross-talk management.

Definition at line 324 of file SiPM.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::SiPM::fChannelSiPMScintillatorFiberIds
mutableprivate

Container for indices of corresponding Channel, Scintillator, Fiber.

Definition at line 342 of file SiPM.h.

Referenced by GetChannelSiPMScintillatorFiberIds().

utl::Validated<double> mdet::SiPM::fPulseAmplitude1Mean
mutableprivate

Definition at line 344 of file SiPM.h.

Referenced by GetPulseAmplitude1Mean().

utl::Validated<double> mdet::SiPM::fPulseAmplitude1StdDev
mutableprivate

Definition at line 346 of file SiPM.h.

Referenced by GetPulseAmplitude1StdDev().

utl::Validated<double> mdet::SiPM::fPulseAmplitude2Mean
mutableprivate

Definition at line 348 of file SiPM.h.

Referenced by GetPulseAmplitude2Mean().

utl::Validated<double> mdet::SiPM::fPulseAmplitude2StdDev
mutableprivate

Definition at line 350 of file SiPM.h.

Referenced by GetPulseAmplitude2StdDev().

utl::Validated<double> mdet::SiPM::fPulseAmplitude3Mean
mutableprivate

Definition at line 352 of file SiPM.h.

Referenced by GetPulseAmplitude3Mean().

utl::Validated<double> mdet::SiPM::fPulseAmplitude3StdDev
mutableprivate

Definition at line 354 of file SiPM.h.

Referenced by GetPulseAmplitude3StdDev().

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

Definition at line 338 of file SiPM.h.

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

Definition at line 372 of file SiPM.h.

Referenced by GetPulseRelevantWidth().

utl::Validated<double> mdet::SiPM::fPulseTime1Mean
mutableprivate

Definition at line 356 of file SiPM.h.

Referenced by GetPulseTime1Mean().

utl::Validated<double> mdet::SiPM::fPulseTime1StdDev
mutableprivate

Definition at line 358 of file SiPM.h.

Referenced by GetPulseTime1StdDev().

utl::Validated<double> mdet::SiPM::fPulseTime2Mean
mutableprivate

Definition at line 360 of file SiPM.h.

Referenced by GetPulseTime2Mean().

utl::Validated<double> mdet::SiPM::fPulseTime2StdDev
mutableprivate

Definition at line 362 of file SiPM.h.

Referenced by GetPulseTime2StdDev().

utl::Validated<double> mdet::SiPM::fPulseTime3Mean
mutableprivate

Definition at line 364 of file SiPM.h.

Referenced by GetPulseTime3Mean().

utl::Validated<double> mdet::SiPM::fPulseTime3StdDev
mutableprivate

Definition at line 366 of file SiPM.h.

Referenced by GetPulseTime3StdDev().

utl::Validated<double> mdet::SiPM::fPulseTime4Mean
mutableprivate

Definition at line 368 of file SiPM.h.

Referenced by GetPulseTime4Mean().

utl::Validated<double> mdet::SiPM::fPulseTime4StdDev
mutableprivate

Definition at line 370 of file SiPM.h.

Referenced by GetPulseTime4StdDev().

const SiPMArray& mdet::SiPM::fSiPMArray
private

Definition at line 374 of file SiPM.h.

Referenced by GetSiPMArray().

const char *const mdet::SiPM::kComponentId = MHierarchyInfo::kComponentsIds[10]
static

Definition at line 45 of file SiPM.h.

const char *const mdet::SiPM::kComponentName = MHierarchyInfo::kComponentsNames[10]
static

Definition at line 43 of file SiPM.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.