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

Eletronic ChannelSiPM. More...

#include "mdet/ChannelSiPM.h"

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

Public Member Functions

 AddIdMessage (o)
 
double ComputeDiscriminator (double signal, double deltaTime) const
 
std::complex< double > ComputeTransfer (double freq) const
 Computes the circuit transfer function at the given frequency. More...
 
const FrontEndSiPMGetFrontEnd () const
 The shared common-to-all-ChannelSiPMs electronic frontend of this ChannelSiPM. More...
 
int GetId () const
 The id of this component. More...
 
const VManager::IndexMap & GetIdsMap () const
 The id identifying this component within its detector hierarhy. More...
 
double GetThreshold () const
 Discrimination threshold. 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[11]
 
static const char *const kComponentName = MHierarchyInfo::kComponentsNames[11]
 

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 Member Functions

double ApplySaturation (double v) const
 
 ChannelSiPM (int cId, const det::VManager::IndexMap &parentMap, const FrontEndSiPM &parent)
 Constructs the electronic ChannelSiPM. More...
 
double GetDiscriminatorGain () const
 Voltage change per time unit. More...
 
double GetDiscriminatorHiLevel () const
 Target voltage when the signal is higher than the threshold. More...
 
double GetDiscriminatorLowLevel () const
 Target voltage when the signal is lower than the threshold. More...
 
double GetDiscriminatorThreshold () const
 
double GetDiscriminatorTransitionTime () const
 Time for the discriminator to go up, once the signal reaches the threshold. More...
 
const char * GetFastShaperFunctionIm () const
 
const char * GetFastShaperFunctionReal () const
 Transfer function. Separated in Re and Im. More...
 
double GetFastShaperGain () const
 Pre amplifier gain. More...
 
double GetFastShaperTime () const
 
const char * GetPreAmplifierFunctionIm () const
 
const char * GetPreAmplifierFunctionReal () const
 Transfer Function. More...
 
double GetPreAmplifierGain () const
 Pre amplifier gain. More...
 
double GetPreAmplifierTime () const
 Pre amplifier time. More...
 
 ~ChannelSiPM ()
 Destructor (!). More...
 

Private Attributes

utl::Validated< double > fDiscriminatorGain
 
utl::Validated< double > fDiscriminatorHiLevel
 
utl::Validated< double > fDiscriminatorLowLevel
 
utl::Validated< double > fDiscriminatorTransitionTime
 
utl::Validated< double > fFastShaperGain
 
utl::Validated< double > fFastShaperTime
 
const FrontEndSiPMfFrontEnd
 
utl::Validated< double > fPreAmplifierGain
 
utl::Validated< double > fPreAmplifierTime
 
utl::Validated< double > fThreshold
 
double fTimeOverThreshold
 

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...
 

Detailed Description

Eletronic ChannelSiPM.

This class represents the electronic ChannelSiPM that register the signal that comes out an individual pixel. This class includes both the analog part of the real device.

Definition at line 33 of file ChannelSiPM.h.

Constructor & Destructor Documentation

mdet::ChannelSiPM::ChannelSiPM ( int  cId,
const det::VManager::IndexMap parentMap,
const FrontEndSiPM parent 
)
private

Constructs the electronic ChannelSiPM.

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

A reference to the parent is kept in this 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 22 of file ChannelSiPM.cc.

References fDiscriminatorGain, fDiscriminatorHiLevel, fDiscriminatorLowLevel, fFastShaperGain, fFastShaperTime, fPreAmplifierGain, fPreAmplifierTime, fThreshold, and det::DetectorComponent< C, ManagerProvider >::Register().

mdet::ChannelSiPM::~ChannelSiPM ( )
inlineprivate

Destructor (!).

Definition at line 175 of file ChannelSiPM.h.

Member Function Documentation

template<class C , class ManagerProvider >
det::DetectorComponent< C, ManagerProvider >::AddIdMessage ( )
inherited
double mdet::ChannelSiPM::ApplySaturation ( double  v) const
private

Definition at line 147 of file ChannelSiPM.cc.

References GetDiscriminatorHiLevel(), and GetDiscriminatorLowLevel().

double mdet::ChannelSiPM::ComputeDiscriminator ( double  signal,
double  deltaTime 
) const
std::complex< double > mdet::ChannelSiPM::ComputeTransfer ( double  freq) const

Computes the circuit transfer function at the given frequency.

Compute the (resistance equivalent unit) transfer function of the amplifying stage (likely to be an inverting configuration).

See Also
mdet::Pixel::SPE

Definition at line 116 of file ChannelSiPM.cc.

References GetFastShaperGain(), GetFastShaperTime(), GetPreAmplifierGain(), GetPreAmplifierTime(), utl::kTwoPi, and std::pow().

Referenced by MdOptoElectronicSimulatorAG::MdOptoElectronicSimulator::ApplyCITIROCTransfer(), and MdCounterSimulatorAG::MdCounterSimulator::ApplyCITIROCTransfer().

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(), GetDiscriminatorGain(), GetDiscriminatorHiLevel(), mdet::Channel::GetDiscriminatorHiLevel(), GetDiscriminatorLowLevel(), mdet::Channel::GetDiscriminatorLowLevel(), GetDiscriminatorThreshold(), GetDiscriminatorTransitionTime(), mdet::Scintillator::GetEpsilon(), mdet::FrontEnd::GetFalseRangeHiThreshold(), mdet::FrontEndSiPM::GetFalseRangeHiThreshold(), GetFastShaperGain(), 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(), GetPreAmplifierGain(), 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(), mdet::Pixel::GetPulseAmplitudeMean(), mdet::Pixel::GetPulseAmplitudeStdDev(), mdet::Pixel::GetPulseChargeMean(), mdet::Pixel::GetPulseChargeStdDev(), mdet::Pixel::GetPulseParametersCorrelation(), mdet::Pixel::GetPulseParametrization(), mdet::SiPM::GetPulseRelevantWidth(), mdet::Pixel::GetPulseRelevantWidth(), mdet::Pixel::GetPulseStdDevMean(), mdet::Pixel::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.

double mdet::ChannelSiPM::GetDiscriminatorGain ( ) const
private

Voltage change per time unit.

This characterizes the amount of time to transition between states.

Definition at line 78 of file ChannelSiPM.cc.

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

double mdet::ChannelSiPM::GetDiscriminatorHiLevel ( ) const
private

Target voltage when the signal is higher than the threshold.

Definition at line 94 of file ChannelSiPM.cc.

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

Referenced by ApplySaturation(), and ComputeDiscriminator().

double mdet::ChannelSiPM::GetDiscriminatorLowLevel ( ) const
private

Target voltage when the signal is lower than the threshold.

Definition at line 86 of file ChannelSiPM.cc.

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

Referenced by ApplySaturation(), and ComputeDiscriminator().

double mdet::ChannelSiPM::GetDiscriminatorThreshold ( ) const
private
double mdet::ChannelSiPM::GetDiscriminatorTransitionTime ( ) const
private

Time for the discriminator to go up, once the signal reaches the threshold.

Definition at line 102 of file ChannelSiPM.cc.

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

Referenced by ComputeDiscriminator().

const char* mdet::ChannelSiPM::GetFastShaperFunctionIm ( ) const
private
const char* mdet::ChannelSiPM::GetFastShaperFunctionReal ( ) const
private

Transfer function. Separated in Re and Im.

double mdet::ChannelSiPM::GetFastShaperGain ( ) const
private

Pre amplifier gain.

Definition at line 62 of file ChannelSiPM.cc.

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

Referenced by ComputeTransfer().

double mdet::ChannelSiPM::GetFastShaperTime ( ) const
private
const FrontEndSiPM& mdet::ChannelSiPM::GetFrontEnd ( ) const
inline
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 char* mdet::ChannelSiPM::GetPreAmplifierFunctionIm ( ) const
private
const char* mdet::ChannelSiPM::GetPreAmplifierFunctionReal ( ) const
private

Transfer Function.

double mdet::ChannelSiPM::GetPreAmplifierGain ( ) const
private

Pre amplifier gain.

Definition at line 46 of file ChannelSiPM.cc.

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

Referenced by ComputeTransfer().

double mdet::ChannelSiPM::GetPreAmplifierTime ( ) const
private

Pre amplifier time.

Definition at line 38 of file ChannelSiPM.cc.

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

Referenced by ComputeTransfer().

double mdet::ChannelSiPM::GetThreshold ( ) const

Discrimination threshold.

This property is the only one exposed (from those that have to do with the discrimination) since it's meaningful for client code.

The client code should only consult this property in regards to informative concerns, like plotting a constant desired threshold level. For computation matters, the interface provided by mdet::ChannelSiPM::Discriminator should be provided.

See Also
Discriminator
MakeDiscriminator
template<class C , class ManagerProvider >
void det::DetectorComponent< C, ManagerProvider >::Register ( utl::VValidated v)
inlineprotectedinherited

Register the field so as to allow handling it.

Definition at line 298 of file DetectorComponent.h.

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

Referenced by ChannelSiPM(), mdet::Counter::Counter(), mdet::Module::Module(), and mdet::Scintillator::Scintillator().

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

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 188 of file ChannelSiPM.h.

friend struct det::ParentCreator
friend

Friendship to allow creation (or call it construction).

Definition at line 179 of file ChannelSiPM.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::Validated<double> mdet::ChannelSiPM::fDiscriminatorGain
mutableprivate

Definition at line 198 of file ChannelSiPM.h.

Referenced by ChannelSiPM().

utl::Validated<double> mdet::ChannelSiPM::fDiscriminatorHiLevel
mutableprivate

Definition at line 207 of file ChannelSiPM.h.

Referenced by ChannelSiPM(), and GetDiscriminatorHiLevel().

utl::Validated<double> mdet::ChannelSiPM::fDiscriminatorLowLevel
mutableprivate

Definition at line 205 of file ChannelSiPM.h.

Referenced by ChannelSiPM(), and GetDiscriminatorLowLevel().

utl::Validated<double> mdet::ChannelSiPM::fDiscriminatorTransitionTime
mutableprivate

Definition at line 209 of file ChannelSiPM.h.

Referenced by GetDiscriminatorTransitionTime().

utl::Validated<double> mdet::ChannelSiPM::fFastShaperGain
mutableprivate

Definition at line 196 of file ChannelSiPM.h.

Referenced by ChannelSiPM(), and GetFastShaperGain().

utl::Validated<double> mdet::ChannelSiPM::fFastShaperTime
mutableprivate

Definition at line 194 of file ChannelSiPM.h.

Referenced by ChannelSiPM(), and GetFastShaperTime().

const FrontEndSiPM& mdet::ChannelSiPM::fFrontEnd
private

Definition at line 213 of file ChannelSiPM.h.

Referenced by GetFrontEnd().

utl::Validated<double> mdet::ChannelSiPM::fPreAmplifierGain
mutableprivate

Definition at line 192 of file ChannelSiPM.h.

Referenced by ChannelSiPM(), and GetPreAmplifierGain().

utl::Validated<double> mdet::ChannelSiPM::fPreAmplifierTime
mutableprivate

Definition at line 190 of file ChannelSiPM.h.

Referenced by ChannelSiPM(), and GetPreAmplifierTime().

utl::Validated<double> mdet::ChannelSiPM::fThreshold
mutableprivate

Definition at line 203 of file ChannelSiPM.h.

Referenced by ChannelSiPM(), GetDiscriminatorGain(), and GetDiscriminatorThreshold().

double mdet::ChannelSiPM::fTimeOverThreshold
mutableprivate

Definition at line 211 of file ChannelSiPM.h.

Referenced by ComputeDiscriminator().

const char *const mdet::ChannelSiPM::kComponentId = MHierarchyInfo::kComponentsIds[11]
static

Definition at line 38 of file ChannelSiPM.h.

const char *const mdet::ChannelSiPM::kComponentName = MHierarchyInfo::kComponentsNames[11]
static

Definition at line 36 of file ChannelSiPM.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.