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

Eletronic channel. More...

#include "mdet/Channel.h"

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

Classes

class  Discriminator
 Helper class encapsulating the discriminator response logic. More...
 

Public Member Functions

 AddIdMessage (o)
 
double ComputeSignalShift () const
 Computes a signal shift value according this Channel's characteristics (and, particularly, to the distribution of these values). More...
 
std::complex< double > ComputeTransfer (double freq) const
 Computes the circuit transfer function at the given frequency. More...
 
const FrontEndGetFrontEnd () const
 The shared common-to-all-channels electronic frontend of this channel. 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 GetSignalShiftMean () const
 Retrieves the mean shift. More...
 
double GetSignalShiftStdDev () const
 The standard deviation of the shift. More...
 
double GetThreshold () const
 Discrimination threshold. More...
 
return o str ()
 

Public Attributes

template<class Functor >
Discriminator const
 Create a fresh discriminator. More...
 

Static Public Attributes

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

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

s<< "id="<< GetId()<< " [";for(It
i=GetIdsMap().begin(), e=GetIdsMap().end();i!=e;++i)
s<< " "<< i-> first<< "="<< i-> 
second
 

Private Member Functions

 Channel (int cId, const det::VManager::IndexMap &parentMap, const FrontEnd &parent)
 Constructs the electronic channel. More...
 
std::complex< double > ComputeFrequencyFactor (double freq, double freqLimit) const
 Helper method to compute the factor (in the transfer function) that depends on frequency. More...
 
double GetAbsoluteError () const
 Absolute error for root finding. More...
 
double GetDCGain () const
 A dimensionless quantity signaling the DC gain. 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 GetFeedbackResistance () const
 The resistance within the feedback loop. More...
 
double GetHighCutoffFrequency () const
 Hi end of frequency response. More...
 
double GetInitialIntervalLength () const
 Lenght of the intervals (in time) in which divide the whole interval where roots are looked for. More...
 
double GetInvertingInputResistance () const
 The resistance attached to the inverting input. More...
 
unsigned int GetIterationsNumber () const
 Number of iterations allowed for the root finding procedures. More...
 
double GetLowCutoffFrequency () const
 Low end of frequency response. More...
 
unsigned int GetMaxNumberOfErrors () const
 Maximum number of errors admited without loggin when solving the equation threshold == input. More...
 
double GetResponseTime () const
 Response time of the discriminator associated with the channel. More...
 
double GetSlewRate () const
 Voltage change per time unit. More...
 
 ~Channel ()
 Destructor (!). More...
 

Private Attributes

utl::Validated< double > fAbsoluteError
 
utl::Validated< double > fDCGain
 
utl::Validated< double > fDiscriminatorHiLevel
 
utl::Validated< double > fDiscriminatorLowLevel
 
utl::Validated< double > fFeedbackResistance
 
const FrontEndfFrontEnd
 
utl::Validated< double > fHighCutoffFrequency
 
utl::Validated< double > fInitialIntervalLength
 
utl::Validated< double > fInvertingInputResistance
 
utl::Validated< int > fIterationsNumber
 
utl::Validated< double > fLowCutoffFrequency
 
utl::Validated< int > fMaxNumberOfErrors
 
utl::Validated< double > fResponseTime
 
utl::Validated< double > fSignalShiftMean
 
utl::Validated< double > fSignalShiftStdDev
 
utl::Validated< double > fSlewRate
 
utl::Validated< double > fThreshold
 

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

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

Author
Rodolfo Federico Gamarra
Date
08 Mar 2009

Definition at line 37 of file MDetector/Channel.h.

Constructor & Destructor Documentation

mdet::Channel::Channel ( int  cId,
const det::VManager::IndexMap parentMap,
const FrontEnd parent 
)
private

Constructs the electronic channel.

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 142 of file MDetector/Channel.cc.

mdet::Channel::~Channel ( )
inlineprivate

Destructor (!).

Definition at line 500 of file MDetector/Channel.h.

Member Function Documentation

template<class C , class ManagerProvider >
det::DetectorComponent< C, ManagerProvider >::AddIdMessage ( )
inherited
std::complex< double > mdet::Channel::ComputeFrequencyFactor ( double  freq,
double  freqLimit 
) const
private

Helper method to compute the factor (in the transfer function) that depends on frequency.

Parameters
freqThe desired for frequency.
freqLimitThe threshold limit frequency of the amplifier.

Definition at line 310 of file MDetector/Channel.cc.

Referenced by ComputeTransfer().

double mdet::Channel::ComputeSignalShift ( ) const

Computes a signal shift value according this Channel's characteristics (and, particularly, to the distribution of these values).

The electronic channel due to several (tipically non-linear) effects such as charge movement, and semi-conductor responses, imposes a shift on its input signal that introduces a displacement on its output. This shift has to be positive (the electronic won't produce output beforehand its input!) tough the return value, being floating-point, has sign. The response of the channel is not constant and so this value may change from time to time, so this is modeled with a randomization. This method is what client code should call in order to query a value, the randomization procedure parametrization is kept private.

Definition at line 280 of file MDetector/Channel.cc.

References fwk::RandomEngineRegistry::eDetector, utl::RandomEngine::GetEngine(), GetSignalShiftMean(), and GetSignalShiftStdDev().

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

std::complex< double > mdet::Channel::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 319 of file MDetector/Channel.cc.

References ComputeFrequencyFactor(), GetDCGain(), GetFeedbackResistance(), GetHighCutoffFrequency(), GetInvertingInputResistance(), and GetLowCutoffFrequency().

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

double mdet::Channel::GetAbsoluteError ( ) const
private

Absolute error for root finding.

It's an absolute error in time, since the roots are those times where the input equals the threshold.

The root finding procedures have to do with the discrimination process, where the input signal needs to be compared with the threshold.

Definition at line 236 of file MDetector/Channel.cc.

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

Referenced by mdet::Channel::Discriminator::Init().

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 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(), 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(), GetDiscriminatorHiLevel(), mdet::ChannelSiPM::GetDiscriminatorLowLevel(), GetDiscriminatorLowLevel(), mdet::ChannelSiPM::GetDiscriminatorThreshold(), mdet::ChannelSiPM::GetDiscriminatorTransitionTime(), mdet::Scintillator::GetEpsilon(), mdet::FrontEnd::GetFalseRangeHiThreshold(), mdet::FrontEndSiPM::GetFalseRangeHiThreshold(), mdet::ChannelSiPM::GetFastShaperGain(), mdet::ChannelSiPM::GetFastShaperTime(), 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(), 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(), GetInitialIntervalLength(), GetInvertingInputResistance(), GetIterationsNumber(), mdet::Scintillator::GetLength(), mdet::Scintillator::GetLocalSoilDensity(), 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(), 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(), 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(), 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(), GetSignalShiftMean(), GetSignalShiftStdDev(), mdet::BackEndSiPM::GetSimplifiedGainHG(), mdet::BackEndSiPM::GetSimplifiedGainLG(), mdet::BackEndSiPM::GetSimplifiedTime(), GetSlewRate(), mdet::FrontEndSiPM::GetStepADC(), 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::Channel::GetDCGain ( ) const
private

A dimensionless quantity signaling the DC gain.

Definition at line 179 of file MDetector/Channel.cc.

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

Referenced by ComputeTransfer().

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

Target voltage when the signal is higher than the threshold.

Definition at line 215 of file MDetector/Channel.cc.

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

Referenced by mdet::Channel::Discriminator::ApplySaturation(), and mdet::Channel::Discriminator::ComputeOutput().

double mdet::Channel::GetDiscriminatorLowLevel ( ) const
private
double mdet::Channel::GetFeedbackResistance ( ) const
private

The resistance within the feedback loop.

Definition at line 172 of file MDetector/Channel.cc.

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

Referenced by ComputeTransfer().

const FrontEnd& mdet::Channel::GetFrontEnd ( ) const
inline

The shared common-to-all-channels electronic frontend of this channel.

Definition at line 269 of file MDetector/Channel.h.

References fFrontEnd.

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

double mdet::Channel::GetHighCutoffFrequency ( ) const
private

Hi end of frequency response.

Definition at line 194 of file MDetector/Channel.cc.

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

Referenced by ComputeTransfer().

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::Channel::GetInitialIntervalLength ( ) const
private

Lenght of the intervals (in time) in which divide the whole interval where roots are looked for.

This quantity is defined to be positive.

See Also
GetAbsoluteError

Definition at line 243 of file MDetector/Channel.cc.

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

Referenced by mdet::Channel::Discriminator::Init().

double mdet::Channel::GetInvertingInputResistance ( ) const
private

The resistance attached to the inverting input.

Definition at line 165 of file MDetector/Channel.cc.

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

Referenced by ComputeTransfer().

unsigned int mdet::Channel::GetIterationsNumber ( ) const
private

Number of iterations allowed for the root finding procedures.

See Also
GetAbsoluteError

Definition at line 250 of file MDetector/Channel.cc.

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

double mdet::Channel::GetLowCutoffFrequency ( ) const
private

Low end of frequency response.

Definition at line 187 of file MDetector/Channel.cc.

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

Referenced by ComputeTransfer().

unsigned int mdet::Channel::GetMaxNumberOfErrors ( ) const
private

Maximum number of errors admited without loggin when solving the equation threshold == input.

Definition at line 257 of file MDetector/Channel.cc.

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

double mdet::Channel::GetResponseTime ( ) const
private

Response time of the discriminator associated with the channel.

See Also
GetSlewRate

Definition at line 229 of file MDetector/Channel.cc.

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

double mdet::Channel::GetSignalShiftMean ( ) const

Retrieves the mean shift.

This method is provided as public for completeness, so as to allow the users to know he mean value.

For computation of individual values the "Compute" method has to be used.

Internally is also used to feed the particular distribution that these values follow; but at last the concept of mean value exceeds a particular distribution and has a general meaning.

Definition at line 265 of file MDetector/Channel.cc.

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

Referenced by ComputeSignalShift().

double mdet::Channel::GetSignalShiftStdDev ( ) const

The standard deviation of the shift.

See Also
GetSignalShiftMean

Definition at line 272 of file MDetector/Channel.cc.

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

Referenced by ComputeSignalShift().

double mdet::Channel::GetSlewRate ( ) const
private

Voltage change per time unit.

This characterizes the amount of time to transition between states.

Definition at line 222 of file MDetector/Channel.cc.

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

Referenced by mdet::Channel::Discriminator::ComputeOutput().

double mdet::Channel::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.

If, for instance, in the future there's such a thing like that in the real device the effective threshold changes a little, say, after each time the signal crosses it then some more properties would be needed. Nevertheless this GetThreshold will remain as the mean/desired threshold.

Given this, 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::Channel::Discriminator should be provided.

See Also
Discriminator
MakeDiscriminator

Definition at line 201 of file MDetector/Channel.cc.

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

Referenced by mdet::Channel::Discriminator::Init(), mdet::Channel::Discriminator::OverThreshold(), MdOptoElectronicSimulatorAG::MdOptoElectronicSimulator::ProcessPulses(), and MdCounterSimulatorAG::MdCounterSimulator::ProcessPulses().

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

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 513 of file MDetector/Channel.h.

friend struct det::ParentCreator
friend

Friendship to allow creation (or call it construction).

Definition at line 504 of file MDetector/Channel.h.

Member Data Documentation

template<class Functor >
Discriminator mdet::Channel::const
Initial value:
{
return Discriminator(*this, inputPulse, beginTime, endTime)

Create a fresh discriminator.

Parameters
inputPulseAn functor object providing operator()(double time) as a way to evaluate the incoming pulse to be discrimined.
beginTimeThe starting time where the response is desired.
endTimeThe final time where the response is desired.

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

utl::Validated<double> mdet::Channel::fAbsoluteError
mutableprivate

Definition at line 538 of file MDetector/Channel.h.

Referenced by GetAbsoluteError().

utl::Validated<double> mdet::Channel::fDCGain
mutableprivate

Definition at line 522 of file MDetector/Channel.h.

Referenced by GetDCGain().

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

Definition at line 534 of file MDetector/Channel.h.

Referenced by GetDiscriminatorHiLevel().

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

Definition at line 532 of file MDetector/Channel.h.

Referenced by GetDiscriminatorLowLevel().

utl::Validated<double> mdet::Channel::fFeedbackResistance
mutableprivate

Definition at line 520 of file MDetector/Channel.h.

Referenced by GetFeedbackResistance().

const FrontEnd& mdet::Channel::fFrontEnd
private

Definition at line 552 of file MDetector/Channel.h.

Referenced by GetFrontEnd().

utl::Validated<double> mdet::Channel::fHighCutoffFrequency
mutableprivate

Definition at line 526 of file MDetector/Channel.h.

Referenced by GetHighCutoffFrequency().

utl::Validated<double> mdet::Channel::fInitialIntervalLength
mutableprivate

Definition at line 540 of file MDetector/Channel.h.

Referenced by GetInitialIntervalLength().

utl::Validated<double> mdet::Channel::fInvertingInputResistance
mutableprivate

Definition at line 518 of file MDetector/Channel.h.

Referenced by GetInvertingInputResistance().

utl::Validated<int> mdet::Channel::fIterationsNumber
mutableprivate

Definition at line 543 of file MDetector/Channel.h.

Referenced by GetIterationsNumber().

utl::Validated<double> mdet::Channel::fLowCutoffFrequency
mutableprivate

Definition at line 524 of file MDetector/Channel.h.

Referenced by GetLowCutoffFrequency().

utl::Validated<int> mdet::Channel::fMaxNumberOfErrors
mutableprivate

Definition at line 546 of file MDetector/Channel.h.

Referenced by GetMaxNumberOfErrors().

utl::Validated<double> mdet::Channel::fResponseTime
mutableprivate

Definition at line 530 of file MDetector/Channel.h.

Referenced by GetResponseTime().

utl::Validated<double> mdet::Channel::fSignalShiftMean
mutableprivate

Definition at line 548 of file MDetector/Channel.h.

Referenced by GetSignalShiftMean().

utl::Validated<double> mdet::Channel::fSignalShiftStdDev
mutableprivate

Definition at line 550 of file MDetector/Channel.h.

Referenced by GetSignalShiftStdDev().

utl::Validated<double> mdet::Channel::fSlewRate
mutableprivate

Definition at line 536 of file MDetector/Channel.h.

Referenced by GetSlewRate().

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

Definition at line 528 of file MDetector/Channel.h.

Referenced by GetThreshold().

const char *const mdet::Channel::kComponentId = MHierarchyInfo::kComponentsIds[7]
static

Definition at line 265 of file MDetector/Channel.h.

const char *const mdet::Channel::kComponentName = MHierarchyInfo::kComponentsNames[7]
static

Definition at line 263 of file MDetector/Channel.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.