Electronic front-end for the modules. More...
#include "mdet/FrontEndSiPM.h"
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... | |
unsigned short | GetADCBaseLineFluctuationHG () const |
unsigned short | GetADCBaseLineFluctuationLG () const |
Noise injection for binary and ADC channels. More... | |
unsigned short | GetADCBaseLineOffsetHG () const |
unsigned short | GetADCBaseLineOffsetLG () const |
ADC channels offset. More... | |
unsigned short | GetADCCounts (double value) const |
const BrokenChannelContainer & | GetBrokenChannels () const |
List of broken channels. More... | |
unsigned int | GetBufferLength () const |
Number of bins of the buffer. More... | |
double | GetDelayBinaryADC () const |
int | GetId () const |
The id of this component. More... | |
const VManager::IndexMap & | GetIdsMap () const |
The id identifying this component within its detector hierarhy. More... | |
short | GetInjectDigitalNoiseBin () const |
unsigned short | GetInjectDigitalNoiseChannel () const |
unsigned short | GetInjectDigitalNoiseWidth () const |
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 Module & | GetModule () const |
The module to which this FrontEndSiPM 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 | GetSampleTimeADC () const |
ADC Sample Time and delay. 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[8] |
static const char *const | kComponentName = MHierarchyInfo::kComponentsNames[8] |
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 < FrontEndSiPM, ChannelSiPM, det::ParentCreator >::Type | ChannelGroup |
Type for the set of associated mdet::ChannelSiPM. More... | |
Private Member Functions | |
FrontEndSiPM (int fId, const det::VManager::IndexMap &parentMap, const Module &parent) | |
Constructs the electronic front-end. More... | |
double | GetBaseLineFluctuationHG () const |
double | GetBaseLineFluctuationLG () const |
const ChannelGroup & | GetChannels () const |
Retrieves the group of channels. More... | |
double | GetDelayBinaryADCMean () const |
Delay between the binary trace and the ADC traces. More... | |
double | GetDelayBinaryADCSigma () const |
double | GetDigitalBackGroundProbability () const |
Noise in digital channel. More... | |
double | GetDigitalBackGroundWidthMean () const |
double | GetDigitalBackGroundWidthStdDev () const |
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 | GetStepADC () const |
ADC resolution. 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... | |
~FrontEndSiPM () | |
Destructor (!). More... | |
Private Attributes | |
utl::Validated< double > | fBaseLineFluctuationHG |
utl::Validated< double > | fBaseLineFluctuationLG |
utl::ShadowPtr < BrokenChannelContainer > | fBrokenChannels |
ChannelGroup | fChannels |
utl::Validated< double > | fDelayBinaryADCMean |
utl::Validated< double > | fDelayBinaryADCSigma |
utl::Validated< double > | fDigitalBackGroundProbability |
utl::Validated< double > | fDigitalBackGroundWidthMean |
utl::Validated< double > | fDigitalBackGroundWidthStdDev |
utl::Validated< int > | fExternalMemoryBufferLength |
utl::Validated< double > | fFalseRangeHiThreshold |
utl::Validated< double > | fMeanSampleRatePeriod |
const Module & | fModule |
utl::Validated< int > | fPostT1BufferLength |
utl::Validated< int > | fPreT1BufferLength |
utl::Validated< double > | fSampleTimeADC |
utl::Validated< double > | fStepADC |
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< FrontEndSiPM > |
Frienship to allow destruction. More... | |
Electronic front-end for the modules.
Multi-channel electronic device meant to register the signal that came out from each SiPM.
Comment: This should not be done like this. Some abstraction is needed at FronEnd.h and there should be different extensions for PMT and SiPM. Over-riding/loading some methods should be enough. An even better approach might be to have an interface and two different branches of implementation.
Definition at line 35 of file FrontEndSiPM.h.
typedef std::vector<int> mdet::FrontEndSiPM::BrokenChannelContainer |
Definition at line 77 of file FrontEndSiPM.h.
typedef ChannelGroup::ConstIterator mdet::FrontEndSiPM::ChannelConstIterator |
Convenience typedef for const iterator over the contained mdet::Channel instances.
Definition at line 82 of file FrontEndSiPM.h.
|
private |
Type for the set of associated mdet::ChannelSiPM.
Definition at line 42 of file FrontEndSiPM.h.
|
private |
Constructs the electronic front-end.
fId | The identifier to be used. |
parentMap | The identifiers of the parent within the hierarchy. |
parent | The 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.
Definition at line 26 of file FrontEndSiPM.cc.
|
inlineprivate |
Destructor (!).
Definition at line 268 of file FrontEndSiPM.h.
|
inherited |
|
inline |
Begin iterator over the contained channels.
Definition at line 87 of file FrontEndSiPM.h.
References fChannels.
Referenced by MdCounterSimulatorAG::MdCounterSimulator::GetTriggerTimeFromSD(), and UnderGrdInjectorAG::UnderGrdInjector::Run().
|
inline |
End iterator over the contained channels.
Definition at line 93 of file FrontEndSiPM.h.
References fChannels.
Referenced by MdCounterSimulatorAG::MdCounterSimulator::GetTriggerTimeFromSD(), and UnderGrdInjectorAG::UnderGrdInjector::Run().
unsigned short mdet::FrontEndSiPM::GetADCBaseLineFluctuationHG | ( | ) | const |
Definition at line 218 of file FrontEndSiPM.cc.
References fwk::RandomEngineRegistry::eDetector, GetBaseLineFluctuationHG(), and utl::RandomEngine::GetEngine().
Referenced by MdOptoElectronicSimulatorAG::MdOptoElectronicSimulator::SampleTraceADC(), and MdCounterSimulatorAG::MdCounterSimulator::SampleTraceADC().
unsigned short mdet::FrontEndSiPM::GetADCBaseLineFluctuationLG | ( | ) | const |
Noise injection for binary and ADC channels.
Definition at line 209 of file FrontEndSiPM.cc.
References fwk::RandomEngineRegistry::eDetector, GetBaseLineFluctuationLG(), and utl::RandomEngine::GetEngine().
Referenced by MdOptoElectronicSimulatorAG::MdOptoElectronicSimulator::SampleTraceADC(), and MdCounterSimulatorAG::MdCounterSimulator::SampleTraceADC().
unsigned short mdet::FrontEndSiPM::GetADCBaseLineOffsetHG | ( | ) | const |
unsigned short mdet::FrontEndSiPM::GetADCBaseLineOffsetLG | ( | ) | const |
ADC channels offset.
unsigned short mdet::FrontEndSiPM::GetADCCounts | ( | double | value | ) | const |
Definition at line 201 of file FrontEndSiPM.cc.
References GetStepADC().
Referenced by MdOptoElectronicSimulatorAG::MdOptoElectronicSimulator::PlotIntegrator(), MdOptoElectronicSimulatorAG::MdOptoElectronicSimulator::SampleTraceADC(), and MdCounterSimulatorAG::MdCounterSimulator::SampleTraceADC().
|
private |
Definition at line 124 of file FrontEndSiPM.cc.
References fBaseLineFluctuationHG, and det::DetectorComponent< C, ManagerProvider >::GetData().
Referenced by GetADCBaseLineFluctuationHG().
|
private |
Definition at line 118 of file FrontEndSiPM.cc.
References fBaseLineFluctuationLG, and det::DetectorComponent< C, ManagerProvider >::GetData().
Referenced by GetADCBaseLineFluctuationLG().
const FrontEndSiPM::BrokenChannelContainer & mdet::FrontEndSiPM::GetBrokenChannels | ( | ) | const |
List of broken channels.
Definition at line 150 of file FrontEndSiPM.cc.
References fBrokenChannels.
Referenced by GetMask().
|
inline |
Number of bins of the buffer.
Definition at line 120 of file FrontEndSiPM.h.
References GetPostT1BufferLength(), and GetPreT1BufferLength().
Referenced by MdPatternFinderAG::MdPatternFinder::FillChannelRecData(), MdMuonEstimatorAG::MdMuonEstimator::FillChannelsOn(), MdMuonCounterAG::MdMuonCounter::FillChannelsOn(), MdMuonEstimatorAG::MdMuonEstimator::GetTraceLength(), otoa::MD2ADST::MakeModule(), MdPileUpCorrecterAG::InhibitionStrategy::operator()(), and MdPileUpCorrecterAG::MdPileUpCorrecter::Run().
|
inlineprivate |
Retrieves the group of channels.
Definition at line 272 of file FrontEndSiPM.h.
References fChannels.
|
inlineprotectedinherited |
Common utility function for configuration.
Retrieves data from the provided (via this class' template parameter) Manager instance and goes on with initialization.
d | An object of type P<T> wrapping the real of type T. |
p | Property name. The template class P must provide:
|
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(), GetBaseLineFluctuationHG(), GetBaseLineFluctuationLG(), mdet::Channel::GetDCGain(), mdet::Fiber::GetDecayTime(), mdet::Scintillator::GetDecayTime(), GetDelayBinaryADCMean(), GetDelayBinaryADCSigma(), GetDigitalBackGroundProbability(), GetDigitalBackGroundWidthMean(), 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(), 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(), GetMeanSampleRatePeriod(), mdet::BackEndSiPM::GetNumberOfChannelsToGroup(), mdet::Fiber::GetNumericalAperture(), mdet::Fiber::GetOnManifoldLength(), mdet::Module::GetPhotoDetector(), GetPostT1BufferLength(), mdet::FrontEnd::GetPostT1BufferLength(), mdet::ChannelSiPM::GetPreAmplifierGain(), mdet::ChannelSiPM::GetPreAmplifierTime(), 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(), 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(), GetStepADC(), mdet::Channel::GetThreshold(), mdet::FrontEnd::GetTrueRangeLowThreshold(), GetTrueRangeLowThreshold(), and mdet::Scintillator::GetWidth().
|
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::FrontEndSiPM::GetDelayBinaryADC | ( | ) | const |
Definition at line 191 of file FrontEndSiPM.cc.
References fwk::RandomEngineRegistry::eDetector, GetDelayBinaryADCMean(), GetDelayBinaryADCSigma(), and utl::RandomEngine::GetEngine().
Referenced by MdOptoElectronicSimulatorAG::MdOptoElectronicSimulator::ProcessPulsesIntegrator(), MdOptoElectronicSimulatorAG::MdOptoElectronicSimulator::SampleTraceADC(), and MdCounterSimulatorAG::MdCounterSimulator::SampleTraceADC().
|
private |
Delay between the binary trace and the ADC traces.
Definition at line 104 of file FrontEndSiPM.cc.
References fDelayBinaryADCMean, and det::DetectorComponent< C, ManagerProvider >::GetData().
Referenced by GetDelayBinaryADC().
|
private |
Definition at line 111 of file FrontEndSiPM.cc.
References fDelayBinaryADCSigma, and det::DetectorComponent< C, ManagerProvider >::GetData().
Referenced by GetDelayBinaryADC().
|
private |
Noise in digital channel.
Definition at line 130 of file FrontEndSiPM.cc.
References fDigitalBackGroundProbability, and det::DetectorComponent< C, ManagerProvider >::GetData().
Referenced by GetInjectDigitalNoiseBin().
|
private |
Definition at line 137 of file FrontEndSiPM.cc.
References fDigitalBackGroundWidthMean, and det::DetectorComponent< C, ManagerProvider >::GetData().
Referenced by GetInjectDigitalNoiseWidth().
|
private |
Definition at line 143 of file FrontEndSiPM.cc.
References fDigitalBackGroundWidthStdDev, and det::DetectorComponent< C, ManagerProvider >::GetData().
Referenced by GetInjectDigitalNoiseWidth().
|
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.
Definition at line 83 of file FrontEndSiPM.cc.
References fFalseRangeHiThreshold, and det::DetectorComponent< C, ManagerProvider >::GetData().
|
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().
|
inlineinherited |
The id identifying this component within its detector hierarhy.
Definition at line 111 of file DetectorComponent.h.
References det::DetectorComponent< C, ManagerProvider >::fIdsMap.
Referenced by mdet::Counter::GetModules(), mdet::Module::Module(), mdet::PMT::PMT(), mdet::SiPMArray::Update(), mdet::FrontEnd::Update(), Update(), mdet::PMT::Update(), and mdet::Module::Update().
short mdet::FrontEndSiPM::GetInjectDigitalNoiseBin | ( | ) | const |
Definition at line 238 of file FrontEndSiPM.cc.
References fwk::RandomEngineRegistry::eDetector, GetDigitalBackGroundProbability(), utl::RandomEngine::GetEngine(), GetPostT1BufferLength(), and GetPreT1BufferLength().
Referenced by MdOptoElectronicSimulatorAG::MdOptoElectronicSimulator::InjectDigitalNoise(), and MdCounterSimulatorAG::MdCounterSimulator::InjectDigitalNoise().
unsigned short mdet::FrontEndSiPM::GetInjectDigitalNoiseChannel | ( | ) | const |
Definition at line 258 of file FrontEndSiPM.cc.
References fwk::RandomEngineRegistry::eDetector, fChannels, and utl::RandomEngine::GetEngine().
Referenced by MdOptoElectronicSimulatorAG::MdOptoElectronicSimulator::InjectDigitalNoise(), and MdCounterSimulatorAG::MdCounterSimulator::InjectDigitalNoise().
unsigned short mdet::FrontEndSiPM::GetInjectDigitalNoiseWidth | ( | ) | const |
Definition at line 251 of file FrontEndSiPM.cc.
References fwk::RandomEngineRegistry::eDetector, GetDigitalBackGroundWidthMean(), GetDigitalBackGroundWidthStdDev(), and utl::RandomEngine::GetEngine().
Referenced by MdOptoElectronicSimulatorAG::MdOptoElectronicSimulator::InjectDigitalNoise(), and MdCounterSimulatorAG::MdCounterSimulator::InjectDigitalNoise().
ULong64_t mdet::FrontEndSiPM::GetMask | ( | ) | const |
Size of the (cyclic) external memory buffer associated to each module.
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.
Definition at line 159 of file FrontEndSiPM.cc.
References GetBrokenChannels().
double mdet::FrontEndSiPM::GetMeanSampleRatePeriod | ( | ) | const |
Mean electronic sample rate period.
This is the (mean) time elapsed between consecutive digital samples. Tipically in the order of ns.
Definition at line 53 of file FrontEndSiPM.cc.
References fMeanSampleRatePeriod, and det::DetectorComponent< C, ManagerProvider >::GetData().
Referenced by MdMuonEstimatorAG::MdMuonEstimator::FillChannelsOn(), MdMuonCounterAG::MdMuonCounter::FillChannelsOn(), MdMuonCounterAG::MdMuonCounter::FillModuleRecData(), MdMuonEstimatorAG::MdMuonEstimator::GetSamplingTime(), MdMuonCounterAG::MdMuonCounter::GetTraceOffset(), MdCounterSimulatorAG::MdCounterSimulator::GetTriggerTimeFromSD(), MdMuonEstimatorAG::MdMuonEstimator::LoadPatternMatchesInModuleRecData(), otoa::MD2ADST::MakeModule(), MdOptoElectronicSimulatorAG::MdOptoElectronicSimulator::PlotChannel(), MdCounterSimulatorAG::MdCounterSimulator::PlotChannel(), MdOptoElectronicSimulatorAG::MdOptoElectronicSimulator::ProcessPulses(), MdCounterSimulatorAG::MdCounterSimulator::ProcessPulses(), MdOptoElectronicSimulatorAG::MdOptoElectronicSimulator::ProcessPulsesIntegrator(), MdCounterSimulatorAG::MdCounterSimulator::ProcessPulsesIntegrator(), UnderGrdInjectorAG::UnderGrdInjector::Run(), MdMuonCounterAG::MdMuonCounter::Run(), MdOptoElectronicSimulatorAG::MdOptoElectronicSimulator::SampleTrace(), MdCounterSimulatorAG::MdCounterSimulator::SampleTrace(), MdOptoElectronicSimulatorAG::MdOptoElectronicSimulator::SampleTraceADC(), and MdCounterSimulatorAG::MdCounterSimulator::SampleTraceADC().
The module to which this FrontEndSiPM belongs.
Definition at line 46 of file FrontEndSiPM.cc.
References fModule.
Referenced by MdOptoElectronicSimulatorAG::MdOptoElectronicSimulator::PlotChannel(), MdCounterSimulatorAG::MdCounterSimulator::PlotChannel(), MdOptoElectronicSimulatorAG::MdOptoElectronicSimulator::PlotIntegrator(), MdCounterSimulatorAG::MdCounterSimulator::PlotIntegrator(), MdOptoElectronicSimulatorAG::MdOptoElectronicSimulator::SampleTraceADC(), and MdCounterSimulatorAG::MdCounterSimulator::SampleTraceADC().
unsigned int mdet::FrontEndSiPM::GetPostT1BufferLength | ( | ) | const |
Number of bins of the post-T1 buffer.
Definition at line 69 of file FrontEndSiPM.cc.
References fPostT1BufferLength, and det::DetectorComponent< C, ManagerProvider >::GetData().
Referenced by GetBufferLength(), GetInjectDigitalNoiseBin(), MdCounterSimulatorAG::MdCounterSimulator::GetTriggerTimeFromSD(), MdOptoElectronicSimulatorAG::MdOptoElectronicSimulator::ProcessPulses(), MdCounterSimulatorAG::MdCounterSimulator::ProcessPulses(), MdOptoElectronicSimulatorAG::MdOptoElectronicSimulator::ProcessPulsesIntegrator(), MdCounterSimulatorAG::MdCounterSimulator::ProcessPulsesIntegrator(), UnderGrdInjectorAG::UnderGrdInjector::Run(), MdOptoElectronicSimulatorAG::MdOptoElectronicSimulator::SampleTrace(), MdCounterSimulatorAG::MdCounterSimulator::SampleTrace(), MdOptoElectronicSimulatorAG::MdOptoElectronicSimulator::SampleTraceADC(), and MdCounterSimulatorAG::MdCounterSimulator::SampleTraceADC().
unsigned int mdet::FrontEndSiPM::GetPreT1BufferLength | ( | ) | const |
Number of bins of the (cyclic) pre-T1 buffer.
Definition at line 61 of file FrontEndSiPM.cc.
References fPreT1BufferLength, and det::DetectorComponent< C, ManagerProvider >::GetData().
Referenced by GetBufferLength(), GetInjectDigitalNoiseBin(), MdMuonCounterAG::MdMuonCounter::GetTraceOffset(), MdCounterSimulatorAG::MdCounterSimulator::GetTriggerTimeFromSD(), MdOptoElectronicSimulatorAG::MdOptoElectronicSimulator::ProcessPulses(), MdCounterSimulatorAG::MdCounterSimulator::ProcessPulses(), MdOptoElectronicSimulatorAG::MdOptoElectronicSimulator::ProcessPulsesIntegrator(), MdCounterSimulatorAG::MdCounterSimulator::ProcessPulsesIntegrator(), UnderGrdInjectorAG::UnderGrdInjector::Run(), MdOptoElectronicSimulatorAG::MdOptoElectronicSimulator::SampleTrace(), MdCounterSimulatorAG::MdCounterSimulator::SampleTrace(), MdOptoElectronicSimulatorAG::MdOptoElectronicSimulator::SampleTraceADC(), and MdCounterSimulatorAG::MdCounterSimulator::SampleTraceADC().
double mdet::FrontEndSiPM::GetSampleTimeADC | ( | ) | const |
ADC Sample Time and delay.
Definition at line 90 of file FrontEndSiPM.cc.
References fSampleTimeADC, and det::DetectorComponent< C, ManagerProvider >::GetData().
Referenced by MdOptoElectronicSimulatorAG::MdOptoElectronicSimulator::PlotIntegrator(), MdCounterSimulatorAG::MdCounterSimulator::PlotIntegrator(), MdOptoElectronicSimulatorAG::MdOptoElectronicSimulator::ProcessPulsesIntegrator(), MdCounterSimulatorAG::MdCounterSimulator::ProcessPulsesIntegrator(), MdOptoElectronicSimulatorAG::MdOptoElectronicSimulator::SampleTraceADC(), and MdCounterSimulatorAG::MdCounterSimulator::SampleTraceADC().
|
private |
ADC resolution.
Definition at line 97 of file FrontEndSiPM.cc.
References fStepADC, and det::DetectorComponent< C, ManagerProvider >::GetData().
Referenced by GetADCCounts().
|
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.
Definition at line 76 of file FrontEndSiPM.cc.
References fTrueRangeLowThreshold, and det::DetectorComponent< C, ManagerProvider >::GetData().
FrontEndSiPM::Sampler mdet::FrontEndSiPM::MakeSampler | ( | ) | const |
Create a new sampler object.
Definition at line 267 of file FrontEndSiPM.cc.
Referenced by MdOptoElectronicSimulatorAG::MdOptoElectronicSimulator::SampleTrace(), and MdCounterSimulatorAG::MdCounterSimulator::SampleTrace().
|
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 mdet::ChannelSiPM::ChannelSiPM(), mdet::Counter::Counter(), mdet::Module::Module(), and mdet::Scintillator::Scintillator().
|
protectedinherited |
|
inherited |
|
private |
Forward to channels and to base-class.
Definition at line 298 of file FrontEndSiPM.cc.
References fBrokenChannels, fChannels, det::DetectorComponent< C, ManagerProvider >::GetIdsMap(), and Update().
|
friend |
See mdet::Counter.
Definition at line 290 of file FrontEndSiPM.h.
|
friend |
Friendship to allow construction. Also access to channels (GetChannels).
Definition at line 278 of file FrontEndSiPM.h.
|
friend |
Frienship to allow destruction.
This comes from the fact that the FrontEndSiPM is kept (in mdet::Module) within one of these.
Definition at line 287 of file FrontEndSiPM.h.
|
inherited |
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!).
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.
|
inherited |
Retrieve the user custom data.
Definition at line 137 of file DetectorComponent.h.
|
protectedinherited |
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.
|
protectedinherited |
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.
|
protectedinherited |
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.
|
mutableprivate |
Definition at line 326 of file FrontEndSiPM.h.
Referenced by GetBaseLineFluctuationHG().
|
mutableprivate |
Definition at line 325 of file FrontEndSiPM.h.
Referenced by GetBaseLineFluctuationLG().
|
mutableprivate |
Definition at line 313 of file FrontEndSiPM.h.
Referenced by GetBrokenChannels(), and Update().
|
private |
Definition at line 292 of file FrontEndSiPM.h.
Referenced by ChannelsBegin(), ChannelsEnd(), GetChannels(), GetInjectDigitalNoiseChannel(), and Update().
|
mutableprivate |
Definition at line 317 of file FrontEndSiPM.h.
Referenced by GetDelayBinaryADCMean().
|
mutableprivate |
Definition at line 318 of file FrontEndSiPM.h.
Referenced by GetDelayBinaryADCSigma().
|
mutableprivate |
Definition at line 328 of file FrontEndSiPM.h.
Referenced by GetDigitalBackGroundProbability().
|
mutableprivate |
Definition at line 329 of file FrontEndSiPM.h.
Referenced by GetDigitalBackGroundWidthMean().
|
mutableprivate |
Definition at line 330 of file FrontEndSiPM.h.
Referenced by GetDigitalBackGroundWidthStdDev().
|
mutableprivate |
Definition at line 307 of file FrontEndSiPM.h.
|
mutableprivate |
Definition at line 311 of file FrontEndSiPM.h.
Referenced by GetFalseRangeHiThreshold().
|
mutableprivate |
Definition at line 294 of file FrontEndSiPM.h.
Referenced by GetMeanSampleRatePeriod().
Definition at line 332 of file FrontEndSiPM.h.
Referenced by GetModule().
|
mutableprivate |
Definition at line 305 of file FrontEndSiPM.h.
Referenced by GetPostT1BufferLength().
|
mutableprivate |
Definition at line 303 of file FrontEndSiPM.h.
Referenced by GetPreT1BufferLength().
|
mutableprivate |
Definition at line 315 of file FrontEndSiPM.h.
Referenced by GetSampleTimeADC().
|
mutableprivate |
Definition at line 316 of file FrontEndSiPM.h.
Referenced by GetStepADC().
|
mutableprivate |
Definition at line 309 of file FrontEndSiPM.h.
Referenced by GetTrueRangeLowThreshold().
|
static |
Definition at line 75 of file FrontEndSiPM.h.
|
static |
Definition at line 73 of file FrontEndSiPM.h.
|
protectedinherited |
Definition at line 257 of file DetectorComponent.h.
Referenced by MdOptoElectronicSimulatorAG::MdOptoElectronicSimulator::SimulateElectronics(), and MdCounterSimulatorAG::MdCounterSimulator::SimulateElectronics().