List of all members | Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Static Private Member Functions | Private Attributes | Static Private Attributes
det::XXMLManager< Info > Class Template Referenceabstract

General Manager for reading detectors descriptions in XML files. More...

#include "det/XXMLManager.h"

Inheritance diagram for det::XXMLManager< Info >:
Inheritance graph
[legend]

Classes

class  AccumulatorMatcher
 Matcher for accumulation. More...
 
struct  ConfigHandler
 Helper struct to handle MultiConfig & MonoConfig cases. More...
 
struct  ConfigHandler< false, dummy >
 Partial specialization for MonoConfiguration. More...
 
class  IdMatcher
 Matcher for specific identificator. More...
 

Public Types

typedef std::map< std::string,
std::string > 
IndexMap
 
enum  Status { eFound, eNotFound }
 Specifies success or (eventually) various possible failure modes. More...
 

Public Member Functions

virtual Status GetData (double &returnData, const std::string &componentProperty, const std::string &componentName, const IndexMap &componentIndex) const =0
 
virtual Status GetData (int &returnData, const std::string &componentProperty, const std::string &componentName, const IndexMap &componentIndex) const =0
 
virtual Status GetData (bool &, const std::string &componentProperty, const std::string &componentName, const VManager::IndexMap &) const
 
virtual Status GetData (std::string &returnData, const std::string &componentProperty, const std::string &componentName, const IndexMap &componentIndex) const =0
 
virtual Status GetData (std::vector< double > &returnData, const std::string &componentProperty, const std::string &componentName, const IndexMap &componentIndex) const =0
 
virtual Status GetData (std::vector< int > &returnData, const std::string &componentProperty, const std::string &componentName, const IndexMap &componentIndex) const =0
 
virtual Status GetData (std::vector< std::string > &returnData, const std::string &componentProperty, const std::string &componentName, const IndexMap &componentIndex) const =0
 
virtual Status GetData (std::vector< bool > &returnData, const std::string &componentProperty, const std::string &componentName, const IndexMap &componentIndex) const =0
 
virtual Status GetData (std::list< double > &returnData, const std::string &componentProperty, const std::string &componentName, const IndexMap &componentIndex) const =0
 
virtual Status GetData (std::list< int > &returnData, const std::string &componentProperty, const std::string &componentName, const IndexMap &componentIndex) const =0
 
virtual Status GetData (std::list< std::string > &returnData, const std::string &componentProperty, const std::string &componentName, const IndexMap &componentIndex) const =0
 
virtual Status GetData (std::list< std::pair< int, int >> &returnData, const std::string &componentProperty, const std::string &componentName, const IndexMap &componentIndex) const =0
 
virtual Status GetData (utl::TabulatedFunction &returnData, const std::string &componentProperty, const std::string &componentName, const IndexMap &componentIndex) const =0
 
virtual Status GetData (std::map< int, utl::TabulatedFunction > &returnData, const std::string &componentProperty, const std::string &componentName, const IndexMap &componentIndex) const =0
 
virtual Status GetData (utl::TabulatedFunctionComplexLgAmpPhase &returnData, const std::string &componentProperty, const std::string &componentName, const IndexMap &componentIndex) const =0
 
virtual Status GetData (std::map< std::string, double > &returnData, const std::string &componentProperty, const std::string &componentName, const IndexMap &componentIndex) const =0
 
virtual Status GetData (std::vector< std::vector< int >> &, const std::string &componentProperty, const std::string &componentName, const VManager::IndexMap &) const
 
virtual Status GetData (std::map< unsigned int, int > &, const std::string &componentProperty, const std::string &componentName, const VManager::IndexMap &) const
 
Status GetData (Handle &returnData, const std::string &component, const std::string &property, const IndexMap &index=IndexMap()) const
 new data accessor More...
 
const std::string & GetName () const
 
virtual void Init (const std::string &configLink)
 Manager Initialization. configLink is the CentralConfig hook for the configuration file. More...
 
bool IsInitialized () const
 
void SetName (const std::string &name)
 
void SetReportingErrors (const bool flag=true)
 Generic data accessors. More...
 
 VMANAGER_GETDATA_CALL (GetDataInternal, double)
 
 VMANAGER_GETDATA_CALL (GetDataInternal, int)
 
 VMANAGER_GETDATA_CALL (GetDataInternal, std::string)
 
 VMANAGER_GETDATA_CALL (GetDataInternal, std::list< int >)
 
 VMANAGER_GETDATA_CALL (GetDataInternal, std::vector< double >)
 
 VMANAGER_GETDATA_CALL (GetDataInternal, std::vector< int >)
 
 VMANAGER_GETDATA_CALL (GetDataInternal, utl::TabulatedFunction)
 
 VMANAGER_GETDATA_DENIED (std::vector< std::string >)
 
 VMANAGER_GETDATA_DENIED (std::list< double >)
 
 VMANAGER_GETDATA_DENIED (std::list< std::string >)
 
 VMANAGER_GETDATA_DENIED (std::list< std::pair< int, int > >)
 
 VMANAGER_GETDATA_DENIED (std::map< int, utl::TabulatedFunction >)
 
 VMANAGER_GETDATA_DENIED (std::map< std::string, double >)
 
 VMANAGER_GETDATA_DENIED (std::vector< std::vector< int > >)
 
 VMANAGER_GETDATA_DENIED (std::vector< bool >)
 
 XXMLManager ()
 
virtual ~XXMLManager ()
 

Static Public Member Functions

template<typename T >
static T FindComponent (const std::string &componentName, const IndexMap &componentIndex)
 
template<typename T , typename U >
static T FindComponent (const std::string &componentName, const U &defaultValue, const IndexMap &componentIndex)
 
static std::string QueryInfoMessage (const Handle &returnData, const std::string &component)
 
static std::string QueryInfoMessage (const Handle &returnData, const std::string &component, const std::string &property, const IndexMap &index)
 
static std::string QueryInfoMessage (const std::string &componentProperty, const std::string &componentName)
 
static std::string QueryInfoMessage (const std::string &componentProperty, const std::string &componentName, const IndexMap &componentIndex)
 

Protected Member Functions

template<typename T >
void AddAvailability (const std::string &component)
 
void FindConfig (const std::string &configLink)
 Locate the configuration file in CentralConfig and make a Reader for it. More...
 
bool IsReportingErrors () const
 
std::string NotImplementedMessage (const std::string &type, const std::string &componentProperty, const std::string &componentName) const
 

Protected Attributes

std::set< std::string > fAvailableComponents
 
utl::Branch fBranch
 
bool fIsInitialized = false
 
bool fReportingErrors = false
 

Private Member Functions

utl::Branch FindModelBranch (const utl::Branch &componentModels, const utl::Branch &compBranch, const std::string &name) const
 Helper function which retrieves the data branch that corresponds to the models specified in componentModels. More...
 
template<typename T , std::size_t N>
utl::Branch FindRoot (const T(&path)[N]) const
 Helper function from transversal from the configured branch until the desired roots. More...
 
template<typename T >
det::VManager::Status GetDataInternal (T &t, const std::string &prop, const std::string &name, const det::VManager::IndexMap &m) const
 Common template method for all types. More...
 
template<typename T >
det::VManager::Status GetDataInternal (const utl::Branch &topB, T &t, const std::string &prop, const std::string &name) const
 Overloaded version for the case when data is required without attribute information in the index map. More...
 
template<typename T >
det::VManager::Status GetDataInternal (const utl::Branch &topB, std::list< T > &t, const std::string &componentName, const std::string &name) const
 Overloaded version for the case when data is required without attribute information in the index map. More...
 
 if (b &&i==N)
 
void Initialize ()
 Some inits for the objects of this class, apart from those from VManager. More...
 

Static Private Member Functions

template<class Matcher >
static utl::Branch FindMatchingBranch (const utl::Branch &parent, const std::string &compName, Matcher &matcher, bool isReportingErrors)
 Finds the matching branch among parent according to id. More...
 

Private Attributes

 b = b.GetChild(path[i])
 
return false
 
unsigned int i = 1
 

Static Private Attributes

template<typename T , std::size_t N>
static bool
 Helper to complete the full-path look-up. More...
 

Detailed Description

template<class Info>
class det::XXMLManager< Info >

General Manager for reading detectors descriptions in XML files.

The template argument is supposed to have the following static fields:

  1. First without attributes (so as to be the single root element).
  2. Then, inside, with an attribute map having kIdAtt equals to the current configuration number. If none is found, then the look-up falls back to look for the one with a previous id (this gives some flexibility, and allows avoiding some repetitions). This may happen for data or model configuration.

When false, no attributes are taken into account and the root tag is assumed to be directly the branch configured for this manager (be it data or model).

Note that typically (due to XML constraints) the first element in both path is the same.

The configuration identifiers are whole numbers, which start in 1 and are incremented with the NextConfiguration method.

For example, say kDataRootPath[0] is "Config" and kIdAtt is "id", when true you'll have something like:

* <Config>
* <Config id="1">
*   <!-- 1st full Detector configuration underneath. -->
* </Config>
* <Config id="2">
*   <!-- 2nd full Detector configuration underneath. -->
* </Config>
* </Config>
*

and when false something like

* <Config>
*   <!-- Unique full Detector configuration underneath. -->
* </Config>
*

At last, when kAllowMultiConfig is true this class will derive publicly from det::detail::MultiConfigBase and when false from det::detail::MonoConfigBase.

The arrays define a 'partial order' indicating the hierarchy of components that this manager is intended to configure. That means that the attribute map is scanned in the order specified by these arrays, if for some kComponentIds[i] the is no value in the map that component is ignored. If there's one, then the current (being transversed) XML branch is scanned for a node named kComponentNames[i] with an attribute kIdAtt having the value as defined within the attribute map.

This class could be used to derive from it or as a simply typedef, after proper template-argument instantiation.

In all cases the length of the arrays is calculated with a template function that introspects the length of the array. As of the requirements to have at least one element in the arrays, it's ISO-C++ illegal to have zero-sized arrays. With the -pedantic option in g++ you can get (depending the particular usage): error: zero-size array ‘empty’ error: ISO C++ forbids zero-size array See ISO/IEC 14882 8.3.4(1) "Arrays": "In the declaration T D where D has the form D1 [constant-expresion_{opt}] ... If the constant-expresion is present, it shall be an integral constant expresion and its value shall be greater than zero."

Regarding the workings associated to the flag kAllowMultiConfig some alternatives had been considered:

Regarding the initialization of templates and what can be used as argument see C++ Templates: The Complete Guide By David Vandevoorde, Nicolai M. Josuttis In particular the sections: 8.3.3 Nontype Arguments 4.3 Restrictions for Nontype Template Parameters

Author
Rodolfo Federico Gamarra
Date
17 Dec 2008

Definition at line 182 of file XXMLManager.h.

Member Typedef Documentation

typedef std::map<std::string, std::string> det::VManager::IndexMap
inherited

Definition at line 133 of file VManager.h.

Member Enumeration Documentation

enum det::VManager::Status
inherited

Specifies success or (eventually) various possible failure modes.

Various failure modes to be specified (for example, failure to connect to db, faiure to find db record, failure to find table name, etc

Enumerator
eFound 
eNotFound 

Definition at line 127 of file VManager.h.

Constructor & Destructor Documentation

template<class Info >
det::XXMLManager< Info >::XXMLManager ( )
inline

Definition at line 190 of file XXMLManager.h.

References det::XXMLManager< Info >::Initialize().

template<class Info >
virtual det::XXMLManager< Info >::~XXMLManager ( )
inlinevirtual

Definition at line 191 of file XXMLManager.h.

Member Function Documentation

template<typename T >
void det::VManager::AddAvailability ( const std::string &  component)
inlineprotectedinherited

Definition at line 347 of file VManager.h.

template<typename T >
static T det::VManager::FindComponent ( const std::string &  componentName,
const IndexMap componentIndex 
)
inlinestaticinherited

Definition at line 307 of file VManager.h.

References ERROR.

template<typename T , typename U >
static T det::VManager::FindComponent ( const std::string &  componentName,
const U defaultValue,
const IndexMap componentIndex 
)
inlinestaticinherited

Definition at line 322 of file VManager.h.

void det::VManager::FindConfig ( const std::string &  configLink)
protectedinherited

Locate the configuration file in CentralConfig and make a Reader for it.

Definition at line 25 of file VManager.cc.

References ERROR, and WARNING.

template<class Info >
template<class Matcher >
utl::Branch det::XXMLManager< Info >::FindMatchingBranch ( const utl::Branch parent,
const std::string &  compName,
Matcher &  matcher,
bool  isReportingErrors 
)
staticprivate

Finds the matching branch among parent according to id.

Returns
The matching one of the null-branch.
Todo:
This can be policied away. The double functionality should be polished a little to be refactor a function.

Definition at line 626 of file XXMLManager.h.

References utl::Branch::GetFirstChild(), utl::Branch::GetNextSibling(), det::XXMLManager< Info >::i, is(), and WARNING.

Referenced by det::XXMLManager< Info >::GetDataInternal(), and det::if().

template<class Info >
utl::Branch det::XXMLManager< Info >::FindModelBranch ( const utl::Branch componentModels,
const utl::Branch compBranch,
const std::string &  name 
) const
private

Helper function which retrieves the data branch that corresponds to the models specified in componentModels.

Parameters
componentModelsThe branch with all the models that apply to the component.
compBranchThe branch for the specific component.
nameThe name of the component.
Todo:
This may be put in a policy.

Definition at line 785 of file XXMLManager.h.

References RdGeoCeLDFFitter::a, det::XXMLManager< Info >::FindRoot(), utl::Branch::GetAttributes(), utl::Branch::GetChild(), utl::Branch::GetData(), utl::Branch::GetFirstChild(), utl::Branch::GetNextSibling(), det::VManager::IsReportingErrors(), and WARNING.

Referenced by det::if().

template<class Info >
template<typename T , std::size_t N>
utl::Branch det::XXMLManager< Info >::FindRoot ( const T(&)  path[N]) const
private

Helper function from transversal from the configured branch until the desired roots.

Parameters
pathThe path of tags to be searched.

XXX Of course the path could be given as a template parameter instead.

Definition at line 579 of file XXMLManager.h.

References det::XXMLManager< Info >::b, det::VManager::fBranch, utl::Branch::GetName(), result, and WARNING.

Referenced by det::XXMLManager< Info >::FindModelBranch().

virtual Status det::VManager::GetData ( double &  returnData,
const std::string &  componentProperty,
const std::string &  componentName,
const IndexMap componentIndex 
) const
pure virtualinherited

Implemented in det::ManagerRegister, fdet::FdUpTimeFileManager, fdet::FdUpTimeSQLManager, and fwk::TestSQLManager.

Referenced by atm::AerosolDB::AerosolDB(), atm::MolecularZone::CacheLayers(), fdet::Telescope::CachePixelCloudData(), atm::VZone::CacheSlices(), atm::AerosolDB::CacheZones(), atm::LidarDB::CacheZones(), atm::MolecularDB::CacheZones(), cdet::CDetector::FetchStationGroups(), atm::GOESDB::GetAllCloudProbabilities(), rdet::AntennaType::GetAntennaData(), fdet::Camera::GetCameraChannelData(), fdet::Camera::GetCameraData(), fdet::Camera::GetCameraDataDiaphragm(), fdet::Camera::GetCameraPixelData(), fdet::Channel::GetChannelData(), rdet::Channel::GetChannelData(), atm::LidarZone::GetCloudData(), fdet::Corrector::GetCorrectorData(), rdet::RDetector::GetDetectorData(), fdet::Diaphragm::GetDiaphragmData(), fdet::Eye::GetEyeData(), fdet::FDetector::GetFDetectorData(), fdet::Filter::GetFilterData(), fdet::FDetector::GetFullEyeList(), rdet::RDetector::GetFullStationList(), cdet::CDetector::GetFullStationList(), atm::VZoneSlice::GetLambdaSliceData(), atm::MolecularLayer::GetLayerData(), fdet::Mirror::GetMirrorData(), fdet::MirrorSegment::GetMirrorSegmentData(), fdet::Pixel::GetPixelData(), fdet::Pixel::GetPixelDataDiaphragm(), cdet::Station::GetRPCData(), sdet::Scintillator::GetScintillatorData(), atm::VZoneSlice::GetSliceData(), rdet::RSimulationStationListManager::GetSourceType(), cdet::CDetector::GetStation(), rdet::Station::GetStationData(), cdet::Station::GetStationData(), fdet::Telescope::GetTelescopeData(), atm::GOESDB::HasData(), atm::LidarDB::LidarDB(), atm::LidarZone::LidarZone(), atm::MolecularDB::MolecularDB(), atm::MolecularZone::MolecularZone(), rdet::Station::SetListOfChannelIds(), and det::ComponentGroup< P, C, Creator, ManagerProvider >::Update().

virtual Status det::VManager::GetData ( int &  returnData,
const std::string &  componentProperty,
const std::string &  componentName,
const IndexMap componentIndex 
) const
pure virtualinherited
virtual Status det::VManager::GetData ( bool &  ,
const std::string &  componentProperty,
const std::string &  componentName,
const VManager::IndexMap  
) const
inlinevirtualinherited

Definition at line 241 of file VManager.h.

virtual Status det::VManager::GetData ( std::string &  returnData,
const std::string &  componentProperty,
const std::string &  componentName,
const IndexMap componentIndex 
) const
pure virtualinherited
virtual Status det::VManager::GetData ( std::vector< double > &  returnData,
const std::string &  componentProperty,
const std::string &  componentName,
const IndexMap componentIndex 
) const
pure virtualinherited
virtual Status det::VManager::GetData ( std::vector< int > &  returnData,
const std::string &  componentProperty,
const std::string &  componentName,
const IndexMap componentIndex 
) const
pure virtualinherited
virtual Status det::VManager::GetData ( std::vector< std::string > &  returnData,
const std::string &  componentProperty,
const std::string &  componentName,
const IndexMap componentIndex 
) const
pure virtualinherited
virtual Status det::VManager::GetData ( std::vector< bool > &  returnData,
const std::string &  componentProperty,
const std::string &  componentName,
const IndexMap componentIndex 
) const
pure virtualinherited
virtual Status det::VManager::GetData ( std::list< double > &  returnData,
const std::string &  componentProperty,
const std::string &  componentName,
const IndexMap componentIndex 
) const
pure virtualinherited
virtual Status det::VManager::GetData ( std::list< int > &  returnData,
const std::string &  componentProperty,
const std::string &  componentName,
const IndexMap componentIndex 
) const
pure virtualinherited
virtual Status det::VManager::GetData ( std::list< std::string > &  returnData,
const std::string &  componentProperty,
const std::string &  componentName,
const IndexMap componentIndex 
) const
pure virtualinherited
virtual Status det::VManager::GetData ( std::list< std::pair< int, int >> &  returnData,
const std::string &  componentProperty,
const std::string &  componentName,
const IndexMap componentIndex 
) const
pure virtualinherited
virtual Status det::VManager::GetData ( utl::TabulatedFunction returnData,
const std::string &  componentProperty,
const std::string &  componentName,
const IndexMap componentIndex 
) const
pure virtualinherited
virtual Status det::VManager::GetData ( std::map< int, utl::TabulatedFunction > &  returnData,
const std::string &  componentProperty,
const std::string &  componentName,
const IndexMap componentIndex 
) const
pure virtualinherited
virtual Status det::VManager::GetData ( utl::TabulatedFunctionComplexLgAmpPhase returnData,
const std::string &  componentProperty,
const std::string &  componentName,
const IndexMap componentIndex 
) const
pure virtualinherited
virtual Status det::VManager::GetData ( std::map< std::string, double > &  returnData,
const std::string &  componentProperty,
const std::string &  componentName,
const IndexMap componentIndex 
) const
pure virtualinherited
virtual Status det::VManager::GetData ( std::vector< std::vector< int >> &  ,
const std::string &  componentProperty,
const std::string &  componentName,
const VManager::IndexMap  
) const
inlinevirtualinherited

Definition at line 255 of file VManager.h.

virtual Status det::VManager::GetData ( std::map< unsigned int, int > &  ,
const std::string &  componentProperty,
const std::string &  componentName,
const VManager::IndexMap  
) const
inlinevirtualinherited

Definition at line 256 of file VManager.h.

Status det::VManager::GetData ( Handle returnData,
const std::string &  component,
const std::string &  property,
const IndexMap index = IndexMap() 
) const
inlineinherited

new data accessor

Any property of the detector is supposed to be accessible through this interface. Interface specifies the name of the property and the component to which it belongs, together with a map of (index name, index value) identifying the specific instance of the component. For example, to request the quantum efficiency of PMT 3 in station 57, one would have

  • component = "PMT"
  • property = "quantumEfficiency"
  • index["stationId"] = "57"
  • index["PMT"] = "3"

Definition at line 275 of file VManager.h.

References det::VManager::CheckedGetData().

template<class Info >
template<typename T >
det::VManager::Status det::XXMLManager< Info >::GetDataInternal ( T &  t,
const std::string &  prop,
const std::string &  name,
const det::VManager::IndexMap m 
) const
private

Common template method for all types.

Referenced by det::if().

template<class Info >
template<typename T >
det::VManager::Status det::XXMLManager< Info >::GetDataInternal ( const utl::Branch topB,
T &  t,
const std::string &  prop,
const std::string &  name 
) const
private

Overloaded version for the case when data is required without attribute information in the index map.

In this case the datum is assumed to be a single value of the template argument type.

Definition at line 896 of file XXMLManager.h.

References det::VManager::eNotFound, and ERROR.

template<class Info >
template<typename T >
det::VManager::Status det::XXMLManager< Info >::GetDataInternal ( const utl::Branch topB,
std::list< T > &  t,
const std::string &  componentName,
const std::string &  name 
) const
private

Overloaded version for the case when data is required without attribute information in the index map.

In this case the datum is assumed to be a std::list wrapping the template argument type. In this case the "property name" is in fact the name of a componet in the hierarchy; whose lists is desired to be retrieved.

Definition at line 912 of file XXMLManager.h.

References det::VManager::eFound, det::VManager::eNotFound, det::XXMLManager< Info >::FindMatchingBranch(), utl::Branch::GetAttributes(), det::XXMLManager< Info >::AccumulatorMatcher< Container >::IsModified(), det::VManager::IsReportingErrors(), and WARNING.

const std::string& det::VManager::GetName ( ) const
inlineinherited
template<class Info >
det::XXMLManager< Info >::if ( b &&  i = = N)
inlineprivate

Definition at line 262 of file XXMLManager.h.

References det::XXMLManager< Info >::b.

void det::VManager::Init ( const std::string &  configLink)
virtualinherited

Manager Initialization. configLink is the CentralConfig hook for the configuration file.

This method instructs the manager to initialize itself. In the case of a manager which fetches data from an XML file, configuration involves getting the link to the appropriate configuration file from the CentralConfig and parsing the file to create a DOM or some other representation of the data in memory. For a manager which uses a MySQL database, configuration involves getting the link to the appropriate configuration file from the CentralConfig, then using the instructions in that file to establish a connection to the relevant database.

Note that one might initially think it makes more sense to just initialize managers automatically in their constructors so that developers don't need to remember to explicitly invoke the Init() method. (In fact it worked like this in an earlier version.) The rationale for not having automatic configuration via the constructors is that the configuration can now be delayed until the time that the user specifically requests a particular manager, rather than doing it at the time that the Detector object constructs the Managers. For example, when the user declares his set of desired managers in the ManagerRegister configuration, only those particular Managers will get initialized (though all available Managers will be constructed!). Consider someone who wants to test only the Fluorescence portion of the detector. By requiring explicit invocation of Init() one avoids providing hooks to all the SD related configuration files and databases which aren't even going to be used. Though the SD Managers will be constructed, no attempt will be made to Initialize them until the user specifically requests them by, for example, specifying them in the configuration file for the appropriate ManagerRegister.

Reimplemented in fdet::FdUpTimeFileManager, sdet::T2LifeROOTFileManager, sdet::T2LifeFileManager, rdet::RChannelSQLManager, fdet::FdUpTimeSQLManager, rdet::RBadStationSQLManager, fdet::FdChannelMappingManager, det::ManagerRegister, det::VSQLManager, det::VSQLManager, rdet::RBeaconSQLManager, sdet::SDenseStationListXMLManager, rdet::RModelsXMLManager, rdet::RSimulationStationListManager, sdet::T2StatFileManager, fdet::EventPointingManager, fdet::FCalibSQLManager, rdet::RAntennaTypeXMLManager, rdet::RHardwareProfileXMLManager, rdet::MonitoringSQLManager, sdet::SModelsXMLManager, fdet::FModelsXMLManager, cdet::CModelsXMLManager, rdet::RStationListSQLManager, fdet::FOpticalEfficiencyLossSQLManager, cdet::CStationListXMLManager, rdet::RStationListXMLManager, fdet::FFixCalibManager, fdet::FSimulationCalibManager, sdet::EventStationPositionsManager, sdet::SStationListSQLManager, sdet::SStationListXMLManager, fdet::FFixOpticalEfficiencyLossManager, fdet::FParametricOpticalEfficiencyLossManager, and fdet::FdAlwaysUpManager.

Definition at line 16 of file VManager.cc.

Referenced by sdet::T2LifeFileManager::Init(), and det::ManagerRegister::InterpretXML().

template<class Info >
void det::XXMLManager< Info >::Initialize ( )
private

Some inits for the objects of this class, apart from those from VManager.

Todo:
Fill a set a configurable property tags, so as to have a quick 'not found' if the query goes to a non-sensical property name, or to do some prefetching (these two conditions can be, of course, be treated as two differebt issues).

Definition at line 559 of file XXMLManager.h.

Referenced by det::XXMLManager< Info >::XXMLManager().

bool det::VManager::IsInitialized ( ) const
inlineinherited

Definition at line 214 of file VManager.h.

References det::VManager::fIsInitialized.

Referenced by det::ManagerRegister::InterpretXML().

bool det::VManager::IsReportingErrors ( ) const
inlineprotectedinherited
string det::VManager::NotImplementedMessage ( const std::string &  type,
const std::string &  componentProperty,
const std::string &  componentName 
) const
protectedinherited

Definition at line 47 of file VManager.cc.

string det::VManager::QueryInfoMessage ( const Handle returnData,
const std::string &  component 
)
staticinherited
string det::VManager::QueryInfoMessage ( const Handle returnData,
const std::string &  component,
const std::string &  property,
const IndexMap index 
)
staticinherited

Definition at line 119 of file VManager.cc.

static std::string det::VManager::QueryInfoMessage ( const std::string &  componentProperty,
const std::string &  componentName 
)
inlinestaticinherited

Definition at line 294 of file VManager.h.

string det::VManager::QueryInfoMessage ( const std::string &  componentProperty,
const std::string &  componentName,
const IndexMap componentIndex 
)
staticinherited

Definition at line 58 of file VManager.cc.

void det::VManager::SetName ( const std::string &  name)
inlineinherited

Definition at line 332 of file VManager.h.

References det::VManager::fName.

Referenced by det::ManagerRegister::InterpretXML().

void det::VManager::SetReportingErrors ( const bool  flag = true)
inlineinherited

Generic data accessors.

Any property of the detector is supposed to be accessible through this interface. Interface specifies the name of the property and the component to which it belongs, together with a map of (index name, index value) identifying the specific instance of the component. For example, to request the quantum efficiency of PMT 3 in station 57, one would have

  • componentProperty = "quantumEfficiency"
  • componentName = "PMT"
  • componentIndex["stationId"] = "57"
  • componentIndex["PMT"] = "3"

Definition at line 231 of file VManager.h.

References det::VManager::fReportingErrors.

template<class Info >
det::XXMLManager< Info >::VMANAGER_GETDATA_CALL ( GetDataInternal  ,
double   
)
template<class Info >
det::XXMLManager< Info >::VMANAGER_GETDATA_CALL ( GetDataInternal  ,
int   
)
template<class Info >
det::XXMLManager< Info >::VMANAGER_GETDATA_CALL ( GetDataInternal  ,
std::string   
)
template<class Info >
det::XXMLManager< Info >::VMANAGER_GETDATA_CALL ( GetDataInternal  ,
std::list< int >   
)
template<class Info >
det::XXMLManager< Info >::VMANAGER_GETDATA_CALL ( GetDataInternal  ,
std::vector< double >   
)
template<class Info >
det::XXMLManager< Info >::VMANAGER_GETDATA_CALL ( GetDataInternal  ,
std::vector< int >   
)
template<class Info >
det::XXMLManager< Info >::VMANAGER_GETDATA_CALL ( GetDataInternal  ,
utl::TabulatedFunction   
)
template<class Info >
det::XXMLManager< Info >::VMANAGER_GETDATA_DENIED ( std::vector< std::string >  )
template<class Info >
det::XXMLManager< Info >::VMANAGER_GETDATA_DENIED ( std::list< double >  )
template<class Info >
det::XXMLManager< Info >::VMANAGER_GETDATA_DENIED ( std::list< std::string >  )
template<class Info >
det::XXMLManager< Info >::VMANAGER_GETDATA_DENIED ( std::list< std::pair< int, int > >  )
template<class Info >
det::XXMLManager< Info >::VMANAGER_GETDATA_DENIED ( std::map< int, utl::TabulatedFunction )
template<class Info >
det::XXMLManager< Info >::VMANAGER_GETDATA_DENIED ( std::map< std::string, double >  )
template<class Info >
det::XXMLManager< Info >::VMANAGER_GETDATA_DENIED ( std::vector< std::vector< int > >  )
template<class Info >
det::XXMLManager< Info >::VMANAGER_GETDATA_DENIED ( std::vector< bool )

Member Data Documentation

template<class Info >
det::XXMLManager< Info >::b = b.GetChild(path[i])
private
template<class Info >
template<typename T , std::size_t N>
det::XXMLManager< Info >::bool
staticprivate
Initial value:
{
utl::Branch b = src

Helper to complete the full-path look-up.

It's used from within the helper struct ConfigHandler.

Parameters
destOutput parameter.
srcWhere to start looking (assumed to already match path[0]).
pathThe path to check.
Returns
true if there was a match, and so dest was modified.

Definition at line 251 of file XXMLManager.h.

template<class Info >
return det::XXMLManager< Info >::false
private

Definition at line 266 of file XXMLManager.h.

std::set<std::string> det::VManager::fAvailableComponents
protectedinherited
utl::Branch det::VManager::fBranch
protectedinherited
bool det::VManager::fIsInitialized = false
mutableprotectedinherited

Definition at line 354 of file VManager.h.

Referenced by det::VManager::IsInitialized().

bool det::VManager::fReportingErrors = false
protectedinherited
template<class Info >
unsigned int det::XXMLManager< Info >::i = 1
private

The documentation for this class was generated from the following file:

, generated on Tue Sep 26 2023.