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

Electronic front-end for the modules. More...

#include "mdet/FrontEnd.h"

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

Classes

class  Sampler
 Encapsulates the sampling logic. More...
 

Public Types

typedef std::vector< int > BrokenChannelContainer
 
typedef ChannelGroup::ConstIterator ChannelConstIterator
 Convenience typedef for const iterator over the contained mdet::Channel instances. More...
 

Public Member Functions

 AddIdMessage (o)
 
ChannelConstIterator ChannelsBegin () const
 Begin iterator over the contained channels. More...
 
ChannelConstIterator ChannelsEnd () const
 End iterator over the contained channels. More...
 
const BrokenChannelContainerGetBrokenChannels () const
 List of broken channels. More...
 
unsigned int GetBufferLength () const
 Number of bins of the buffer. 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...
 
ULong64_t GetMask () const
 Size of the (cyclic) external memory buffer associated to each module. More...
 
double GetMeanSampleRatePeriod () const
 Mean electronic sample rate period. More...
 
const ModuleGetModule () const
 The module to which this FrontEnd belongs. More...
 
unsigned int GetPostT1BufferLength () const
 Number of bins of the post-T1 buffer. More...
 
unsigned int GetPreT1BufferLength () const
 Number of bins of the (cyclic) pre-T1 buffer. More...
 
double GetSampleRatePeriodJitter () const
 Electronic's jitter in sample rate. More...
 
Sampler MakeSampler () const
 Create a new sampler object. 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[2]
 
static const char *const kComponentName = MHierarchyInfo::kComponentsNames[2]
 

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 MComponentGroup
< FrontEnd, Channel,
det::ParentCreator >::Type 
ChannelGroup
 Type for the set of associated mdet::Channel. More...
 

Private Member Functions

 FrontEnd (int fId, const det::VManager::IndexMap &parentMap, const Module &parent)
 Constructs the electronic front-end. More...
 
const ChannelGroupGetChannels () const
 Retrieves the group of channels. More...
 
double GetFalseRangeHiThreshold () const
 Hi end-point of the range where the voltage is taken as a false-value by the FPGA sampling process. More...
 
double GetTrueRangeLowThreshold () const
 Low end-point of the range where the voltage is taken as a true-value by the FPGA sampling proccess. More...
 
void Update (bool invalidateData, bool invalidateComponents)
 Forward to channels and to base-class. More...
 
 ~FrontEnd ()
 Destructor (!). More...
 

Private Attributes

utl::ShadowPtr
< BrokenChannelContainer
fBrokenChannels
 
ChannelGroup fChannels
 
utl::Validated< int > fExternalMemoryBufferLength
 
utl::Validated< double > fFalseRangeHiThreshold
 
utl::Validated< double > fMeanSampleRatePeriod
 
const ModulefModule
 
utl::Validated< int > fPostT1BufferLength
 
utl::Validated< int > fPreT1BufferLength
 
utl::Validated< double > fSampleRatePeriodJitter
 
utl::Validated< double > fTrueRangeLowThreshold
 

Friends

template<class A1 , class A2 , class A3 , class A4 >
class det::ComponentGroup
 See mdet::Counter. More...
 
class Module
 Friendship to allow construction. Also access to channels (GetChannels). More...
 
class utl::ShadowPtr< FrontEnd >
 Frienship to allow destruction. More...
 

Detailed Description

Electronic front-end for the modules.

Multi-channel electronic device meant to register the signal that came out from each PMT pixel.

Author
Rodolfo Federico Gamarra
Date
24 Mar 2009

Definition at line 33 of file FrontEnd.h.

Member Typedef Documentation

typedef std::vector<int> mdet::FrontEnd::BrokenChannelContainer

Definition at line 75 of file FrontEnd.h.

typedef ChannelGroup::ConstIterator mdet::FrontEnd::ChannelConstIterator

Convenience typedef for const iterator over the contained mdet::Channel instances.

Definition at line 80 of file FrontEnd.h.

Type for the set of associated mdet::Channel.

Definition at line 40 of file FrontEnd.h.

Constructor & Destructor Documentation

mdet::FrontEnd::FrontEnd ( int  fId,
const det::VManager::IndexMap parentMap,
const Module parent 
)
private

Constructs the electronic front-end.

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

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 20 of file FrontEnd.cc.

mdet::FrontEnd::~FrontEnd ( )
inlineprivate

Destructor (!).

Definition at line 229 of file FrontEnd.h.

Member Function Documentation

template<class C , class ManagerProvider >
det::DetectorComponent< C, ManagerProvider >::AddIdMessage ( )
inherited
ChannelConstIterator mdet::FrontEnd::ChannelsBegin ( ) const
inline

Begin iterator over the contained channels.

Definition at line 85 of file FrontEnd.h.

References fChannels.

Referenced by UnderGrdInjectorAG::UnderGrdInjector::Run(), and MDetectorTest::testComponentAssignment().

ChannelConstIterator mdet::FrontEnd::ChannelsEnd ( ) const
inline

End iterator over the contained channels.

Definition at line 91 of file FrontEnd.h.

References fChannels.

Referenced by UnderGrdInjectorAG::UnderGrdInjector::Run(), and MDetectorTest::testComponentAssignment().

const FrontEnd::BrokenChannelContainer & mdet::FrontEnd::GetBrokenChannels ( ) const

List of broken channels.

See Also
GetBrokenChannels()

Definition at line 95 of file FrontEnd.cc.

References fBrokenChannels.

Referenced by GetMask().

unsigned int mdet::FrontEnd::GetBufferLength ( ) const
inline
const ChannelGroup& mdet::FrontEnd::GetChannels ( ) const
inlineprivate

Retrieves the group of channels.

Definition at line 233 of file FrontEnd.h.

References fChannels.

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(), 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(), GetMeanSampleRatePeriod(), mdet::FrontEndSiPM::GetMeanSampleRatePeriod(), mdet::BackEndSiPM::GetNumberOfChannelsToGroup(), mdet::Fiber::GetNumericalAperture(), mdet::Fiber::GetOnManifoldLength(), mdet::Module::GetPhotoDetector(), mdet::FrontEndSiPM::GetPostT1BufferLength(), GetPostT1BufferLength(), mdet::ChannelSiPM::GetPreAmplifierGain(), mdet::ChannelSiPM::GetPreAmplifierTime(), mdet::FrontEndSiPM::GetPreT1BufferLength(), 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(), 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(), 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::FrontEnd::GetFalseRangeHiThreshold ( ) const
private

Hi end-point of the range where the voltage is taken as a false-value by the FPGA sampling process.

To be a false-value a voltage needs to be lower than this value.

See Also
Sample
FPGASample

Definition at line 88 of file FrontEnd.cc.

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

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
ULong64_t mdet::FrontEnd::GetMask ( ) const

Size of the (cyclic) external memory buffer associated to each module.

See Also
GetPreT1BufferLength
GetPostT1BufferLength

The working strategy is signal collecting is goes like this. On a loop the signal is collected on the PreT1-buffer; when a significant signal is detected in the tank, a T1 signal is sent to the front end from the tank. Then the PreT1-buffer is frozen and the data collection proceeds to write on the PostT1-buffer. Upon reaching the end of this second stage buffer, the complete trace (pre+post) is stored in an external cyclic memory buffer, with room for n complete (pre+post) buffers (where n is the return value of this method). For typical values, this length (of the external memory) amounts to 10 seconds of data acquisition, taking into account the typical T1 rate from the tanks. On the other side, upon detection of a T3 configuration CDAS will ask the Counter / Modules for the traces collected at (within a tolerance) the T3 time. The external memory buffer will be scanned and those detected will be sent to CDAS. As a last remark, note that the tank promotes certain T1 times to T2, whereas the front end stores only T1 and does no filtering according to T2 promotion (the actual device was built without a mechanism to retrieve T2 promotion information from the tank to the front end). What CDAS promotes to T3 are only what was formerly promoted to T2, so in this external memory buffer certain (pre+post) buffers will be stored (temporarily, recall the cyclic nature) but CDAS will never request them. Get mask of broken channels.

See Also
GetMask()

Definition at line 104 of file FrontEnd.cc.

References GetBrokenChannels().

Referenced by MDetectorTest::testBrokenChannelsAssignment().

double mdet::FrontEnd::GetMeanSampleRatePeriod ( ) const
const Module & mdet::FrontEnd::GetModule ( ) const
unsigned int mdet::FrontEnd::GetPostT1BufferLength ( ) const
unsigned int mdet::FrontEnd::GetPreT1BufferLength ( ) const
double mdet::FrontEnd::GetSampleRatePeriodJitter ( ) const

Electronic's jitter in sample rate.

It's a relative factor over the mean value.

From this value several different quantities could be derived: (i) the standard deviation of a Gaussian jitter distribution. (ii) the upper and lower limits of a Uniform jitter distribution.

See Also
MakeSampler

Definition at line 50 of file FrontEnd.cc.

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

double mdet::FrontEnd::GetTrueRangeLowThreshold ( ) const
private

Low end-point of the range where the voltage is taken as a true-value by the FPGA sampling proccess.

To be a true-value a voltage needs to be higher than this value.

See Also
Sample
FPGASample

Definition at line 81 of file FrontEnd.cc.

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

FrontEnd::Sampler mdet::FrontEnd::MakeSampler ( ) 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::FrontEnd::Update ( bool  invalidateData,
bool  invalidateComponents 
)
private

Forward to channels and to base-class.

Definition at line 169 of file FrontEnd.cc.

References fBrokenChannels, fChannels, det::DetectorComponent< C, ManagerProvider >::GetIdsMap(), and Update().

Friends And Related Function Documentation

template<class A1 , class A2 , class A3 , class A4 >
friend class det::ComponentGroup
friend

See mdet::Counter.

Definition at line 249 of file FrontEnd.h.

friend class Module
friend

Friendship to allow construction. Also access to channels (GetChannels).

Definition at line 239 of file FrontEnd.h.

friend class utl::ShadowPtr< FrontEnd >
friend

Frienship to allow destruction.

This comes from the fact that the FrontEnd is kept (in mdet::Module) within one of these.

Definition at line 246 of file FrontEnd.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<BrokenChannelContainer> mdet::FrontEnd::fBrokenChannels
mutableprivate

Definition at line 275 of file FrontEnd.h.

Referenced by GetBrokenChannels(), and Update().

ChannelGroup mdet::FrontEnd::fChannels
private

Definition at line 251 of file FrontEnd.h.

Referenced by ChannelsBegin(), ChannelsEnd(), GetChannels(), and Update().

utl::Validated<int> mdet::FrontEnd::fExternalMemoryBufferLength
mutableprivate

Definition at line 269 of file FrontEnd.h.

utl::Validated<double> mdet::FrontEnd::fFalseRangeHiThreshold
mutableprivate

Definition at line 273 of file FrontEnd.h.

Referenced by GetFalseRangeHiThreshold().

utl::Validated<double> mdet::FrontEnd::fMeanSampleRatePeriod
mutableprivate

Definition at line 255 of file FrontEnd.h.

Referenced by GetMeanSampleRatePeriod().

const Module& mdet::FrontEnd::fModule
private

Definition at line 277 of file FrontEnd.h.

Referenced by GetModule().

utl::Validated<int> mdet::FrontEnd::fPostT1BufferLength
mutableprivate

Definition at line 267 of file FrontEnd.h.

Referenced by GetPostT1BufferLength().

utl::Validated<int> mdet::FrontEnd::fPreT1BufferLength
mutableprivate

Definition at line 265 of file FrontEnd.h.

Referenced by GetPreT1BufferLength().

utl::Validated<double> mdet::FrontEnd::fSampleRatePeriodJitter
mutableprivate

Definition at line 257 of file FrontEnd.h.

Referenced by GetSampleRatePeriodJitter().

utl::Validated<double> mdet::FrontEnd::fTrueRangeLowThreshold
mutableprivate

Definition at line 271 of file FrontEnd.h.

Referenced by GetTrueRangeLowThreshold().

const char *const mdet::FrontEnd::kComponentId = MHierarchyInfo::kComponentsIds[2]
static

Definition at line 73 of file FrontEnd.h.

const char *const mdet::FrontEnd::kComponentName = MHierarchyInfo::kComponentsNames[2]
static

Definition at line 71 of file FrontEnd.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.