#include <DDValue.h>
Classes | |
struct | AtomicUInt |
struct | StringHolder |
Only used internally. More... | |
Public Member Functions | |
DDValue (void) | |
create a unnamed emtpy value. One can assing a named DDValue to it. More... | |
DDValue (const std::string &) | |
create a named empty value More... | |
DDValue (const char *) | |
create a named empty value More... | |
DDValue (const std::string &, const std::vector< DDValuePair > &) | |
creates a named DDValue initialized with a std::vector of values More... | |
DDValue (const std::string &, double) | |
creates a single double valued named DDValue. The corresponding std::string-value is an empty std::string More... | |
DDValue (const std::string &, const std::string &, double) | |
DDValue (const std::string &name, const std::string &val) | |
DDValue (unsigned int) | |
const std::vector< double > & | doubles () const |
a reference to the double-valued values stored in the given instance of DDValue More... | |
unsigned int | id (void) const |
returns the ID of the DDValue More... | |
bool | isEvaluated (void) const |
true, if values are numerical evaluated; else false. More... | |
const std::string & | name (void) const |
the name of the DDValue More... | |
operator unsigned int (void) const | |
converts a DDValue object into its ID More... | |
bool | operator< (const DDValue &) const |
A DDValue a is smaller than a DDValue b if (a.id()<b.id()) OR (a.id()==b.id() and value(a)<value(b)) More... | |
bool | operator== (const DDValue &v) const |
Two DDValues are equal only if their id() is equal AND their values are equal. More... | |
DDValuePair | operator[] (unsigned int i) const |
void | setEvalState (bool newState) |
set to true, if the double-values (method DDValue::doubles()) make sense More... | |
unsigned int | size () const |
the size of the stored value-pairs (std::string,double) More... | |
const std::vector< std::string > & | strings () const |
a reference to the std::string-valued values stored in the given instance of DDValue More... | |
~DDValue (void) | |
Private Types | |
using | Names = tbb::concurrent_vector< StringHolder, tbb::zero_allocator< StringHolder >> |
using | NamesToIndicies = tbb::concurrent_unordered_map< std::string, AtomicUInt > |
using | vecpair_type = std::pair< bool, std::pair< std::vector< std::string >, std::vector< double >>> |
Private Member Functions | |
void | init (const std::string &) |
Static Private Member Functions | |
static NamesToIndicies & | indexer () |
static Names | initializeNames () |
static Names & | names () |
Private Attributes | |
unsigned int | id_ |
std::shared_ptr< vecpair_type > | vecPair_ |
A DDValue std::maps a std::vector of DDValuePair (std::string,double) to a name. Names of DDValues are stored transiently. Furthermore, an ID is assigned std::mapping to the name. Use DDValue::setEvalState(true) to indicate whether the double numbers stored in the DDValuePair make sense, otherwise an exception will be thrown when trying to get access to these values via DDValue::doubles() or DDValue::operator[].
|
private |
|
private |
|
private |
|
inline |
|
explicit |
|
explicit |
|
explicit |
creates a named DDValue initialized with a std::vector of values
Definition at line 53 of file DDValue.cc.
References init(), and vecPair_.
|
explicit |
creates a single double valued named DDValue. The corresponding std::string-value is an empty std::string
Definition at line 70 of file DDValue.cc.
References init(), setEvalState(), and vecPair_.
|
explicit |
creates a single std::string & numerical-valued named DDValue.
Definition at line 82 of file DDValue.cc.
References init(), setEvalState(), and vecPair_.
|
explicit |
creates a single std::string-valued named DDValue
Definition at line 93 of file DDValue.cc.
References init(), setEvalState(), and vecPair_.
|
explicit |
DDValue::~DDValue | ( | void | ) |
Definition at line 112 of file DDValue.cc.
const std::vector< double > & DDValue::doubles | ( | void | ) | const |
a reference to the double-valued values stored in the given instance of DDValue
Definition at line 139 of file DDValue.cc.
References Exception, python.rootplot.argparse::message, name(), AlCaHLTBitMon_QueryRunRegistry::string, and vecPair_.
Referenced by DDMapper< KeyType, ValueType >::all(), GEMGeometryBuilderFromDDD::buildGeometry(), GEMGeometryParsFromDD::buildGeometry(), RPCGeometryBuilderFromDDD::buildGeometry(), RPCGeometryParsFromDD::buildGeometry(), HFShowerFibreBundle::getDDDArray(), HFShowerPMT::getDDDArray(), MaterialBudgetHcalHistos::getDDDArray(), HFFibre::getDDDArray(), FastTimeDDDConstants::getDDDArray(), ECalSD::getDDDArray(), HFShower::getDDDArray(), HFShowerParam::getDDDArray(), HCalSD::getDDDArray(), HFShowerLibrary::getDDDArray(), HGCalDDDConstants::getDDDArray(), MuonDDDNumbering::getInt(), DDG4Builder::getInt(), CaloTrkProcessing::getNumbers(), CocoaAnalyzer::myFetchDbl(), and DDMapper< KeyType, ValueType >::toDouble().
|
inline |
returns the ID of the DDValue
Definition at line 49 of file DDValue.h.
References id_.
Referenced by DDI::LogicalPart::hasDDValue(), operator<(), and operator==().
|
staticprivate |
Definition at line 116 of file DDValue.cc.
Referenced by init().
|
private |
Definition at line 10 of file DDValue.cc.
References id_, indexer(), lastIndex, name(), names(), query::result, and AlCaHLTBitMon_QueryRunRegistry::string.
Referenced by DDValue().
|
staticprivate |
Definition at line 122 of file DDValue.cc.
References names(), and AlCaHLTBitMon_QueryRunRegistry::string.
Referenced by names().
bool DDValue::isEvaluated | ( | void | ) | const |
true, if values are numerical evaluated; else false.
in case of a 'true' return value, the method DDValue::doubles() and the operator DDValue::operator[] can be used
Definition at line 203 of file DDValue.cc.
References vecPair_.
Referenced by operator<<(), DDCoreToDDXMLOutput::specpar(), DDStreamer::specs_write(), and DDI::Specific::stream().
|
inline |
the name of the DDValue
Definition at line 55 of file DDValue.h.
Referenced by cuy.divideElement::__init__(), cuy.plotElement::__init__(), cuy.additionElement::__init__(), cuy.superimposeElement::__init__(), cuy.graphElement::__init__(), config.CFG::__str__(), DDI::LogicalPart::addSpecifics(), validation.Sample::digest(), doubles(), init(), VIDSelectorBase.VIDSelectorBase::initialize(), operator<<(), operator[](), DDCoreToDDXMLOutput::specpar(), DDStreamer::specs_write(), DDI::Specific::stream(), and Vispa.Views.PropertyView.Property::valueChanged().
|
staticprivate |
Definition at line 132 of file DDValue.cc.
References initializeNames().
Referenced by init(), initializeNames(), and name().
|
inline |
bool DDValue::operator< | ( | const DDValue & | v | ) | const |
A DDValue a is smaller than a DDValue b if (a.id()<b.id()) OR (a.id()==b.id() and value(a)<value(b))
Definition at line 227 of file DDValue.cc.
References assert(), id(), query::result, and vecPair_.
bool DDValue::operator== | ( | const DDValue & | v | ) | const |
Two DDValues are equal only if their id() is equal AND their values are equal.
If the DDValue::isEvalued() == true, the numerical representation is taken for comparison, else the std::string representation
Definition at line 209 of file DDValue.cc.
References assert(), id(), query::result, and vecPair_.
DDValuePair DDValue::operator[] | ( | unsigned int | i | ) | const |
access to the values stored in DDValue by an index. Note, that the index is not checked for bounds excess!
Definition at line 182 of file DDValue.cc.
References Exception, python.rootplot.argparse::message, name(), AlCaHLTBitMon_QueryRunRegistry::string, and vecPair_.
void DDValue::setEvalState | ( | bool | newState | ) |
set to true, if the double-values (method DDValue::doubles()) make sense
Definition at line 197 of file DDValue.cc.
References vecPair_.
Referenced by DDValue(), DDLSpecPar::processElement(), and DDStreamer::specs_read().
|
inline |
the size of the stored value-pairs (std::string,double)
Definition at line 69 of file DDValue.h.
References vecPair_.
Referenced by DDMapper< KeyType, ValueType >::noSpecifics(), operator<<(), DDCoreToDDXMLOutput::specpar(), DDStreamer::specs_write(), DDI::Specific::stream(), DDMapper< KeyType, ValueType >::toDouble(), and DDMapper< KeyType, ValueType >::toString().
|
inline |
a reference to the std::string-valued values stored in the given instance of DDValue
Definition at line 62 of file DDValue.h.
References vecPair_.
Referenced by DDI::LogicalPart::addSpecifics(), DDMapper< KeyType, ValueType >::all(), DTGeometryBuilderFromDDD::buildGeometry(), DTGeometryParsFromDD::buildGeometry(), dddGetStringRaw(), DDG4Builder::getDouble(), CaloTrkProcessing::getNames(), ExtractStringFromDDD::getString(), DDG4SensitiveConverter::getString(), ECalSD::getStringArray(), CocoaAnalyzer::myFetchString(), operator<<(), DDCoreToDDXMLOutput::specpar(), DDStreamer::specs_write(), DDI::Specific::stream(), and DDMapper< KeyType, ValueType >::toString().
|
private |
|
private |
Definition at line 125 of file DDValue.h.
Referenced by DDValue(), doubles(), isEvaluated(), operator<(), operator==(), operator[](), setEvalState(), size(), and strings().