List of all members | 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::Fiber Class Reference

Optical mdet::Fiber used to conect mdet::Scintillator to mdet::Pixel. More...

#include "mdet/Fiber.h"

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

Public Member Functions

 AddIdMessage (o)
 
double ComputeDecayDelay () const
 Computes a delay due to decay process. More...
 
unsigned int ComputeSPENumber (double x, double l, double e) const
 Computes a number of SPE given the impinging distance, the length of the track and the energy of the incoming particle. More...
 
double GetDecayDelayMean () const
 The mean value of the delay time. More...
 
double GetDecayDelayStdDev () const
 The standard deviation fo the delay time. 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
 Retrieve the parent mdet::Module. More...
 
double GetNumericalAperture () const
 The numerical aperture of the fiber. More...
 
double GetOnManifoldLength () const
 The length of the fiber along the path that joins the scintillator to its pixel on the PMT. More...
 
utl::Point GetPosition () const
 
double GetRefractionIndex () const
 The refraction (or refractive) index of the fiber. More...
 
return o str ()
 
Geometrical body-like interface.

Currently the fibers are cylinders; it was considered also the usage of square fibers and also the usage of progressive fibers (that's different radius fibers coupled together)

This methods are meant to hide the actual shape but providing the neccessary information.

See Also
mdet::Scitillator
template<class V >
VVisitShape (V &v) const
 Callback method to query shape specific properties. More...
 

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[4]
 
static const char *const kComponentName = MHierarchyInfo::kComponentsNames[4]
 

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 = "positionComponent1"
 Tag for first vector component in config. More...
 
static const std::string kComponent2Tag = "positionComponent2"
 Tag for second vector component in config. More...
 
static const std::string kComponent3Tag = "positionComponent3"
 Tag for third vector component in config. More...
 
static const std::string kCoordinateTypeTag = "coordinateType"
 
static const std::string kEulerPhiTag = "eulerPhi"
 Tag for first rotation's Euler angle in config. More...
 
static const std::string kEulerPsiTag = "eulerPsi"
 Tag for third rotation's Euler angle in config. More...
 
static const std::string kEulerThetaTag = "eulerTheta"
 Tag for second rotation's Euler angle in config. More...
 

Private Types

typedef std::string AttenuationReferenceForConfig
 Alias for a type considered within the config hierarchy, to be converted to the actual enum. More...
 

Private Member Functions

 Fiber (int fId, const det::VManager::IndexMap &parentMap, const Module &parent)
 Constructs the Fiber (obviously!). More...
 
double GetDecayTime () const
 The characteristic decay time of the fiber. More...
 
double GetOnScintillatorLength () const
 The length of the fiber along its scintillator. More...
 
double GetRadius () const
 The radius of the fiber. More...
 
utl::CoordinateSystemPtr GetReferenceCoordinateSystem () const
 The reference is the local coordinate system of mdet::Scintillator. More...
 
 ~Fiber ()
 

Private Attributes

utl::Validated< double > fAttenuationAmplitudeA
 
utl::Validated< double > fAttenuationAmplitudeASiPM
 
utl::Validated< double > fAttenuationAmplitudeB
 
utl::Validated< double > fAttenuationAmplitudeBSiPM
 
utl::Validated< double > fAttenuationLengthA
 
utl::Validated< double > fAttenuationLengthASiPM
 
utl::Validated< double > fAttenuationLengthB
 
utl::Validated< double > fAttenuationLengthBSiPM
 
utl::Validated
< AttenuationReferenceForConfig
fAttenuationReference
 
utl::Validated< double > fAttenuationReferenceEnergy
 
utl::Validated< double > fAttenuationReferenceThickness
 
utl::Validated< double > fDecayTime
 
const ModulefModule
 
utl::Validated< double > fNumericalAperture
 
utl::Validated< double > fOnManifoldLength
 
utl::Validated< double > fOnScintillatorLength
 
utl::Validated< double > fRadius
 
utl::Validated< double > fRefractionIndex
 

Friends

template<class T >
void boost::checked_delete (T *) BOOST_NOEXCEPT
 Friendship for destruction. More...
 
struct det::ComponentUpdater
 See mdet::Counter. More...
 
class det::MPositionable< Fiber >
 Frienship for GetData callback. More...
 
struct det::ParentCreator
 Friendship to allow creation (or call it construction). More...
 

Attenuation.

enum  AttenuationReference { eThickness, eEnergy }
 Kinds of possible attenuation references. More...
 
typedef
utl::ConsecutiveEnumFactory
< AttenuationReference,
eEnergy,
AttenuationReferenceTags
AttenuationReferenceCreator
 Convenience typedef for creation of AttenuatioReference enums. More...
 
static const char *const AttenuationReferenceTags []
 Tags for textual representation. More...
 
class utl::ConsecutiveEnumFactory< AttenuationReference, eEnergy, AttenuationReferenceTags >
 Provide access to the factory. More...
 
AttenuationReference GetAttenuationReference () const
 Return the type of refrence to use. More...
 
double GetAttenuationLengthA () const
 
double GetAttenuationLengthB () const
 
double GetAttenuationAmplitudeA () const
 
double GetAttenuationAmplitudeB () const
 
double GetAttenuationLengthASiPM () const
 
double GetAttenuationLengthBSiPM () const
 
double GetAttenuationAmplitudeASiPM () const
 
double GetAttenuationAmplitudeBSiPM () const
 
double GetAttenuationReferenceThickness () const
 
double GetAttenuationReferenceEnergy () const
 

Detailed Description

Optical mdet::Fiber used to conect mdet::Scintillator to mdet::Pixel.

This class represents the optical fibers that collect light from within the scintillators and take it to each of the pixels at the photo-multiplier tube.

Since the fibers are glued into the mdet::Scintillators it can be thought to make a single object joining together both. On the other hand the fibers are bodies that have a position and shape on theirs own: for instance if together that would lead, likely, to have (at least indirectly) properties like "fiberRadius" to make it clear that it refers to the radius of the fiber in opposition to that (non-existant) of the Scintillator. Aditionally, both have in common some properties like decay times, so again it would be needed to distinguish to which decay one would be talking about. Also, something like that coud be said about stations (surface tanks) and PMT: instead of being glued they are drilled; nevertheless they are separate classes. Also, having separate objects doesn't enforce a one-to-one relationship and there's also a relationship with the pixels. So it seems better to decouple the Scintillator from the Fiber and to have the fibers contained at mdet::Module level.

Author
Rodolfo Federico Gamarra
Date
08 Mar 2009

Definition at line 54 of file Fiber.h.

Member Typedef Documentation

Convenience typedef for creation of AttenuatioReference enums.

Definition at line 185 of file Fiber.h.

typedef std::string mdet::Fiber::AttenuationReferenceForConfig
private

Alias for a type considered within the config hierarchy, to be converted to the actual enum.

Definition at line 286 of file Fiber.h.

template<class Config>
typedef std::string det::MPositionable< Config >::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.

Member Enumeration Documentation

Kinds of possible attenuation references.

Enumerator
eThickness 

Take as reference a thickness to compare with the track length.

eEnergy 

Take as reference an energy to compare with the energy of the particle.

Definition at line 169 of file Fiber.h.

Constructor & Destructor Documentation

mdet::Fiber::Fiber ( int  fId,
const det::VManager::IndexMap parentMap,
const Module parent 
)
private

Constructs the Fiber (obviously!).

Parameters
fIdThe identifier to be used.
parentMapThe identifiers of the parent within the hierarchy.
parentThe 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.

See Also
mdet::MDectectorComponent::Type

Definition at line 267 of file Fiber.cc.

mdet::Fiber::~Fiber ( )
inlineprivate

Definition at line 231 of file Fiber.h.

Member Function Documentation

template<class C , class ManagerProvider >
det::DetectorComponent< C, ManagerProvider >::AddIdMessage ( )
inherited
double mdet::Fiber::ComputeDecayDelay ( ) const
unsigned int mdet::Fiber::ComputeSPENumber ( double  x,
double  l,
double  e 
) const
double mdet::Fiber::GetAttenuationAmplitudeA ( ) const
private
double mdet::Fiber::GetAttenuationAmplitudeASiPM ( ) const
private
double mdet::Fiber::GetAttenuationAmplitudeB ( ) const
private
double mdet::Fiber::GetAttenuationAmplitudeBSiPM ( ) const
private
double mdet::Fiber::GetAttenuationLengthA ( ) const
private
double mdet::Fiber::GetAttenuationLengthASiPM ( ) const
private
double mdet::Fiber::GetAttenuationLengthB ( ) const
private
double mdet::Fiber::GetAttenuationLengthBSiPM ( ) const
private
Fiber::AttenuationReference mdet::Fiber::GetAttenuationReference ( ) const
private
double mdet::Fiber::GetAttenuationReferenceEnergy ( ) const
private
double mdet::Fiber::GetAttenuationReferenceThickness ( ) const
private
template<class Config >
double det::MPositionable< Config >::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

Definition at line 304 of file MPositionable.h.

template<class Config >
double det::MPositionable< Config >::GetComponent2 ( ) const
protectedvirtualinherited

Second component of the position vector.

See Also
GetComponent1

Definition at line 313 of file MPositionable.h.

template<class Config >
double det::MPositionable< Config >::GetComponent3 ( ) const
protectedvirtualinherited

Third component of the position vector.

See Also
GetComponent1

Definition at line 317 of file MPositionable.h.

template<class Config >
MPositionable< Config >::CoordinateType det::MPositionable< Config >::GetCoordinateType ( ) const
protectedvirtualinherited

Coordinate type.

See Also
utl::Vector::CoordinateType

Definition at line 333 of file MPositionable.h.

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(), mdet::Counter::GetAssociatedTankId(), GetAttenuationAmplitudeA(), GetAttenuationAmplitudeASiPM(), GetAttenuationAmplitudeB(), GetAttenuationAmplitudeBSiPM(), GetAttenuationLengthA(), GetAttenuationLengthASiPM(), GetAttenuationLengthB(), GetAttenuationLengthBSiPM(), GetAttenuationReference(), GetAttenuationReferenceEnergy(), GetAttenuationReferenceThickness(), mdet::Module::GetBackgroundMuonsFlux(), mdet::FrontEndSiPM::GetBaseLineFluctuationHG(), mdet::FrontEndSiPM::GetBaseLineFluctuationLG(), mdet::Channel::GetDCGain(), 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(), GetNumericalAperture(), 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(), GetRadius(), 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.

double mdet::Fiber::GetDecayDelayMean ( ) const

The mean value of the delay time.

This method is provided for completeness, so as to allow the user to query the particular mean value.

For the computation of an specific value the user has to call the "Compute", which will give a value acording the actual distribution followed by the processes involved.

See Also
ComputeDecayDelay

Definition at line 128 of file Fiber.cc.

References GetDecayTime().

Referenced by GetDecayDelayStdDev().

double mdet::Fiber::GetDecayDelayStdDev ( ) const

The standard deviation fo the delay time.

See Also
GetDecayDelayMean

Definition at line 136 of file Fiber.cc.

References GetDecayDelayMean().

double mdet::Fiber::GetDecayTime ( ) const
private

The characteristic decay time of the fiber.

Definition at line 109 of file Fiber.cc.

References fDecayTime, and det::DetectorComponent< C, ManagerProvider >::GetData().

Referenced by ComputeDecayDelay(), and GetDecayDelayMean().

template<class Config >
double det::MPositionable< Config >::GetEulerPhi ( ) const
protectedvirtualinherited

First Euler angle for rotation over (original) z.

Definition at line 321 of file MPositionable.h.

Referenced by mdet::Module::GetPhi0().

template<class Config >
double det::MPositionable< Config >::GetEulerPsi ( ) const
protectedvirtualinherited

Third Euler angle for rotation over (intermediate) z.

Definition at line 329 of file MPositionable.h.

template<class Config >
double det::MPositionable< Config >::GetEulerTheta ( ) const
protectedvirtualinherited

Second Euler angle for rotation over (intermediate) x.

Definition at line 325 of file MPositionable.h.

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
template<class Config >
utl::CoordinateSystemPtr det::MPositionable< Config >::GetLocalCoordinateSystem ( ) const
inherited
const Module& mdet::Fiber::GetModule ( ) const
inline

Retrieve the parent mdet::Module.

Definition at line 144 of file Fiber.h.

References fModule.

Referenced by ComputeSPENumber(), GetOnScintillatorLength(), and GetReferenceCoordinateSystem().

double mdet::Fiber::GetNumericalAperture ( ) const

The numerical aperture of the fiber.

Definition at line 95 of file Fiber.cc.

References fRadius, and det::DetectorComponent< C, ManagerProvider >::GetData().

double mdet::Fiber::GetOnManifoldLength ( ) const

The length of the fiber along the path that joins the scintillator to its pixel on the PMT.

Note that this path isn't neccesarily straight.

The fiber is composed of two parts, one over the scintillator and a part that connects with the PMT.

Definition at line 65 of file Fiber.cc.

References fOnManifoldLength, and det::DetectorComponent< C, ManagerProvider >::GetData().

Referenced by G4StationSimulatorOG::G4StationConstruction::AssembleUMD(), G4StationSimulatorOG::G4UMDScintStripAction::ProcessHits(), and MdCounterSimulatorAG::MdCounterSimulator::SimulatePulses().

double mdet::Fiber::GetOnScintillatorLength ( ) const
private

The length of the fiber along its scintillator.

Definition at line 72 of file Fiber.cc.

References GetModule(), mdet::Module::GetScintillatorFor(), utl::s, and mdet::Scintillator::VisitShape().

Referenced by VisitShape().

template<class Config >
utl::Point det::MPositionable< Config >::GetPosition ( ) const
inherited
double mdet::Fiber::GetRadius ( ) const
private

The radius of the fiber.

Definition at line 88 of file Fiber.cc.

References fRadius, and det::DetectorComponent< C, ManagerProvider >::GetData().

Referenced by VisitShape().

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

The reference is the local coordinate system of mdet::Scintillator.

Implements det::MPositionable< Config >.

Definition at line 57 of file Fiber.cc.

References det::MPositionable< Config >::GetLocalCoordinateSystem(), GetModule(), and mdet::Module::GetScintillatorFor().

double mdet::Fiber::GetRefractionIndex ( ) const
template<class C , class ManagerProvider >
void det::DetectorComponent< C, ManagerProvider >::Register ( utl::VValidated v)
inlineprotectedinherited
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
template<class V >
V& mdet::Fiber::VisitShape ( V v) const
inline

Callback method to query shape specific properties.

Definition at line 89 of file Fiber.h.

References GetOnScintillatorLength(), and GetRadius().

Referenced by G4StationSimulatorOG::G4StationConstruction::SetUMDParameters().

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

See mdet::Counter.

Definition at line 248 of file Fiber.h.

friend class det::MPositionable< Fiber >
friend

Frienship for GetData callback.

Definition at line 235 of file Fiber.h.

friend struct det::ParentCreator
friend

Friendship to allow creation (or call it construction).

Definition at line 239 of file Fiber.h.

Provide access to the factory.

Definition at line 192 of file Fiber.h.

Member Data Documentation

const char *const mdet::Fiber::AttenuationReferenceTags
staticprivate
Initial value:
= {
"thickness",
"energy",
}

Tags for textual representation.

Definition at line 179 of file Fiber.h.

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<double> mdet::Fiber::fAttenuationAmplitudeA
mutableprivate

Definition at line 266 of file Fiber.h.

Referenced by GetAttenuationAmplitudeA().

utl::Validated<double> mdet::Fiber::fAttenuationAmplitudeASiPM
mutableprivate

Definition at line 274 of file Fiber.h.

Referenced by GetAttenuationAmplitudeASiPM().

utl::Validated<double> mdet::Fiber::fAttenuationAmplitudeB
mutableprivate

Definition at line 268 of file Fiber.h.

Referenced by GetAttenuationAmplitudeB().

utl::Validated<double> mdet::Fiber::fAttenuationAmplitudeBSiPM
mutableprivate

Definition at line 276 of file Fiber.h.

Referenced by GetAttenuationAmplitudeBSiPM().

utl::Validated<double> mdet::Fiber::fAttenuationLengthA
mutableprivate

Definition at line 262 of file Fiber.h.

Referenced by GetAttenuationLengthA().

utl::Validated<double> mdet::Fiber::fAttenuationLengthASiPM
mutableprivate

Definition at line 270 of file Fiber.h.

Referenced by GetAttenuationLengthASiPM().

utl::Validated<double> mdet::Fiber::fAttenuationLengthB
mutableprivate

Definition at line 264 of file Fiber.h.

Referenced by GetAttenuationLengthB().

utl::Validated<double> mdet::Fiber::fAttenuationLengthBSiPM
mutableprivate

Definition at line 272 of file Fiber.h.

Referenced by GetAttenuationLengthBSiPM().

utl::Validated<AttenuationReferenceForConfig> mdet::Fiber::fAttenuationReference
mutableprivate

Definition at line 288 of file Fiber.h.

Referenced by GetAttenuationReference().

utl::Validated<double> mdet::Fiber::fAttenuationReferenceEnergy
mutableprivate

Definition at line 280 of file Fiber.h.

Referenced by GetAttenuationReferenceEnergy().

utl::Validated<double> mdet::Fiber::fAttenuationReferenceThickness
mutableprivate

Definition at line 278 of file Fiber.h.

Referenced by GetAttenuationReferenceThickness().

utl::Validated<double> mdet::Fiber::fDecayTime
mutableprivate

Definition at line 260 of file Fiber.h.

Referenced by GetDecayTime().

const Module& mdet::Fiber::fModule
private

Definition at line 290 of file Fiber.h.

Referenced by GetModule().

utl::Validated<double> mdet::Fiber::fNumericalAperture
mutableprivate

Definition at line 254 of file Fiber.h.

utl::Validated<double> mdet::Fiber::fOnManifoldLength
mutableprivate

Definition at line 252 of file Fiber.h.

Referenced by GetOnManifoldLength().

utl::Validated<double> mdet::Fiber::fOnScintillatorLength
mutableprivate

Definition at line 250 of file Fiber.h.

utl::Validated<double> mdet::Fiber::fRadius
mutableprivate

Definition at line 256 of file Fiber.h.

Referenced by GetNumericalAperture(), and GetRadius().

utl::Validated<double> mdet::Fiber::fRefractionIndex
mutableprivate

Definition at line 258 of file Fiber.h.

Referenced by GetRefractionIndex().

template<class Config>
const std::string det::MPositionable< Config >::kComponent1Tag = "positionComponent1"
staticprotectedinherited

Tag for first vector component in config.

Definition at line 145 of file MPositionable.h.

template<class Config>
const std::string det::MPositionable< Config >::kComponent2Tag = "positionComponent2"
staticprotectedinherited

Tag for second vector component in config.

Definition at line 147 of file MPositionable.h.

template<class Config>
const std::string det::MPositionable< Config >::kComponent3Tag = "positionComponent3"
staticprotectedinherited

Tag for third vector component in config.

Definition at line 149 of file MPositionable.h.

const char *const mdet::Fiber::kComponentId = MHierarchyInfo::kComponentsIds[4]
static

Definition at line 62 of file Fiber.h.

const char *const mdet::Fiber::kComponentName = MHierarchyInfo::kComponentsNames[4]
static

Definition at line 60 of file Fiber.h.

template<class Config>
const std::string det::MPositionable< Config >::kCoordinateTypeTag = "coordinateType"
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.

template<class Config>
const std::string det::MPositionable< Config >::kEulerPhiTag = "eulerPhi"
staticprotectedinherited

Tag for first rotation's Euler angle in config.

Definition at line 151 of file MPositionable.h.

template<class Config>
const std::string det::MPositionable< Config >::kEulerPsiTag = "eulerPsi"
staticprotectedinherited

Tag for third rotation's Euler angle in config.

Definition at line 155 of file MPositionable.h.

template<class Config>
const std::string det::MPositionable< Config >::kEulerThetaTag = "eulerTheta"
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.