1 #ifndef _mdet_FrontEnd_h
2 #define _mdet_FrontEnd_h
4 #include <mdet/MComponentGroup.h>
5 #include <mdet/MDetectorComponent.h>
6 #include <mdet/Channel.h>
8 #include <utl/ShadowPtr_fwd.h>
9 #include <utl/Validated.h>
14 struct ComponentUpdater;
186 void Update(
bool invalidateData,
bool invalidateComponents);
248 template<
class A1,
class A2,
class A3,
class A4>
282 #endif // _mdet_FrontEnd_h
pointer with built-in initialization, deletion, deep copying
utl::Validated< int > fExternalMemoryBufferLength
Defines within it the common (templated) type for muon detector hierarchy components groups...
int fId
Id of the component.
utl::Validated< int > fPreT1BufferLength
Sampler(const FrontEnd &fe)
Construct with the associated FrontEnd.
bool fLastSample
By now the criteria is to depend only in the last sample.
utl::ShadowPtr< BrokenChannelContainer > fBrokenChannels
void Update(bool invalidateData, bool invalidateComponents)
Forward to channels and to base-class.
Defines within it the common (templated) type for muon detector hierarchy components.
ChannelConstIterator ChannelsEnd() const
End iterator over the contained channels.
unsigned int GetPostT1BufferLength() const
Number of bins of the post-T1 buffer.
double GetFalseRangeHiThreshold() const
Hi end-point of the range where the voltage is taken as a false-value by the FPGA sampling process...
Electronic front-end for the modules.
utl::Validated< double > fFalseRangeHiThreshold
unsigned int GetPreT1BufferLength() const
Number of bins of the (cyclic) pre-T1 buffer.
const ChannelGroup & GetChannels() const
Retrieves the group of channels.
Sampler MakeSampler() const
Create a new sampler object.
ChannelGroup::ConstIterator ChannelConstIterator
Convenience typedef for const iterator over the contained mdet::Channel instances.
MComponentGroup< FrontEnd, Channel, det::ParentCreator >::Type ChannelGroup
Type for the set of associated mdet::Channel.
double GetMeanSampleRatePeriod() const
Mean electronic sample rate period.
Encapsulates the sampling logic.
bool operator()(double v)
Digitally sample the voltage.
static const char *const kComponentId
const BrokenChannelContainer & GetBrokenChannels() const
List of broken channels.
unsigned int GetBufferLength() const
Number of bins of the buffer.
utl::Validated< double > fMeanSampleRatePeriod
ULong64_t GetMask() const
Size of the (cyclic) external memory buffer associated to each module.
Base class for group of detector components.
std::map< std::string, std::string > IndexMap
utl::Validated< double > fSampleRatePeriodJitter
double GetSampleRatePeriodJitter() const
Electronic's jitter in sample rate.
ChannelConstIterator ChannelsBegin() const
Begin iterator over the contained channels.
utl::Validated< double > fTrueRangeLowThreshold
~FrontEnd()
Destructor (!).
const Module & GetModule() const
The module to which this FrontEnd belongs.
Type
The type of file that we are acutally opening.
static const char *const kComponentName
FrontEnd(int fId, const det::VManager::IndexMap &parentMap, const Module &parent)
Constructs the electronic front-end.
double GetTrueRangeLowThreshold() const
Low end-point of the range where the voltage is taken as a true-value by the FPGA sampling proccess...
utl::Validated< int > fPostT1BufferLength
const FrontEnd & fFrontEnd
std::vector< int > BrokenChannelContainer