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
AlignmentsInterna.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 //
14 // NOTE:
15 //
16 // This is an internal include file. It should only be included to
17 // instantiate code. Otherwise the Alignments include file should be
18 // sufficient for all practical purposes.
19 //
20 //==========================================================================
21 #ifndef DD4HEP_ALIGNMENTS_ALIGNMENTSINTERNA_H
22 #define DD4HEP_ALIGNMENTS_ALIGNMENTSINTERNA_H
23 
24 // Framework include files
25 #include "DD4hep/IOV.h"
26 #include "DD4hep/Alignments.h"
28 
29 // C/C++ include files
30 #include <map>
31 
33 namespace DD4hep {
34 
36  namespace Alignments {
37 
38  // Forward declarations
39  class AlignmentsPool;
40  class Alignment;
41 
43 
51  protected:
57  virtual ~AlignmentsLoader();
58  public:
60  virtual void addRef() = 0;
62  virtual void release() = 0;
64  virtual Alignment get(key_type key, const iov_type& iov) = 0;
66  virtual Alignment get(key_type key, const UserPool& pool) = 0;
67  };
68 
70 
77  namespace Interna {
78 
79  // Forward declarations
80  class AlignmentContainer;
81  class AlignmentConditionObject;
82 
84 
92  {
93  public:
97  AlignmentConditionObject(const std::string& nam,const std::string& tit="");
99  virtual ~AlignmentConditionObject();
101  void clear();
102  };
103 
105 
113  public:
122 
123  public:
127  virtual ~AlignmentContainer();
128 
129 #ifdef __CINT__
131 #else
134 
136  Alignment get(const std::string& alignment_key, const iov_type& iov);
137 
139  Alignment get(key_type hash_key, const iov_type& iov);
140 
142  Alignment get(const std::string& alignment_key, const UserPool& iov);
143 
145  Alignment get(key_type alignment_key, const UserPool& iov);
146 #endif
147  public:
151  void addKey(const std::string& key_value);
153  void addKey(const std::string& key_value, const std::string& data_value);
154  };
155 
163  public:
165  AlignmentNamedObject(const std::string& nam, const std::string& tit="")
166  : NamedObject(nam,tit), AlignmentData() {}
168  virtual ~AlignmentNamedObject();
169  };
170 
171  } /* End namespace Interna */
172 
173  } /* End namespace Alignments */
174 } /* End namespace DD4hep */
175 
176 #endif /* DD4HEP_ALIGNMENTS_ALIGNMENTSINTERNA_H */
AlignmentData * alignment_data
Cached pointer to the bound conditions data, since these may be accessed very frequently.
The data class behind an alignments container handle.
The data class behind an alignments handle.
The data class behind a alignments container handle.
The data class behind a conditions handle.
Main handle class to hold an alignment object.
Definition: Alignments.h:65
std::pair< key_type, std::string > key_value
Forward definition of the mapping type.
Definition: Alignments.h:231
Alignment::key_type key_type
Forward definition of the key type.
Definition: Alignments.h:227
DD4hep::Geometry::DetElement DetElement
void addKey(const std::string &key_value)
Add a new key to the alignments access map.
Implementation of a named object.
Definition: NamedObject.h:31
Class describing the interval of validty.
Definition: IOV.h:59
virtual ~AlignmentsLoader()
Protected destructor.
DetElement detector
The hosting detector element.
Container::key_value key_value
Forward definition of the mapping type.
Container::Keys Keys
Definition of the keys.
std::map< key_type, key_value > Keys
Definition of the keys.
Definition: Alignments.h:233
AlignmentContainer(Geometry::DetElementObject *parent)
Standard constructor.
virtual void release()=0
Release object. The client may not use any reference any further.
AlignmentConditionObject(const std::string &nam, const std::string &tit="")
Standard constructor.
Alignment::key_type key_type
Forward defintion of the key type.
unsigned int key_type
Forward definition of the key type.
Definition: Alignments.h:94
Container::key_type key_type
Forward defintion of the key type.
virtual void addRef()=0
Addreference count. Use object.
Alignment::iov_type iov_type
Forward definition of the iov type.
Data class with properties of a detector element.
AlignmentNamedObject(const std::string &nam, const std::string &tit="")
Default constructor.
Derived condition data-object definition.
Container::iov_type iov_type
Forward definition of the iov type.
Keys keys
Known keys of alignments in this container.