#include "mdet/SiPMArray.h"
Public Types | |
typedef SiPMGroup::ConstIterator | SiPMConstIterator |
Public Member Functions | |
AddIdMessage (o) | |
const SiPM & | ComputePulseDestination (const SiPM &src) 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... | |
const Module & | GetModule () const |
SiPMConstIterator | SiPMsBegin () const |
Begin iterator over the contained sipms. More... | |
SiPMConstIterator | SiPMsEnd () const |
End iterator over the contained sipms. 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[9] |
static const char *const | kComponentName = MHierarchyInfo::kComponentsNames[9] |
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 < SiPMArray, SiPM, det::ParentCreator >::Type | SiPMGroup |
Type for the set of associated mdet::SiPM. More... | |
typedef SiPMGroup::Iterator | SiPMIterator |
Non-const private alias. More... | |
Private Member Functions | |
SiPMGroup::SizeType | GetCols () const |
Retrieves the number of columns. More... | |
SiPMGroup::SizeType | GetRows () const |
Retrieves the number of rows. More... | |
const SiPMGroup & | GetSiPMs () const |
Accesses the group of sipms. More... | |
void | InitSiPMs () |
Initilization and validations related to sipms. More... | |
SiPMArray (int pId, const det::VManager::IndexMap &parentMap, const Module &parent) | |
void | Update (bool invalidateData, bool invalidateComponents) |
Perform update in this component and forward to subcomponents. More... | |
~SiPMArray () | |
Destructor (!). More... | |
Private Attributes | |
int | fFirstIdSiPMArray |
Minimum id among SiPM Array ids. More... | |
const Module & | fModule |
SiPMGroup | fSiPMs |
Friends | |
class | Module |
Friendship to allow construction. Also allows access to fSiPMs (through GetSiPMs) in function GetSiPMFor (handles component linkage). More... | |
class | utl::ShadowPtr< SiPMArray > |
Frienship to allow destruction. More... | |
This class representes the sipm array used in each module. It mainly groups the SiPMs.
The SiPM Array is allowed to be only square; in the real case the SiPM arrays are likely to be 8x8 sized.
The sipms id's are asumed to be consecutive, row-by-row starting from the upper-left corner and ending on the lower-right (fact that's actually checked on construction). With this the neighboring relations are constructed; for example (if existing) the right side neighbor is + 1 id.
Definition at line 36 of file SiPMArray.h.
typedef SiPMGroup::ConstIterator mdet::SiPMArray::SiPMConstIterator |
Definition at line 50 of file SiPMArray.h.
|
private |
Type for the set of associated mdet::SiPM.
Definition at line 43 of file SiPMArray.h.
|
private |
Non-const private alias.
Definition at line 47 of file SiPMArray.h.
|
private |
Definition at line 111 of file SiPMArray.cc.
|
inlineprivate |
Destructor (!).
Definition at line 86 of file SiPMArray.h.
|
inherited |
Referenced by mdet::PMT::GetCrossTalk(), GetRows(), mdet::PMT::GetRows(), mdet::PMT::InitPixels(), InitSiPMs(), and mdet::Module::Module().
|
private |
Retrieves the number of columns.
Definition at line 96 of file SiPMArray.cc.
|
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(), 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(), mdet::FrontEnd::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(), 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(), mdet::Channel::GetResponseTime(), mdet::FrontEnd::GetSampleRatePeriodJitter(), mdet::FrontEndSiPM::GetSampleTimeADC(), mdet::BackEndSiPM::GetSecondAdderOffset(), mdet::BackEndSiPM::GetSecondAdderPar1(), mdet::BackEndSiPM::GetSecondAdderPar2(), mdet::BackEndSiPM::GetSecondAdderPar3(), mdet::BackEndSiPM::GetSecondAdderPar4(), mdet::BackEndSiPM::GetSecondAdderPar5(), mdet::BackEndSiPM::GetSecondAdderSaturationDown(), mdet::BackEndSiPM::GetSecondAdderSaturationUp(), mdet::Channel::GetSignalShiftMean(), mdet::Channel::GetSignalShiftStdDev(), mdet::BackEndSiPM::GetSimplifiedGainHG(), mdet::BackEndSiPM::GetSimplifiedGainLG(), mdet::BackEndSiPM::GetSimplifiedTime(), mdet::Channel::GetSlewRate(), mdet::FrontEndSiPM::GetStepADC(), mdet::Channel::GetThreshold(), mdet::FrontEnd::GetTrueRangeLowThreshold(), mdet::FrontEndSiPM::GetTrueRangeLowThreshold(), and mdet::Scintillator::GetWidth().
|
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.
|
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(), Update(), mdet::FrontEnd::Update(), mdet::FrontEndSiPM::Update(), mdet::PMT::Update(), and mdet::Module::Update().
Definition at line 104 of file SiPMArray.cc.
References fModule.
|
private |
Retrieves the number of rows.
Definition at line 77 of file SiPMArray.cc.
References det::DetectorComponent< C, ManagerProvider >::AddIdMessage(), ERROR, fSiPMs, and sqrt().
Referenced by GetCols().
|
private |
Initilization and validations related to sipms.
Definition at line 121 of file SiPMArray.cc.
References det::DetectorComponent< C, ManagerProvider >::AddIdMessage(), FATAL, fFirstIdSiPMArray, fSiPMs, utl::mm, SiPMsBegin(), and SiPMsEnd().
Referenced by Update().
|
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 |
|
inline |
Begin iterator over the contained sipms.
Definition at line 59 of file SiPMArray.h.
References fSiPMs.
Referenced by InitSiPMs().
|
inline |
End iterator over the contained sipms.
Definition at line 65 of file SiPMArray.h.
References fSiPMs.
Referenced by InitSiPMs().
|
inherited |
|
private |
Perform update in this component and forward to subcomponents.
Definition at line 191 of file SiPMArray.cc.
References fSiPMs, det::DetectorComponent< C, ManagerProvider >::GetIdsMap(), InitSiPMs(), and Update().
|
friend |
Friendship to allow construction. Also allows access to fSiPMs (through GetSiPMs) in function GetSiPMFor (handles component linkage).
Definition at line 106 of file SiPMArray.h.
|
friend |
Frienship to allow destruction.
This comes from the fact that the SiPMArray is kept (in mdet::Module) within one of these.
Definition at line 113 of file SiPMArray.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.
|
private |
Minimum id among SiPM Array ids.
Definition at line 121 of file SiPMArray.h.
Referenced by InitSiPMs().
Definition at line 117 of file SiPMArray.h.
Referenced by GetModule().
|
private |
Definition at line 115 of file SiPMArray.h.
Referenced by GetCols(), GetRows(), GetSiPMs(), InitSiPMs(), SiPMsBegin(), SiPMsEnd(), and Update().
|
static |
Definition at line 54 of file SiPMArray.h.
|
static |
Definition at line 52 of file SiPMArray.h.
|
protectedinherited |
Definition at line 257 of file DetectorComponent.h.
Referenced by MdOptoElectronicSimulatorAG::MdOptoElectronicSimulator::SimulateElectronics(), and MdCounterSimulatorAG::MdCounterSimulator::SimulateElectronics().