LDMX Software
|
All classes in the ldmx-sw project use this namespace. More...
Classes | |
class | AbortEventException |
Specific exception used to abort an event. More... | |
class | Analyzer |
Base class for a module which does not produce a data product. More... | |
class | Bus |
A map of bus passengers. More... | |
class | Conditions |
Container and cache for conditions and conditions providers. More... | |
class | ConditionsIOV |
Class which defines the run/event/type range for which a given condition is valid, including for all time. More... | |
class | ConditionsObject |
Base class for all conditions objects, very simple. More... | |
class | ConditionsObjectProvider |
Base class for all providers of conditions objects. More... | |
class | ConfigurePython |
Utility class which reads/executes a python script and creates a Process object based on the input. More... | |
class | Event |
Implements an event buffer system for storing event data. More... | |
class | EventFile |
This class manages all ROOT file input/output operations. More... | |
class | EventProcessor |
Base class for all event processing components. More... | |
class | HistogramHelper |
Interface class between an EventProcessor and the HistogramPool. More... | |
class | HistogramPool |
Singleton class used to create and pool histograms. More... | |
class | NtupleManager |
Singleton class used to manage the creation and pooling of ntuples. More... | |
class | PluginFactory |
Singleton module factory that creates EventProcessor objects. More... | |
class | Process |
Class which represents the process under execution. More... | |
class | Producer |
Base class for a module which produces a data product. More... | |
class | ProductTag |
Defines the identity of a product and can be used for searches. More... | |
class | RandomNumberSeedService |
System for consistent seeding of random number generators. More... | |
class | StorageControl |
Class which encapsulates storage control functionality, used by the Process class. More... | |
Typedefs | |
typedef ConditionsObjectProvider * | ConditionsObjectProviderMaker(const std::string &objname, const std::string &tagname, const framework::config::Parameters ¶ms, Process &process) |
Typedef for PluginFactory use. | |
typedef EventProcessor * | EventProcessorMaker(const std::string &name, Process &process) |
Typedef for EventProcessorFactory use. | |
typedef std::unique_ptr< Process > | ProcessHandle |
A handle to the current process Used to pass a process from ConfigurePython to fire.cxx. | |
Functions | |
static std::string | getPyString (PyObject *pyObj) |
Turn the input python string object into a C++ string. | |
std::string | repr (PyObject *obj) |
Get a C++ string representation of the input python object. | |
PyObject * | extractDictionary (PyObject *obj) |
extract the dictionary of attributes from the input python object | |
static std::map< std::string, std::any > | getMembers (PyObject *object) |
Extract members from a python object. | |
static regex_t | construct_regex (const std::string &pattern, bool full_string_match) |
Construct an actual regex from the pass pattern (and full-string flag) | |
Variables | |
constexpr StorageControl::Hint | hint_shouldKeep |
storage control hint alias for backwards compatibility | |
constexpr StorageControl::Hint | hint_shouldDrop |
storage control hint alias for backwards compatibility | |
static const int | SEED_EXTERNAL = 2 |
static const int | SEED_RUN = 3 |
static const int | SEED_TIME = 4 |
All classes in the ldmx-sw project use this namespace.
typedef ConditionsObjectProvider * framework::ConditionsObjectProviderMaker(const std::string &objname, const std::string &tagname, const framework::config::Parameters ¶ms, Process &process) |
Typedef for PluginFactory use.
Definition at line 40 of file ConditionsObjectProvider.h.
typedef EventProcessor * framework::EventProcessorMaker(const std::string &name, Process &process) |
Typedef for EventProcessorFactory use.
Definition at line 38 of file EventProcessor.h.
typedef std::unique_ptr<Process> framework::ProcessHandle |
A handle to the current process Used to pass a process from ConfigurePython to fire.cxx.
|
static |
Construct an actual regex from the pass pattern (and full-string flag)
If the pattern is the empty string, then we generate the match-all regex .*
.
If the pattern is not empty and we want to match on full-strings, then we prepend the pattern with ^
and append the pattern with $
to inform regex that the pattern should match the entire string.
[in] | pattern | a regex pattern string |
[in] | full_string_match | flag if we want full-string matches only (true) or if we can include sub-strings (false) |
Definition at line 47 of file Event.cxx.
Referenced by framework::Event::searchProducts().
PyObject * framework::extractDictionary | ( | PyObject * | obj | ) |
extract the dictionary of attributes from the input python object
This is separated into its own function to isolate the code that depends on the python version. Since memory-saving measures were integrated into Python between 3.6.9 and 3.10.6, we need to alter how we were using the C API to access an objects dict attribute. We are now using a "hidden" Python C API function which has only been added to the public C API documentation in Python 3.11. It has been manually tested for the two different Python versions we use by running the tests (some of which test the ConfigurePython) and running a basic simulation.
Exception | if object does not have a dict and isn't a dict |
obj | pointer to python object to extract from |
Definition at line 74 of file ConfigurePython.cxx.
References repr().
Referenced by getMembers().
|
static |
Extract members from a python object.
Iterates through the object's dictionary and translates the objects inside of it into the type-specified C++ equivalents, then puts these objects into a STL map that can be passed to the Parameters class.
This function is recursive. If a non-base type is encountered, we pass it back along to this function to translate it's own dictionary.
We rely completely on python being awesome. For all higher level class objects, python keeps track of all of its member variables in the member dictionary dict.
No Py_DECREF calls are made because all of the members of an object are borrowed references, meaning that when we destory that object, it handles the other members. We destroy the one parent object pProcess at the end of ConfigurePython::ConfigurePython.
object | Python object to get members from |
Definition at line 136 of file ConfigurePython.cxx.
References extractDictionary(), getMembers(), getPyString(), and framework::config::Parameters::setParameters().
Referenced by framework::ConfigurePython::ConfigurePython(), and getMembers().
|
static |
Turn the input python string object into a C++ string.
Helpful to condense down the multi-line nature of the python3 code.
[in] | python | object assumed to be a string python object |
Definition at line 33 of file ConfigurePython.cxx.
Referenced by getMembers(), and repr().
std::string framework::repr | ( | PyObject * | obj | ) |
Get a C++ string representation of the input python object.
This is replicating the repr(obj)
syntax of Python.
[in] | obj | python object to get repr for |
Definition at line 49 of file ConfigurePython.cxx.
References getPyString().
Referenced by extractDictionary().
|
constexpr |
storage control hint alias for backwards compatibility
Definition at line 139 of file StorageControl.h.
Referenced by dqm::EcalDigiVerifier::analyze(), recon::RecoilMissesEcalSkimmer::produce(), recon::EcalPreselectionSkimmer::produce(), ecal::DNNEcalVetoProcessor::produce(), ecal::EcalVetoProcessor::produce(), hcal::HcalAlignPolarfires::produce(), hcal::HcalVetoProcessor::produce(), hcal::HcalWABVetoProcessor::produce(), recon::SequentialTrigger::produce(), and recon::TriggerProcessor::produce().
|
constexpr |
storage control hint alias for backwards compatibility
Definition at line 133 of file StorageControl.h.
Referenced by dqm::EcalDigiVerifier::analyze(), recon::RecoilMissesEcalSkimmer::produce(), recon::EcalPreselectionSkimmer::produce(), ecal::DNNEcalVetoProcessor::produce(), ecal::EcalVetoProcessor::produce(), hcal::HcalAlignPolarfires::produce(), hcal::HcalVetoProcessor::produce(), hcal::HcalWABVetoProcessor::produce(), recon::SequentialTrigger::produce(), and recon::TriggerProcessor::produce().
|
static |
Definition at line 14 of file RandomNumberSeedService.cxx.
|
static |
Definition at line 15 of file RandomNumberSeedService.cxx.
|
static |
Definition at line 16 of file RandomNumberSeedService.cxx.