Multiple-pixel photo-multiplier tube. More...
#include "mdet/PMT.h"
Public Types | |
typedef std::vector< double > | CrossTalkContainer |
Typedef for mdet::Pixel crosstalk container. More... | |
typedef boost::indirect_iterator < NeighborsContainer::const_iterator > | NeighborConstIterator |
Convenience typedef for iteration over neighbors. More... | |
typedef std::vector< const Pixel * > | NeighborsContainer |
Typedef for mdet::Pixel neighbor container. More... | |
typedef PixelGroup::ConstIterator | PixelConstIterator |
Convenience typedef for const iterator over the contained mdet::Pixel instances. More... | |
Public Member Functions | |
AddIdMessage (o) | |
const Pixel & | ComputePulseDestination (const Pixel &src) const |
Computes a destination pixel according to crosstalk effect. 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... | |
const Module & | GetModule () const |
The module to which this PMT belongs. More... | |
bool | IsNeighbor (const Pixel &src, const Pixel &dst) const |
Tells whether dst is one of the neighbors of src . More... | |
NeighborConstIterator | NeighborsBegin (const Pixel &p) const |
Begin iterator over neighbors of the given pixel. More... | |
NeighborConstIterator | NeighborsEnd (const Pixel &p) const |
End iterator over neighbors of the given pixel. More... | |
PixelConstIterator | PixelsBegin () const |
Begin iterator over the contained pixels. More... | |
PixelConstIterator | PixelsEnd () const |
End iterator over the contained pixels. 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 double | kCentralPixelSelfTalk = 100 |
Assumed value for central pixel self-talk. More... | |
static const char *const | kComponentId = MHierarchyInfo::kComponentsIds[5] |
static const char *const | kComponentName = MHierarchyInfo::kComponentsNames[5] |
static const unsigned int | kNumNeighborsCorner = 3 |
Number of neighbors for a pixel on the corner of the PMT's cathode. The assumed layout for the neighbors' coefficientes is as follows: More... | |
static const unsigned int | kNumNeighborsInside = 8 |
Number of neighbors for a pixel inside (ie in the middle) the PMT's cathode. More... | |
static const unsigned int | kNumNeighborsSide = 5 |
Number of neighbors for a pixel on the side of the PMT's cathode. More... | |
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< PMT, Pixel, det::ParentCreator > ::Type | PixelGroup |
Type for the set of associated mdet::Pixel. More... | |
typedef PixelGroup::Iterator | PixelIterator |
Non-const private alias. More... | |
Private Member Functions | |
PixelGroup::SizeType | GetCols () const |
Retrieves the number of columns. More... | |
double | GetCrossTalk (const Pixel &src, const Pixel &dst) const |
Returns the cross-talk coefficient for dst seen as a neighbor of src . More... | |
double | GetCrossTalkNormalizationFactor (const mdet::Pixel &pix) const |
Helper method to manage the conversion factor for cross-talk. More... | |
double | GetCrossTalkProportion (const Pixel &src, const Pixel &dst) const |
The cross-talk proportion coefficient for dst seen as a neighbor of \ src. More... | |
const PixelGroup & | GetPixels () const |
Accesses the group of pixels. More... | |
PixelGroup::SizeType | GetRows () const |
Retrieves the number of rows. More... | |
void | InitPixels () |
Initilization and validations related to pixels. More... | |
template<class Predicate > | |
NeighborsContainer::const_iterator | IsNeighbor (const Pixel &src, const Pixel &dst, const Predicate &p) const |
Neighbor finding helper function. More... | |
PMT (int pId, const det::VManager::IndexMap &parentMap, const Module &parent) | |
Constructs the tube. More... | |
void | Update (bool invalidateData, bool invalidateComponents) |
Perform update in this component and forward to subcomponents. More... | |
~PMT () | |
Destructor (!). More... | |
Private Attributes | |
int | fFirstIdPMT |
Minimum id among PMT's ids. More... | |
const Module & | fModule |
PixelGroup | fPixels |
Friends | |
class | Module |
Friendship to allow construction. Also allows access to fPixels (through GetPixels) in function GetPixelFor (handles component linkage). More... | |
class | utl::ShadowPtr< PMT > |
Frienship to allow destruction. More... | |
Multiple-pixel photo-multiplier tube.
This class representes the multi-pixel photo-multiplier tubes used whithin each module. It groups its pixels and manages the relationships between them as being part of the PMT (for example, the cross-talk matrix).
The PMT is allowed to be only square; in the real case the PMTs are likely to be 64x64 sized. The generalization to rectangular PMT (that's NxM sizes) is straightforward since the square dependant logic is buried in to the functions that calculate the size of the PMT, in fact in only of them; but would need another parameter to specify how to distribute the pixels among rows and column (for example, column width).
The pixels 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. The neighbor relationship is based on first-neighbor scope and allowed in the diagonal direction: there are 8 neighbors.
Definition at line 49 of file MDetector/PMT.h.
typedef std::vector<double> mdet::PMT::CrossTalkContainer |
Typedef for mdet::Pixel crosstalk container.
Definition at line 159 of file MDetector/PMT.h.
typedef boost::indirect_iterator<NeighborsContainer::const_iterator> mdet::PMT::NeighborConstIterator |
Convenience typedef for iteration over neighbors.
This typedef should be the same than PixelConstIterator but anothe type is needed cause of the different implementations for iteration in each case. Another possibility would have been to provide a conversion from one of the backing iterator over the other or try to use the same kind of iterator in each case. Seems better to have different types.
Definition at line 175 of file MDetector/PMT.h.
typedef std::vector<const Pixel*> mdet::PMT::NeighborsContainer |
Typedef for mdet::Pixel neighbor container.
This declaration is for use in mdet::Pixel, is not useful for client code. It could be made private and friendship given to mdet::Pixel.
Definition at line 153 of file MDetector/PMT.h.
typedef PixelGroup::ConstIterator mdet::PMT::PixelConstIterator |
Convenience typedef for const iterator over the contained mdet::Pixel instances.
Definition at line 145 of file MDetector/PMT.h.
|
private |
Type for the set of associated mdet::Pixel.
Definition at line 56 of file MDetector/PMT.h.
|
private |
Non-const private alias.
Definition at line 60 of file MDetector/PMT.h.
|
private |
Constructs the tube.
pId | 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 and part of the construction is delegated to the first super-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 153 of file MDetector/PMT.cc.
References fPixels, det::DetectorComponent< C, ManagerProvider >::GetIdsMap(), and InitPixels().
|
inlineprivate |
Destructor (!).
Definition at line 296 of file MDetector/PMT.h.
|
inherited |
Referenced by GetCrossTalk(), mdet::SiPMArray::GetRows(), GetRows(), InitPixels(), mdet::SiPMArray::InitSiPMs(), and mdet::Module::Module().
Computes a destination pixel according to crosstalk effect.
Randomizes according crosstalk configuration and then chooses a neighbor or source pixel itself. This method gives sense to the bare crosstalk coeficients, and is the best choice to be used by the clients of this class, tough the access to the raw coefficients is granted.
Definition at line 331 of file MDetector/PMT.cc.
References fwk::RandomEngineRegistry::eDetector, GetCrossTalkProportion(), utl::RandomEngine::GetEngine(), NeighborsBegin(), and NeighborsEnd().
Referenced by MdOptoElectronicSimulatorAG::MdOptoElectronicSimulator::OptoElectronics(), MdCounterSimulatorAG::MdCounterSimulator::RunFromMEventScintillatorSimulated(), and MdCounterSimulatorAG::MdCounterSimulator::SimulatePulses().
|
private |
Retrieves the number of columns.
Definition at line 137 of file MDetector/PMT.cc.
References fPixels, and GetRows().
Referenced by GetCrossTalk(), and InitPixels().
Returns the cross-talk coefficient for dst
seen as a neighbor of src
.
Returns the cross-talk coefficient for cross-talk started from Pixel src
towards Pixel dst
, that's the (mean) number of pulses went to dst
when the number arrived to src
equals one hundred. Note that is not a percentage. Note that the cross-talk matrix is defined for every pair of pixels within the PMT (may be zero in some cases).
Note that, in the most general case, the cross-talk may depend in components that are external to the PMT, like the (numerical aperture of the) optical fibers that take the light to each of the PMT's pixels. Despite that, it seems proper to define this cross-talk matrix at the PMT level. If, further on, it seems that that components of the cross-talk (that is, the ones depending on components that are external to the PMT) are better placed somewhere else, this GetCrosstalk may be kept here to mean the coeffients depending exclusively on the PMT (having the proper changes in the configuration).
Definition at line 393 of file MDetector/PMT.cc.
References det::DetectorComponent< C, ManagerProvider >::AddIdMessage(), FATAL, fFirstIdPMT, mdet::Pixel::fNeighbors, GetCols(), det::DetectorComponent< C, ManagerProvider >::GetId(), mdet::Pixel::GetNeighborsCrossTalkCorner(), mdet::Pixel::GetNeighborsCrossTalkInside(), mdet::Pixel::GetNeighborsCrossTalkSide(), IsNeighbor(), kCentralPixelSelfTalk, kNumNeighborsCorner, kNumNeighborsInside, kNumNeighborsSide, and mod().
Referenced by GetCrossTalkProportion().
|
private |
Helper method to manage the conversion factor for cross-talk.
This conversion factor allows to compute a percentual cross-talk values.
Definition at line 360 of file MDetector/PMT.cc.
References mdet::Pixel::fCrossTalkNormalizationFactor, mdet::Pixel::fNeighbors, utl::Validated< T >::Get(), mdet::Pixel::GetNeighborsCrossTalkCorner(), mdet::Pixel::GetNeighborsCrossTalkInside(), mdet::Pixel::GetNeighborsCrossTalkSide(), utl::Validated< T >::IsValid(), kCentralPixelSelfTalk, kNumNeighborsCorner, kNumNeighborsInside, and kNumNeighborsSide.
Referenced by GetCrossTalkProportion().
The cross-talk proportion coefficient for dst
seen as a neighbor of \ src.
This coefficient is a number between (inclusively) 0 and 1, indicating the proportion of pulses that belonging initially to pixel src
end in pixel dst
, which may (likely) be equal to src
.
Definition at line 385 of file MDetector/PMT.cc.
References GetCrossTalk(), and GetCrossTalkNormalizationFactor().
Referenced by ComputePulseDestination().
|
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(), 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(), PMT(), mdet::SiPMArray::Update(), mdet::FrontEnd::Update(), mdet::FrontEndSiPM::Update(), Update(), and mdet::Module::Update().
The module to which this PMT belongs.
Definition at line 146 of file MDetector/PMT.cc.
References fModule.
|
inlineprivate |
|
private |
Retrieves the number of rows.
Definition at line 117 of file MDetector/PMT.cc.
References det::DetectorComponent< C, ManagerProvider >::AddIdMessage(), ERROR, fPixels, and sqrt().
Referenced by GetCols(), and InitPixels().
|
private |
Initilization and validations related to pixels.
Definition at line 164 of file MDetector/PMT.cc.
References det::DetectorComponent< C, ManagerProvider >::AddIdMessage(), FATAL, fFirstIdPMT, fPixels, GetCols(), GetRows(), kNumNeighborsCorner, kNumNeighborsInside, kNumNeighborsSide, utl::mm, mod(), PixelsBegin(), and PixelsEnd().
Tells whether dst
is one of the neighbors of src
.
Tells if both Pixel are neighbors within the PMT. It's a simmetrical, non-reflexive relationship.
Definition at line 312 of file MDetector/PMT.cc.
References mdet::Pixel::fNeighbors.
Referenced by GetCrossTalk().
|
private |
Neighbor finding helper function.
Definition at line 322 of file MDetector/PMT.cc.
References mdet::Pixel::fNeighbors, and G4StationSimulatorOG::p.
NeighborConstIterator mdet::PMT::NeighborsBegin | ( | const Pixel & | p | ) | const |
Begin iterator over neighbors of the given pixel.
Definition at line 296 of file MDetector/PMT.cc.
References mdet::Pixel::fNeighbors.
Referenced by ComputePulseDestination().
NeighborConstIterator mdet::PMT::NeighborsEnd | ( | const Pixel & | p | ) | const |
End iterator over neighbors of the given pixel.
Definition at line 304 of file MDetector/PMT.cc.
References mdet::Pixel::fNeighbors.
Referenced by ComputePulseDestination().
|
inline |
Begin iterator over the contained pixels.
Definition at line 184 of file MDetector/PMT.h.
References fPixels.
Referenced by InitPixels(), and MDetectorTest::testComponentAssignment().
|
inline |
End iterator over the contained pixels.
Definition at line 190 of file MDetector/PMT.h.
References fPixels.
Referenced by InitPixels(), and MDetectorTest::testComponentAssignment().
|
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 |
Perform update in this component and forward to subcomponents.
Definition at line 526 of file MDetector/PMT.cc.
References fPixels, det::DetectorComponent< C, ManagerProvider >::GetIdsMap(), InitPixels(), and Update().
|
friend |
Friendship to allow construction. Also allows access to fPixels (through GetPixels) in function GetPixelFor (handles component linkage).
Definition at line 321 of file MDetector/PMT.h.
|
friend |
Frienship to allow destruction.
This comes from the fact that the PMT is kept (in mdet::Module) within one of these.
Definition at line 328 of file MDetector/PMT.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 PMT's ids.
Definition at line 336 of file MDetector/PMT.h.
Referenced by GetCrossTalk(), and InitPixels().
Definition at line 332 of file MDetector/PMT.h.
Referenced by GetModule().
|
private |
Definition at line 330 of file MDetector/PMT.h.
Referenced by GetCols(), GetPixels(), GetRows(), InitPixels(), PixelsBegin(), PixelsEnd(), PMT(), and Update().
|
static |
Assumed value for central pixel self-talk.
The general usage for cross-talk matrices is express the to-neighbors talk as the number of pusles in there when in the central pixel one hundred pulse detections were made.
Definition at line 70 of file MDetector/PMT.h.
Referenced by GetCrossTalk(), and GetCrossTalkNormalizationFactor().
|
static |
Definition at line 179 of file MDetector/PMT.h.
|
static |
Definition at line 177 of file MDetector/PMT.h.
|
static |
Number of neighbors for a pixel on the corner of the PMT's cathode. The assumed layout for the neighbors' coefficientes is as follows:
This supposed arrangement allows (if desired) to configure a single cross-talk matrix for several pixels disregarding the actual position of a single pixel (ie in which side a given pixel is on). For instance, the cross-talk coefficient for the pixel diagonally next to the X one is always the #1.
Definition at line 140 of file MDetector/PMT.h.
Referenced by GetCrossTalk(), GetCrossTalkNormalizationFactor(), and InitPixels().
|
static |
Number of neighbors for a pixel inside (ie in the middle) the PMT's cathode.
The assumed layout for the neighbors is as follows:
1 2 3 4 X 5 6 7 8
where X is the pixel whose neighbors are represented. The numbers are the position within the linearized representation of the cross-talk matrix of pixel X.
Definition at line 85 of file MDetector/PMT.h.
Referenced by GetCrossTalk(), GetCrossTalkNormalizationFactor(), and InitPixels().
|
static |
Number of neighbors for a pixel on the side of the PMT's cathode.
The assumed layout for the neighbors is as follows:
Definition at line 112 of file MDetector/PMT.h.
Referenced by GetCrossTalk(), GetCrossTalkNormalizationFactor(), and InitPixels().
|
protectedinherited |
Definition at line 257 of file DetectorComponent.h.
Referenced by MdOptoElectronicSimulatorAG::MdOptoElectronicSimulator::SimulateElectronics(), and MdCounterSimulatorAG::MdCounterSimulator::SimulateElectronics().