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

Root detector of the muon detector hierarchy. More...

#include "mdet/Counter.h"

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

Public Types

typedef ModuleGroup::ConstIterator ModuleConstIterator
 Convenience typedef for const iterator over the contained Module instances. More...
 

Public Member Functions

 AddIdMessage (o)
 
bool ExistsModule (const int mId) const
 Check existence. More...
 
double GetArea () const
 
const sdet::StationGetAssociatedTank () const
 Retrieve the associated tank. More...
 
int GetAssociatedTankId () const
 Retrieve the id of the associated surface tank. 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...
 
utl::CoordinateSystemPtr GetLocalCoordinateSystem () const
 Local system based on position and configured rotations. More...
 
const ModuleGetModule (const int mId) const
 Retrieve by id a constant module. More...
 
utl::Point GetPosition () const
 
unsigned int GetSegmentation () const
 
bool IsDense () const
 
ModuleConstIterator ModulesBegin () const
 Begin iterator for the Modules contained in the Counter. More...
 
ModuleConstIterator ModulesEnd () const
 Begin iterator for the Modules contained in the Counter. 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[0]
 
static const char *const kComponentName = MHierarchyInfo::kComponentsNames[0]
 

Protected Types

typedef std::string CoordinateType
 Simple internal typedef to emulate the actual enumeration via a type handled in the configuration mechanism. 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)
 
Specific datum accesor components.

In the most commeon situation deriving clases won't override these methods (and so the actual retrieval will be forwarded to the expected method in the Config template argument. Nevertheless they are made virtual in order to allow posible customization by subclasses. This customization could be done in principle in the Get method, basing the decision on the tag, but that would be pretty ugly.

virtual double GetComponent1 () const
 First component of the position vector. More...
 
virtual double GetComponent2 () const
 Second component of the position vector. More...
 
virtual double GetComponent3 () const
 Third component of the position vector. More...
 
virtual double GetEulerPhi () const
 First Euler angle for rotation over (original) z. More...
 
virtual double GetEulerTheta () const
 Second Euler angle for rotation over (intermediate) x. More...
 
virtual double GetEulerPsi () const
 Third Euler angle for rotation over (intermediate) z. More...
 
virtual CoordinateType GetCoordinateType () const
 Coordinate type. More...
 

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
 

Static Protected Attributes

static const std::string kComponent1Tag
 Tag for first vector component in config. More...
 
static const std::string kComponent2Tag
 Tag for second vector component in config. More...
 
static const std::string kComponent3Tag
 Tag for third vector component in config. More...
 
static const std::string kCoordinateTypeTag
 
static const std::string kEulerPhiTag
 Tag for first rotation's Euler angle in config. More...
 
static const std::string kEulerPsiTag
 Tag for third rotation's Euler angle in config. More...
 
static const std::string kEulerThetaTag
 Tag for second rotation's Euler angle in config. More...
 

Private Types

typedef MComponentGroup
< Counter, Module,
det::ParentCreator >::Type 
ModuleGroup
 Type for the set of associated Modules. More...
 

Private Member Functions

 Counter (int cId)
 Contructs a Counter with the given id. More...
 
const ModuleGroupGetModules () const
 Accesor for delayed update. More...
 
utl::CoordinateSystemPtr GetReferenceCoordinateSystem () const
 The reference is the local coordinate system of the associated sdet::Station. More...
 
void Segmentation ()
 
void Update (bool invalidateData, bool invalidateComponents)
 Perform update in this component and forward to subcomponents. More...
 
 ~Counter ()
 

Private Attributes

utl::Validated< int > fAssociatedTankId
 
bool fDense
 
bool fInvalidateComponents
 
bool fInvalidateData
 
ModuleGroup fModules
 Modules. More...
 
bool fModulesUpdated
 Lazy update flag. More...
 
unsigned int fSegmentation
 
bool fUseInvalidateFlags
 

Friends

template<class T >
void boost::checked_delete (T *) BOOST_NOEXCEPT
 Friendship for destruction. More...
 
struct det::ComponentUpdater
 Friendship for the update call. More...
 
struct det::IdOnlyCreator
 Friendship to allow creation. More...
 
class det::MPositionable< Counter >
 Frienship for GetData callback. More...
 

Detailed Description

Root detector of the muon detector hierarchy.

The Counters are logical constructions (in opposition to an actual device) that are associated to surface tanks (sdet::Station) and group together several muon detection modules (mdet::Module).

Author
Rodolfo Federico Gamarra
Date
09 Jan 2009

Definition at line 34 of file MDetector/Counter.h.

Member Typedef Documentation

typedef std::string det::MPositionable< Counter >::CoordinateType
protectedinherited

Simple internal typedef to emulate the actual enumeration via a type handled in the configuration mechanism.

Definition at line 157 of file MPositionable.h.

typedef ModuleGroup::ConstIterator mdet::Counter::ModuleConstIterator

Convenience typedef for const iterator over the contained Module instances.

Definition at line 49 of file MDetector/Counter.h.

Type for the set of associated Modules.

Definition at line 43 of file MDetector/Counter.h.

Constructor & Destructor Documentation

mdet::Counter::Counter ( int  cId)
private

Contructs a Counter with the given id.

This method is kept private creation of these objects is not meant to be performed by client code. See the related friendship declaration.

Parameters
cIdThis counter's id.

Definition at line 17 of file MDetector/Counter.cc.

References fAssociatedTankId, fDense, GetAssociatedTankId(), det::DetectorComponent< C, ManagerProvider >::Register(), and Segmentation().

mdet::Counter::~Counter ( )
inlineprivate

Definition at line 129 of file MDetector/Counter.h.

Member Function Documentation

template<class C , class ManagerProvider >
det::DetectorComponent< C, ManagerProvider >::AddIdMessage ( )
inherited
bool mdet::Counter::ExistsModule ( const int  mId) const
inline

Check existence.

Definition at line 80 of file MDetector/Counter.h.

References GetModules().

double mdet::Counter::GetArea ( ) const

Definition at line 73 of file MDetector/Counter.cc.

References mod(), ModulesBegin(), and ModulesEnd().

const sdet::Station & mdet::Counter::GetAssociatedTank ( ) const
int mdet::Counter::GetAssociatedTankId ( ) const
virtual double det::MPositionable< Counter >::GetComponent1 ( ) const
protectedvirtualinherited

First component of the position vector.

It could be x or r, according to the type determined by GetCoordinateType.

See Also
utl::Vector
virtual double det::MPositionable< Counter >::GetComponent2 ( ) const
protectedvirtualinherited

Second component of the position vector.

See Also
GetComponent1
virtual double det::MPositionable< Counter >::GetComponent3 ( ) const
protectedvirtualinherited

Third component of the position vector.

See Also
GetComponent1
virtual CoordinateType det::MPositionable< Counter >::GetCoordinateType ( ) const
protectedvirtualinherited

Coordinate type.

See Also
utl::Vector::CoordinateType
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(), 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().

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.

virtual double det::MPositionable< Counter >::GetEulerPhi ( ) const
protectedvirtualinherited

First Euler angle for rotation over (original) z.

virtual double det::MPositionable< Counter >::GetEulerPsi ( ) const
protectedvirtualinherited

Third Euler angle for rotation over (intermediate) z.

virtual double det::MPositionable< Counter >::GetEulerTheta ( ) const
protectedvirtualinherited

Second Euler angle for rotation over (intermediate) x.

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
utl::CoordinateSystemPtr det::MPositionable< Counter >::GetLocalCoordinateSystem ( ) const
inherited

Local system based on position and configured rotations.

const Module& mdet::Counter::GetModule ( const int  mId) const
inline

Retrieve by id a constant module.

Definition at line 74 of file MDetector/Counter.h.

References GetModules().

Referenced by otoa::MD2ADST::AddParticle(), MdLDFFinderAG::Likelihood2::CalculateCandidateLikelihood(), MdLDFFinderAG::Likelihood3::CalculateCandidateLikelihood(), MdLDFFinderAG::Likelihood::CalculateCandidateLikelihood(), MdLDFFinderAG::MdLDFFinder::CalculateChi2(), MdMuonCounterAG::MdMuonCounter::ComputeSignalT50(), MdLDFFinderAG::MdLDFFinder::FillModulesShowerPlaneDistances(), MdMuonEstimatorAG::MdMuonEstimator::GetSamplingTime(), MdMuonEstimatorAG::MdMuonEstimator::GetTraceLength(), MdMuonCounterAG::MdMuonCounter::GetTraceOffset(), MdOptoElectronicSimulatorAG::MdOptoElectronicSimulator::GetTriggerTimeFromSD(), MdCounterSimulatorAG::MdCounterSimulator::GetTriggerTimeFromSD(), io::Counter_ROOT::operator>>(), MdOptoElectronicSimulatorAG::MdOptoElectronicSimulator::OptoElectronics(), G4StationSimulatorOG::G4UMDScintStripAction::ProcessHits(), MdCornerClippingCorrecterAG::MdCornerClippingCorrecter::Run(), MdBiasCorrecterAG::MdBiasCorrecter::Run(), MdPileUpCorrecterAG::MdPileUpCorrecter::Run(), MdPatternFinderAG::MdPatternFinder::Run(), UnderGrdInjectorAG::UnderGrdInjector::Run(), MdMuonEstimatorAG::MdMuonEstimator::Run(), MdMuonCounterAG::MdMuonCounter::Run(), EdepSimulatorAG::EdepSimulator::Run(), MdCounterSimulatorAG::MdCounterSimulator::RunFromMEvent(), MdCounterSimulatorAG::MdCounterSimulator::RunFromMEventScintillatorSimulated(), MdLDFFinderAG::MdLDFFinder::SetLdfResiduals(), MDetectorTest::testBasic(), MDetectorTest::testBrokenChannelsAssignment(), and MDetectorTest::testComponentAssignment().

const ModuleGroup& mdet::Counter::GetModules ( ) const
inlineprivate
utl::Point det::MPositionable< Counter >::GetPosition ( ) const
inherited

This object position, based the configured components and the reference coordinate system. The return type is by-copy as of the general recommendation due to Bugzilla's report #307. Also this topic was referred by in 'Point copy vs reference, GetPosition and report #307.', see auger-offline-devel archives for January 2009.

utl::CoordinateSystemPtr mdet::Counter::GetReferenceCoordinateSystem ( ) const
privatevirtual

The reference is the local coordinate system of the associated sdet::Station.

See Also
mdet::Counter::GetLocalCoordinateSystem

Implements det::MPositionable< Counter >.

Definition at line 55 of file MDetector/Counter.cc.

References GetAssociatedTank(), and sdet::Station::GetLocalCoordinateSystem().

unsigned int mdet::Counter::GetSegmentation ( ) const
inline

Definition at line 95 of file MDetector/Counter.h.

References fSegmentation.

Referenced by MDetectorTest::testBasic().

bool mdet::Counter::IsDense ( ) const
inline
ModuleConstIterator mdet::Counter::ModulesBegin ( ) const
inline
ModuleConstIterator mdet::Counter::ModulesEnd ( ) const
inline
template<class C , class ManagerProvider >
void det::DetectorComponent< C, ManagerProvider >::Register ( utl::VValidated v)
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(), Counter(), mdet::Module::Module(), and mdet::Scintillator::Scintillator().

void mdet::Counter::Segmentation ( )
inlineprivate

Definition at line 190 of file MDetector/Counter.h.

References mod(), ModulesBegin(), and ModulesEnd().

Referenced by Counter().

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::Counter::Update ( bool  invalidateData,
bool  invalidateComponents 
)
private

Perform update in this component and forward to subcomponents.

Definition at line 62 of file MDetector/Counter.cc.

References fInvalidateComponents, fInvalidateData, fModulesUpdated, fUseInvalidateFlags, and Update().

Friends And Related Function Documentation

template<class T >
void boost::checked_delete ( T *  )
friend

Friendship for destruction.

Depends on det::ComponentGroup innards.

friend struct det::ComponentUpdater
friend

Friendship for the update call.

Definition at line 161 of file MDetector/Counter.h.

friend struct det::IdOnlyCreator
friend

Friendship to allow creation.

Definition at line 150 of file MDetector/Counter.h.

friend class det::MPositionable< Counter >
friend

Frienship for GetData callback.

Definition at line 146 of file MDetector/Counter.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::Validated<int> mdet::Counter::fAssociatedTankId
mutableprivate

Definition at line 163 of file MDetector/Counter.h.

Referenced by Counter(), and GetAssociatedTankId().

bool mdet::Counter::fDense
private

Definition at line 199 of file MDetector/Counter.h.

Referenced by Counter(), and IsDense().

bool mdet::Counter::fInvalidateComponents
private

Definition at line 177 of file MDetector/Counter.h.

Referenced by GetModules(), and Update().

bool mdet::Counter::fInvalidateData
private

Definition at line 176 of file MDetector/Counter.h.

Referenced by GetModules(), and Update().

ModuleGroup mdet::Counter::fModules
mutableprivate

Modules.

Mutable in order to be modifiable on first access to modules.

Definition at line 186 of file MDetector/Counter.h.

Referenced by GetModules().

bool mdet::Counter::fModulesUpdated
mutableprivate

Lazy update flag.

Mutable in order to be modifiable on first access to modules.

This flag comes from the desire of delay the loading of the modules (and so on) of a counter until the time they are required.

Definition at line 174 of file MDetector/Counter.h.

Referenced by GetModules(), and Update().

unsigned int mdet::Counter::fSegmentation
private

Definition at line 188 of file MDetector/Counter.h.

Referenced by GetSegmentation().

bool mdet::Counter::fUseInvalidateFlags
private

Definition at line 179 of file MDetector/Counter.h.

Referenced by GetModules(), and Update().

const std::string det::MPositionable< Counter >::kComponent1Tag
staticprotectedinherited

Tag for first vector component in config.

Definition at line 145 of file MPositionable.h.

const std::string det::MPositionable< Counter >::kComponent2Tag
staticprotectedinherited

Tag for second vector component in config.

Definition at line 147 of file MPositionable.h.

const std::string det::MPositionable< Counter >::kComponent3Tag
staticprotectedinherited

Tag for third vector component in config.

Definition at line 149 of file MPositionable.h.

const char *const mdet::Counter::kComponentId = MHierarchyInfo::kComponentsIds[0]
static

Definition at line 56 of file MDetector/Counter.h.

const char *const mdet::Counter::kComponentName = MHierarchyInfo::kComponentsNames[0]
static

Definition at line 54 of file MDetector/Counter.h.

const std::string det::MPositionable< Counter >::kCoordinateTypeTag
staticprotectedinherited

Tag for coordinate type selection. This tag defines the meaning of the three components.

See Also
utl::BasicVector::CoordinateType

Definition at line 143 of file MPositionable.h.

const std::string det::MPositionable< Counter >::kEulerPhiTag
staticprotectedinherited

Tag for first rotation's Euler angle in config.

Definition at line 151 of file MPositionable.h.

const std::string det::MPositionable< Counter >::kEulerPsiTag
staticprotectedinherited

Tag for third rotation's Euler angle in config.

Definition at line 155 of file MPositionable.h.

const std::string det::MPositionable< Counter >::kEulerThetaTag
staticprotectedinherited

Tag for second rotation's Euler angle in config.

Definition at line 153 of file MPositionable.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.