1 #ifndef _mdet_Counter_h
2 #define _mdet_Counter_h
4 #include <det/VManager.h>
5 #include <det/MPositionable.h>
7 #include <mdet/MComponentGroup.h>
8 #include <mdet/MDetectorComponent.h>
9 #include <mdet/Module.h>
11 #include <utl/ShadowPtr.h>
12 #include <utl/CoordinateSystemPtr.h>
108 void Update(
bool invalidateData,
bool invalidateComponents);
161 friend struct det::ComponentUpdater;
195 for (sIt sci =
mod->ScintillatorsBegin(), send =
mod->ScintillatorsEnd(); sci != send; ++sci)
205 #endif // _mdet_Counter_h
utl::CoordinateSystemPtr GetReferenceCoordinateSystem() const
The reference is the local coordinate system of the associated sdet::Station.
Defines within it the common (templated) type for muon detector hierarchy components groups...
const Module & GetModule(const int mId) const
Retrieve by id a constant module.
Detector description interface for Station-related data.
bool fModulesUpdated
Lazy update flag.
The child doesn't actually receive the information from its parent upon construction.
utl::Validated< int > fAssociatedTankId
Mixin class to be inherited from objects that have a position.
Defines within it the common (templated) type for muon detector hierarchy components.
const VManager::IndexMap & GetIdsMap() const
The id identifying this component within its detector hierarhy.
ModuleConstIterator ModulesEnd() const
Begin iterator for the Modules contained in the Counter.
bool fInvalidateComponents
boost::shared_ptr< const CoordinateTransformer > CoordinateSystemPtr
Shared pointer for coordinate systems.
unsigned int fSegmentation
bool ExistsModule(const int mId) const
Check existence.
void Update(bool invalidateData, bool invalidateComponents)
Perform update in this component and forward to subcomponents.
int GetAssociatedTankId() const
Retrieve the id of the associated surface tank.
friend void boost::checked_delete(T *) BOOST_NOEXCEPT
Friendship for destruction.
ScintillatorGroup::ConstIterator ScintillatorConstIterator
Scintillator handling.
MComponentGroup< Counter, Module, det::ParentCreator >::Type ModuleGroup
Type for the set of associated Modules.
static const char *const kComponentName
Root detector of the muon detector hierarchy.
const ModuleGroup & GetModules() const
Accesor for delayed update.
static const char *const kComponentId
ModuleConstIterator ModulesBegin() const
Begin iterator for the Modules contained in the Counter.
ModuleGroup fModules
Modules.
const sdet::Station & GetAssociatedTank() const
Retrieve the associated tank.
ModuleGroup::ConstIterator ModuleConstIterator
Convenience typedef for const iterator over the contained Module instances.
unsigned int GetSegmentation() const
Counter(int cId)
Contructs a Counter with the given id.
double mod(const double d, const double periode)
Type
The type of file that we are acutally opening.