Actual muon-sensitive objects. More...
#include "mdet/Scintillator.h"
Public Member Functions | |
AddIdMessage (o) | |
double | ComputeDecayDelay () const |
Computes a delay due to decay process. 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 Module & | GetModule () const |
Retrieve the parent mdet::Module. More... | |
utl::Point | GetPosition () const |
return o | str () |
Geometrical body-like interface. | |
The intention of these methods is to hide to the clients the actual shape of the Scintillator, while providing the necessary functions to query the geometrical characteristics of the Scintillator. For example, it was discussed to have composite scintillators, built from multiple strips. These composite ones would make a single unit as a detecting device. On the other hand the principal quantities that may be used are shape independent, like the lenght of the path of a particle on the scint manterial: it seems better, so, to hide the actual shape. In fact, the current box-shaped Scintillators aren't actually exactly box-shaped because the Scinttillators have a wedge were the mdet::Fiber is buried into. So precisely the shape of the mdet::Scintillator is obtained as substraction of the mdet::Fiber volume from that of the mdet::Scintillator. | |
bool | Contains (const utl::Point &point) const |
Answers if point lies within the Scintillator. More... | |
bool | IntersectedBy (const utl::Line &line) const |
Answers if line crosses the body of the Scintillator. More... | |
utl::Segment | ComputeIntersectionWith (const utl::Line &line) const |
Computes the intersection of line within the Scintillator. More... | |
utl::Segment | ComputeUndergroundIntersectionOf (const utl::Line &line) const |
Computes the intersection of line with the ground (until reaching the Scintillator). More... | |
double | ComputeUndergroundGrammageFor (const utl::Line &l) const |
Computes the amount of mass transversed until reaching the Scintillator. More... | |
double | GetArea () const |
Compute Scintillator's total area in square metres. More... | |
template<class V > | |
V & | VisitShape (V &v) const |
Callback method for inspecting shape-aware 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[3] |
static const char *const | kComponentName = MHierarchyInfo::kComponentsNames[3] |
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 Member Functions | |
double | GetDecayTime () const |
Characteristic decay time. More... | |
double | GetEpsilon () const |
FP comparison limit. More... | |
double | GetLocalSoilDensity () const |
Simplest density distribution: constant value. More... | |
utl::CoordinateSystemPtr | GetReferenceCoordinateSystem () const |
The reference is the local coordinate system of mdet::Module. More... | |
bool | Intersects (const utl::Plane &p, const utl::Line &l) const |
Check for intersection. More... | |
bool | IsCloseTo (double a, double b) const |
FP Comparison criteria. More... | |
Scintillator (int sId, const det::VManager::IndexMap &parentMap, const Module &parent) | |
Constructs the Scintillator (obviously!). More... | |
~Scintillator () | |
Internal part of the body-like geometrical interface. | |
template<class Container > | |
void | IntersectionHelper (Container &v, const utl::Line &l, utl::Plane(Scintillator::*ComputePlane)() const ) const |
Helper function for another specific member. More... | |
bool | InExtent (double ext, const utl::Vector &pLocal, const utl::Vector &normal) const |
Checks if the vector lies within Scintillator's extent for the given axis. More... | |
bool | OnSide (const utl::Plane &sidePlane, const utl::Line &line) const |
Indicates whether the line hits the Scintillator on the side contained in sidePlane . More... | |
utl::Plane | ComputeGroundPlane () const |
The (inifite) plane that coincides with the ground. More... | |
utl::Plane | ComputeTopPlane () const |
The plane where the top of the Scintillator lays. More... | |
utl::Plane | ComputeBottomPlane () const |
The plane where the bottom of the Scintillator lays. More... | |
utl::Plane | ComputeFrontPlane () const |
The plane where the front of the Scintillator lays. More... | |
utl::Plane | ComputeBackPlane () const |
The plane where the back of the Scintillator lays. More... | |
utl::Plane | ComputeRightPlane () const |
The plane where the right of the Scintillator lays. More... | |
utl::Plane | ComputeLeftPlane () const |
The plane where the left of the Scintillator lays. More... | |
utl::Plane | ComputePlaneHelper (double ext, double x, double y, double z) const |
Helper to construct the different planes. More... | |
double | GetLength () const |
Length of the strip (y direction in the local coordinate system). More... | |
double | GetWidth () const |
Width of the strip (x direction in the local coordinate system). More... | |
double | GetHeight () const |
Height of the strip (z direction in the local coordinate system). More... | |
Private Attributes | |
utl::Validated< double > | fDecayTime |
utl::Validated< double > | fEpsilon |
utl::Validated< double > | fHeight |
utl::Validated< double > | fLength |
utl::Validated< double > | fLocalSoilDensity |
const Module & | fModule |
utl::Validated< double > | fWidth |
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< Scintillator > |
Frienship for GetData callback. More... | |
struct | det::ParentCreator |
Friendship to allow creation (or call it construction). More... | |
Actual muon-sensitive objects.
In short, the Scintillators are made of an special plastic which has a response (light) when an impinging muon reach one of them. Actually they are sensible to negative particles. At last, they represent a body of this material, a body that's arranged within a given Module.
Definition at line 46 of file MDetector/Scintillator.h.
|
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.
|
private |
Constructs the Scintillator (obviously!).
sId | 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.
Definition at line 41 of file MDetector/Scintillator.cc.
References fDecayTime, fHeight, fLength, fLocalSoilDensity, fWidth, and det::DetectorComponent< C, ManagerProvider >::Register().
|
inlineprivate |
Definition at line 253 of file MDetector/Scintillator.h.
|
inherited |
|
private |
The plane where the back of the Scintillator lays.
Computes the (infinite) plane where the back of the Scintillator (y direction in the local coordinate system) lays in the negative side of the axis up to half of its length.
Definition at line 411 of file MDetector/Scintillator.cc.
References ComputePlaneHelper(), and GetLength().
Referenced by ComputeIntersectionWith(), and IntersectedBy().
|
private |
The plane where the bottom of the Scintillator lays.
Computes the (infinite) plane where the bottom of the Scintillator (z direction in the local coordinate system) lays in the negative side of the axis up to half of its height.
Definition at line 403 of file MDetector/Scintillator.cc.
References ComputePlaneHelper(), and GetHeight().
Referenced by ComputeIntersectionWith(), and IntersectedBy().
double mdet::Scintillator::ComputeDecayDelay | ( | ) | const |
Computes a delay due to decay process.
Definition at line 118 of file MDetector/Scintillator.cc.
References fwk::RandomEngineRegistry::eDetector, GetDecayTime(), and utl::RandomEngine::GetEngine().
Referenced by G4StationSimulatorOG::G4UMDScintStripAction::ProcessHits(), and MdCounterSimulatorAG::MdCounterSimulator::SimulatePulses().
|
private |
The plane where the front of the Scintillator lays.
Computes the (infinite) plane where the front of the Scintillator (y direction in the local coordinate system) lays up to half of its length.
Definition at line 419 of file MDetector/Scintillator.cc.
References ComputePlaneHelper(), and GetLength().
Referenced by ComputeIntersectionWith(), and IntersectedBy().
|
private |
The (inifite) plane that coincides with the ground.
Definition at line 341 of file MDetector/Scintillator.cc.
References mdet::Counter::GetAssociatedTank(), mdet::Module::GetCounter(), sdet::Station::GetLocalCoordinateSystem(), GetModule(), and TelescopeSimulatorKG::RTFunctions::Plane().
Referenced by ComputeIntersectionWith(), and ComputeUndergroundIntersectionOf().
utl::Segment mdet::Scintillator::ComputeIntersectionWith | ( | const utl::Line & | line | ) | const |
Computes the intersection of line
within the Scintillator.
Definition at line 244 of file MDetector/Scintillator.cc.
References ComputeBackPlane(), ComputeBottomPlane(), ComputeFrontPlane(), ComputeGroundPlane(), ComputeLeftPlane(), ComputeRightPlane(), ComputeTopPlane(), det::DetectorComponent< C, ManagerProvider >::d, utl::Plane::GetAnchor(), and IntersectionHelper().
Referenced by ComputeUndergroundIntersectionOf(), and MdCounterSimulatorAG::MdCounterSimulator::SimulatePulses().
|
private |
The plane where the left of the Scintillator lays.
Computes the (infinite) plane where the left of the Scintillator (x direction in the local coordinate system) lays in the negative side of the axis up to half of its width.
Definition at line 435 of file MDetector/Scintillator.cc.
References ComputePlaneHelper(), and GetWidth().
Referenced by ComputeIntersectionWith(), and IntersectedBy().
|
private |
Helper to construct the different planes.
ext | The magnitud of the extent in the direction, position of the anchor point. |
x | Factor for x direction. |
y | Idem for y. |
z | Idem for z.. |
Definition at line 443 of file MDetector/Scintillator.cc.
References RdGeoCeLDFFitter::a, det::MPositionable< Scintillator >::GetLocalCoordinateSystem(), and TelescopeSimulatorKG::RTFunctions::Plane().
Referenced by ComputeBackPlane(), ComputeBottomPlane(), ComputeFrontPlane(), ComputeLeftPlane(), ComputeRightPlane(), and ComputeTopPlane().
|
private |
The plane where the right of the Scintillator lays.
Computes the (infinite) plane where the right of the Scintillator (x direction in the local coordinate system) lays up to half of its width.
Definition at line 427 of file MDetector/Scintillator.cc.
References ComputePlaneHelper(), and GetWidth().
Referenced by ComputeIntersectionWith(), and IntersectedBy().
|
private |
The plane where the top of the Scintillator lays.
Computes the (infinite) plane where the top of the Scintillator (z direction in the local coordinate system) lays up to half of its height.
Definition at line 395 of file MDetector/Scintillator.cc.
References ComputePlaneHelper(), and GetHeight().
Referenced by ComputeIntersectionWith(), and IntersectedBy().
Computes the amount of mass transversed until reaching the Scintillator.
Given the soil density distribution, this method computes the transversed mass, from the ground to the scint.
Definition at line 332 of file MDetector/Scintillator.cc.
References ComputeUndergroundIntersectionOf(), utl::Segment::GetLength(), and GetLocalSoilDensity().
utl::Segment mdet::Scintillator::ComputeUndergroundIntersectionOf | ( | const utl::Line & | line | ) | const |
Computes the intersection of line
with the ground (until reaching the Scintillator).
Computes the segment (of the given line) that joins the ground with the Scintillator (in that order, from the ground to the Scint).
Definition at line 317 of file MDetector/Scintillator.cc.
References ComputeGroundPlane(), ComputeIntersectionWith(), utl::Segment::GetBegin(), and utl::Intersection().
Referenced by ComputeUndergroundGrammageFor().
bool mdet::Scintillator::Contains | ( | const utl::Point & | point | ) | const |
Answers if point
lies within the Scintillator.
Definition at line 148 of file MDetector/Scintillator.cc.
References GetHeight(), GetLength(), det::MPositionable< Scintillator >::GetLocalCoordinateSystem(), det::MPositionable< Scintillator >::GetPosition(), GetWidth(), and InExtent().
Referenced by OnSide().
double mdet::Scintillator::GetArea | ( | ) | const |
Compute Scintillator's total area in square metres.
Definition at line 363 of file MDetector/Scintillator.cc.
References GetLength(), and GetWidth().
Referenced by MdMuonCounterAG::MdMuonCounter::FillModuleRecData(), MdPileUpCorrecterAG::MdPileUpCorrecter::Run(), and MdMuonEstimatorAG::MdMuonEstimator::SetSegmentationAndArea().
|
protectedvirtualinherited |
First component of the position vector.
It could be x or r, according to the type determined by GetCoordinateType.
|
protectedvirtualinherited |
Second component of the position vector.
|
protectedvirtualinherited |
Third component of the position vector.
|
protectedvirtualinherited |
Coordinate type.
|
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(), 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(), 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(), 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(), GetLength(), 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 GetWidth().
|
inlineprotectedinherited |
Common utility function for configuration.
Overload without wrapping parameter: directly gets the datum as parameter. Typically invoked with T equal to a primitive type (int, double, so on).
Definition at line 232 of file DetectorComponent.h.
double mdet::Scintillator::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.
Definition at line 130 of file MDetector/Scintillator.cc.
References GetDecayTime().
Referenced by GetDecayDelayStdDev().
double mdet::Scintillator::GetDecayDelayStdDev | ( | ) | const |
The standard deviation fo the delay time.
Definition at line 139 of file MDetector/Scintillator.cc.
References GetDecayDelayMean().
|
private |
Characteristic decay time.
Definition at line 103 of file MDetector/Scintillator.cc.
References fDecayTime, and det::DetectorComponent< C, ManagerProvider >::GetData().
Referenced by ComputeDecayDelay(), and GetDecayDelayMean().
|
private |
FP comparison limit.
Definition at line 110 of file MDetector/Scintillator.cc.
References fEpsilon, and det::DetectorComponent< C, ManagerProvider >::GetData().
Referenced by IsCloseTo().
|
protectedvirtualinherited |
First Euler angle for rotation over (original) z.
|
protectedvirtualinherited |
Third Euler angle for rotation over (intermediate) z.
|
protectedvirtualinherited |
Second Euler angle for rotation over (intermediate) x.
|
private |
Height of the strip (z direction in the local coordinate system).
Definition at line 87 of file MDetector/Scintillator.cc.
References fHeight, and det::DetectorComponent< C, ManagerProvider >::GetData().
Referenced by ComputeBottomPlane(), ComputeTopPlane(), Contains(), and VisitShape().
|
inlineinherited |
The id of this component.
Definition at line 105 of file DetectorComponent.h.
References det::DetectorComponent< C, ManagerProvider >::fId.
Referenced by G4StationSimulatorOG::G4StationConstruction::AssembleUMD(), MuonCounterViewerAG::ScintBuilder::Box(), MdLDFFinderAG::Likelihood2::CalculateCandidateLikelihood(), MdLDFFinderAG::Likelihood3::CalculateCandidateLikelihood(), MdLDFFinderAG::Likelihood::CalculateCandidateLikelihood(), MdLDFFinderAG::MdLDFFinder::CalculateChi2(), MdLDFFinderAG::MdLDFFinder::FillModulesShowerPlaneDistances(), EdepSimulatorAG::PrimaryGenerator::GeneratePrimaries(), mdet::PMT::GetCrossTalk(), det::DetectorComponent< C, ManagerProvider >::Init(), MdOptoElectronicSimulatorAG::MdOptoElectronicSimulator::OptoElectronics(), MdOptoElectronicSimulatorAG::MdOptoElectronicSimulator::PlotChannel(), MdCounterSimulatorAG::MdCounterSimulator::PlotChannel(), MdOptoElectronicSimulatorAG::MdOptoElectronicSimulator::PlotIntegrator(), MdCounterSimulatorAG::MdCounterSimulator::PlotIntegrator(), MdOptoElectronicSimulatorAG::MdOptoElectronicSimulator::ProcessPulses(), MdCounterSimulatorAG::MdCounterSimulator::ProcessPulses(), MdOptoElectronicSimulatorAG::MdOptoElectronicSimulator::ProcessPulsesIntegrator(), MdCounterSimulatorAG::MdCounterSimulator::ProcessPulsesIntegrator(), MdEventSelectorAG::MdEventSelector::RejectTimeOutliers(), EdepSimulatorAG::EdepSimulator::Run(), MuonCounterViewerAG::MuonCounterViewer::Run(), MdCounterSimulatorAG::MdCounterSimulator::RunFromMEventScintillatorSimulated(), MdLDFFinderAG::MdLDFFinder::SetLdfResiduals(), MdOptoElectronicSimulatorAG::MdOptoElectronicSimulator::SimulateElectronics(), MdCounterSimulatorAG::MdCounterSimulator::SimulateElectronics(), and MdCounterSimulatorAG::MdCounterSimulator::SimulatePulses().
|
inlineinherited |
The id identifying this component within its detector hierarhy.
Definition at line 111 of file DetectorComponent.h.
References det::DetectorComponent< C, ManagerProvider >::fIdsMap.
Referenced by mdet::Counter::GetModules(), mdet::Module::Module(), mdet::PMT::PMT(), mdet::SiPMArray::Update(), mdet::FrontEnd::Update(), mdet::FrontEndSiPM::Update(), mdet::PMT::Update(), and mdet::Module::Update().
|
private |
Length of the strip (y direction in the local coordinate system).
Up to now the mdet::Scintillator have the simplest (and currently actual) possible shape. They are strips, so under currently normal conditions the following holds:
Definition at line 71 of file MDetector/Scintillator.cc.
References fLength, and det::DetectorComponent< C, ManagerProvider >::GetData().
Referenced by ComputeBackPlane(), ComputeFrontPlane(), Contains(), GetArea(), and VisitShape().
|
inherited |
Local system based on position and configured rotations.
Referenced by ComputePlaneHelper(), and Contains().
|
private |
Simplest density distribution: constant value.
Definition at line 95 of file MDetector/Scintillator.cc.
References fLocalSoilDensity, and det::DetectorComponent< C, ManagerProvider >::GetData().
Referenced by ComputeUndergroundGrammageFor().
Retrieve the parent mdet::Module.
Definition at line 63 of file MDetector/Scintillator.cc.
References fModule.
Referenced by MuonCounterViewerAG::ScintBuilder::Box(), ComputeGroundPlane(), GetReferenceCoordinateSystem(), and MdCounterSimulatorAG::MdCounterSimulator::SimulatePulses().
|
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.
Referenced by Contains().
|
privatevirtual |
The reference is the local coordinate system of mdet::Module.
The local coordinate system of the scintillator is in the center of it.
Implements det::MPositionable< Scintillator >.
Definition at line 55 of file MDetector/Scintillator.cc.
References det::MPositionable< Config >::GetLocalCoordinateSystem(), and GetModule().
|
private |
Width of the strip (x direction in the local coordinate system).
Definition at line 79 of file MDetector/Scintillator.cc.
References fWidth, and det::DetectorComponent< C, ManagerProvider >::GetData().
Referenced by ComputeLeftPlane(), ComputeRightPlane(), Contains(), GetArea(), and VisitShape().
|
private |
Checks if the vector lies within Scintillator's extent for the given axis.
ext | Extent of the Scintillator in the desidered direction. |
pLocal | Vector with origin on the local coordinate system. |
normal | Normal vector to perform the projection. |
Definition at line 376 of file MDetector/Scintillator.cc.
References RdGeoCeLDFFitter::c, and IsCloseTo().
Referenced by Contains().
Answers if line
crosses the body of the Scintillator.
Definition at line 178 of file MDetector/Scintillator.cc.
References ComputeBackPlane(), ComputeBottomPlane(), ComputeFrontPlane(), ComputeLeftPlane(), ComputeRightPlane(), ComputeTopPlane(), and OnSide().
Referenced by MdCounterSimulatorAG::MdCounterSimulator::SimulatePulses().
|
private |
Helper function for another specific member.
v | Container of for the selected planes (passed by non-const reference). |
l | Line wrt which things are computed. |
ComputePlane | Member pointer for delayed plane calculation. |
Definition at line 300 of file MDetector/Scintillator.cc.
References utl::Intersection(), OnSide(), and G4StationSimulatorOG::p.
Referenced by ComputeIntersectionWith().
|
private |
Check for intersection.
Checks whether there is a single point intersection.
Definition at line 464 of file MDetector/Scintillator.cc.
References det::DetectorComponent< C, ManagerProvider >::d, utl::Line::GetDirection(), utl::Plane::GetNormal(), and IsCloseTo().
Referenced by OnSide().
|
private |
FP Comparison criteria.
Definition at line 453 of file MDetector/Scintillator.cc.
References GetEpsilon(), and max.
Referenced by InExtent(), and Intersects().
|
private |
Indicates whether the line
hits the Scintillator on the side contained in sidePlane
.
Definition at line 217 of file MDetector/Scintillator.cc.
References Contains(), utl::Intersection(), and Intersects().
Referenced by IntersectedBy(), and IntersectionHelper().
|
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 Scintillator().
|
protectedinherited |
|
inherited |
Callback method for inspecting shape-aware properties.
v | Callback object (see details). |
v
to allow function call chaining.As stated, the intention is to hide the actual shape of the Scitillator via the previous functions. Nevertheless, it seems reasonable to give a way to inspect shape-dependant properties just in case it's neccesary and those function aren't enough.
The template argument is assumed to provide shape-aware methods, which are called with the Scintillator and those (hidden) shape-dependant properties:
For example, you can define some class like
then you can use it like
Other possibilities:
Other possibilities: The visit shape could be defined to return what would be returned by the called function. To do this (i) another template argument may be added or (ii) a traits type could be supposed to be included in V. The first choice has two drawbacks: this VisitShape method has to assume a certain cv-qualification and the calls to VisitShape have to include the return type specialized in the template args (the return type should be the first template arg, so it isn't neccesary to specify the type of the callback object). The second choice requires to define the typedef. Another, different, posssibility is to add a (templated) output argument. At last, returning the arg seemed to be the most general choice.
Definition at line 186 of file MDetector/Scintillator.h.
References GetHeight(), GetLength(), and GetWidth().
Referenced by mdet::Fiber::GetOnScintillatorLength(), MuonCounterViewerAG::MuonCounterViewer::Run(), and G4StationSimulatorOG::G4StationConstruction::SetUMDParameters().
|
friend |
Friendship for destruction.
Depends on det::ComponentGroup innards.
|
friend |
See mdet::Counter.
Definition at line 270 of file MDetector/Scintillator.h.
|
friend |
Frienship for GetData callback.
Definition at line 257 of file MDetector/Scintillator.h.
|
friend |
Friendship to allow creation (or call it construction).
Definition at line 261 of file MDetector/Scintillator.h.
|
inherited |
Returns the message that identifies this component.
To make unambiguous the call in the wrapped version.
This method is just a convenience informative method, not meant to be used for control-flow logic (please do not parse this!).
In the wrapped version, when wrapped type is itself a wrapping template, the compiler has a hard time to decide what to do. So this function was created with the logic formerly contained in the non-wrapped version.
Related to this, see http://www.gotw.ca/publications/mill17.htm.
Definition at line 125 of file DetectorComponent.h.
|
inherited |
Retrieve the user custom data.
Definition at line 137 of file DetectorComponent.h.
|
protectedinherited |
Doubly-templated variation of common utility.
Needed to be added in response to the addition of a 2nd policy parameter to utl::ShadowPtr.
Definition at line 203 of file DetectorComponent.h.
|
protectedinherited |
Specialization for utl::Validated.
To make unambiguous the call in the wrapped version.
In the wrapped version, when wrapped type is itself a wrapping template, the compiler has a hard time to decide what to do. So this function was created with the logic formerly contained in the non-wrapped version.
Related to this, see http://www.gotw.ca/publications/mill17.htm.
Definition at line 216 of file DetectorComponent.h.
|
protectedinherited |
Message that identifies the component.
Streams-out a (human-readeable) message identifying the component in the hierarchy. It's meant to be used only in messages sent to the user as a way to identify the component that isssues the message (be it an information, warning or error one).
Maybe it'd have been more idiomatic to overload operator<< but I feel that it would be misleading to "stream out" a DetectorComponent.
Definition at line 250 of file DetectorComponent.h.
|
mutableprivate |
Definition at line 417 of file MDetector/Scintillator.h.
Referenced by GetDecayTime(), and Scintillator().
|
mutableprivate |
Definition at line 419 of file MDetector/Scintillator.h.
Referenced by GetEpsilon().
|
mutableprivate |
Definition at line 413 of file MDetector/Scintillator.h.
Referenced by GetHeight(), and Scintillator().
|
mutableprivate |
Definition at line 409 of file MDetector/Scintillator.h.
Referenced by GetLength(), and Scintillator().
|
mutableprivate |
Definition at line 415 of file MDetector/Scintillator.h.
Referenced by GetLocalSoilDensity(), and Scintillator().
Definition at line 421 of file MDetector/Scintillator.h.
Referenced by GetModule().
|
mutableprivate |
Definition at line 411 of file MDetector/Scintillator.h.
Referenced by GetWidth(), and Scintillator().
|
staticprotectedinherited |
Tag for first vector component in config.
Definition at line 145 of file MPositionable.h.
|
staticprotectedinherited |
Tag for second vector component in config.
Definition at line 147 of file MPositionable.h.
|
staticprotectedinherited |
Tag for third vector component in config.
Definition at line 149 of file MPositionable.h.
|
static |
Definition at line 54 of file MDetector/Scintillator.h.
|
static |
Definition at line 52 of file MDetector/Scintillator.h.
|
staticprotectedinherited |
Tag for coordinate type selection. This tag defines the meaning of the three components.
Definition at line 143 of file MPositionable.h.
|
staticprotectedinherited |
Tag for first rotation's Euler angle in config.
Definition at line 151 of file MPositionable.h.
|
staticprotectedinherited |
Tag for third rotation's Euler angle in config.
Definition at line 155 of file MPositionable.h.
|
staticprotectedinherited |
Tag for second rotation's Euler angle in config.
Definition at line 153 of file MPositionable.h.
|
protectedinherited |
Definition at line 257 of file DetectorComponent.h.
Referenced by MdOptoElectronicSimulatorAG::MdOptoElectronicSimulator::SimulateElectronics(), and MdCounterSimulatorAG::MdCounterSimulator::SimulateElectronics().