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
ObjectsInterna.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_GEOMETRY_OBJECTSINTERNA_H
14 #define DD4HEP_GEOMETRY_OBJECTSINTERNA_H
15 
16 // Framework include files
17 #include "DD4hep/Volumes.h"
18 #include "DD4hep/NamedObject.h"
19 #include "DD4hep/IDDescriptor.h"
20 #include "DD4hep/Segmentations.h"
21 #include "DD4hep/BitField64.h"
22 
23 // C/C++ include files
24 #include <set>
25 
26 // Forward declarations
27 class TColor;
28 
30 namespace DD4hep {
31 
33  namespace Geometry {
34 
36 
42  class HeaderObject: public NamedObject {
43  public:
44  std::string url;
45  std::string author;
46  std::string status;
47  std::string version;
48  std::string comment;
50  HeaderObject();
52  virtual ~HeaderObject();
53  private:
57  HeaderObject& operator=(const HeaderObject&) { return *this; }
58  };
59 
61 
67  class ConstantObject: public NamedObject {
68  public:
70  std::string dataType;
72  ConstantObject(const std::string& nam, const std::string& val, const std::string& typ);
74  virtual ~ConstantObject();
75  private:
79  ConstantObject& operator=(const ConstantObject&) { return *this; }
80  };
81 
83 
89  class VisAttrObject: public NamedObject {
90  public:
91  unsigned long magic;
92  TColor* col;
93  int color;
94  float alpha;
97  VisAttrObject();
99  virtual ~VisAttrObject();
100  };
101 
103 
109  class RegionObject: public NamedObject {
110  public:
111  unsigned long magic;
112  double threshold;
113  double cut;
115  std::vector<std::string> user_limits;
117  RegionObject();
119  virtual ~RegionObject();
120  };
121 
123 
129  class LimitSetObject: public NamedObject, public std::set<Limit> {
130  public:
132  LimitSetObject();
134  virtual ~LimitSetObject();
135  };
136 
138 
144  public:
146  std::string name;
148  std::string key;
152  HitCollection() : key_min(~0x0), key_max(~0x0) {}
154  HitCollection(const HitCollection& c);
156  HitCollection(const std::string& name, const std::string& key="",long k_min=~0x0, long kmax=~0x0);
159  };
160 
162 
168  class ReadoutObject: public NamedObject {
169  public:
171  typedef std::vector<HitCollection> Collections;
181  ReadoutObject();
183  virtual ~ReadoutObject();
184  };
185 
187 
194  class IDDescriptorObject: public NamedObject, public BitField64 {
195  public:
196  typedef BitFieldValue* Field;
197  typedef std::vector<std::pair<std::string, Field> > FieldMap;
198  typedef std::vector<std::pair<size_t, std::string> > FieldIDs;
201  std::string description;
205  IDDescriptorObject(const std::string& initString);
207  virtual ~IDDescriptorObject();
208 #ifndef __CINT__
209  const std::vector<BitFieldValue*> fields() const {
211  return _fields;
212  }
213 #endif
214  };
215 
216 
217  } /* End namespace Geometry */
218 } /* End namespace DD4hep */
219 #endif /* DD4HEP_GEOMETRY_OBJECTSINTERNA_H */
virtual ~LimitSetObject()
Default destructor.
ConstantObject & operator=(const ConstantObject &)
Private assignment operator.
std::vector< HitCollection > Collections
HitCollection()
Default constructor.
Volume readoutWorld
Handle to the volume.
RegionObject()
Standard constructor.
std::vector< std::string > user_limits
ConstantObject(const std::string &nam, const std::string &val, const std::string &typ)
Standard constructor.
HeaderObject & operator=(const HeaderObject &)
Private assignment operator.
std::string key
Discriminator key name from the <id> string.
virtual ~ReadoutObject()
Default destructor.
Concrete object implementation of the Region Handle.
IDDescriptorObject()
Default constructor.
virtual ~VisAttrObject()
Default destructor.
VisAttrObject()
Standard constructor.
Concrete object implementation for the Constant handle.
ReadoutObject()
Standard constructor.
virtual ~HeaderObject()
Default destructor.
HeaderObject(const HeaderObject &)
Private copy constructor.
Handle class holding a placed volume (also called physical volume)
Definition: Volumes.h:237
Implementation of a named object.
Definition: NamedObject.h:31
IDDescriptor id
Handle to the field descriptor.
Collections hits
Hit collection container (if defined)
std::vector< std::pair< std::string, Field > > FieldMap
std::vector< std::pair< size_t, std::string > > FieldIDs
virtual ~ConstantObject()
Default destructor.
Segmentation segmentation
Handle to the readout segmentation.
const std::vector< BitFieldValue * > fields() const
Access to the field container of the BitField64.
FieldIDs fieldIDs
not ROOT-persistent
ConstantObject(const ConstantObject &)
Private copy constructor.
HeaderObject()
Standard constructor.
Concrete object implementation for the Header handle.
Handle class supporting generic Segmentation of sensitive detectors.
Definition: Segmentations.h:43
std::string dataType
Constant type.
virtual ~RegionObject()
Default destructor.
long key_min
Range values of the key is not empty.
virtual ~IDDescriptorObject()
Default destructor.
HitCollection & operator=(const HitCollection &c)
Assignment operator.
Definition: Readout.cpp:40
Definition of the HitCollection parameters used by the Readout.
Concrete object implementation of the Readout Handle.
LimitSetObject()
Standard constructor.
Concrete object implementation of the LimitSet Handle.
std::string name
Hit collection name.
Class implementing the ID encoding of detector response.
Definition: IDDescriptor.h:40
std::string description
not ROOT-persistent
Concrete object implementation of the IDDescriptorObject Handle.
Concrete object implementation of the VisAttr Handle.