DD4hep - The AIDA detector description toolkit for high energy physics experiments
DD4hep  Rev:Unversioneddirectory
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ConditionsProcessor.h
Go to the documentation of this file.
1 //==========================================================================
2 // AIDA Detector description implementation for LCD
3 //--------------------------------------------------------------------------
4 // Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
5 // All rights reserved.
6 //
7 // For the licensing terms see $DD4hepINSTALL/LICENSE.
8 // For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
9 //
10 // Author : M.Frank
11 //
12 //==========================================================================
13 #ifndef DD4HEP_DDCORE_CONDITIONSPROCESSOR_H
14 #define DD4HEP_DDCORE_CONDITIONSPROCESSOR_H
15 
16 // Framework includes
17 #include "DD4hep/Conditions.h"
18 #include "DD4hep/Detector.h"
19 
21 namespace DD4hep {
22 
24  namespace Conditions {
25 
27 
43  virtual public Condition::Processor,
44  virtual public Container::Processor,
45  virtual public Geometry::DetElement::Processor
46  {
47  public:
52  protected:
57  public:
61  virtual ~ConditionsProcessor() = default;
63  void setPool(pool_type* value) { m_pool = value; }
65  virtual int operator()(Condition cond);
67  virtual int operator()(Container container);
69  virtual int processElement(DetElement de);
70  };
71 
73 
78  class ConditionsCollector : virtual public ConditionsProcessor {
79  public:
81  std::vector<Condition> conditions;
82  public:
84  ConditionsCollector() = default;
86  virtual ~ConditionsCollector() = default;
88  virtual int operator()(Condition cond) {
89  conditions.push_back(cond);
90  return 1;
91  }
93  virtual int operator()(Container container)
94  { return this->self_type::operator()(container); }
96  virtual int processElement(DetElement detector)
97  { return this->self_type::processElement(detector); }
98  };
99  } /* End namespace Conditions */
100 } /* End namespace DD4hep */
101 #endif /* DD4HEP_DDCORE_CONDITIONSPROCESSOR_H */
virtual int operator()(Condition cond)
Callback to output conditions information.
Geometry::DetElement DetElement
Make DetElement type local.
Interface for conditions pool optimized to host conditions updates.
Generic Conditions processor.
ConditionsCollector()=default
Default constructor.
virtual int operator()(Container container)
Container callback for object processing.
void setPool(pool_type *value)
Set pool.
virtual int processElement(DetElement de)
Callback to output conditions information of an entire DetElement.
Main condition object handle.
Definition: Conditions.h:70
Container class for condition handles aggregated by a detector element.
Definition: Conditions.h:206
Abstract base for processing callbacks to container objects.
Definition: Conditions.h:215
pool_type * m_pool
Reference to the user pool.
Abstract base for processing callbacks to DetElement objects.
Definition: Detector.h:180
Generic Condition object collector.
virtual ~ConditionsProcessor()=default
Default destructor.
virtual ~ConditionsCollector()=default
Default destructor.
Handle class describing a detector element.
Definition: Detector.h:172
ConditionsProcessor self_type
Self type definition.
Abstract base for processing callbacks to conditions objects.
Definition: Conditions.h:112
ConditionsProcessor(pool_type *p)
Initializing constructor.
virtual int processElement(DetElement detector)
Callback to output conditions information of an entire DetElement.
virtual int operator()(Condition cond)
Callback to output conditions information.
std::vector< Condition > conditions
Collection container.