ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
TrkDetDescr
TrkDetDescrInterfaces
TrkDetDescrInterfaces
ILayerMaterialCreator.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3
*/
4
6
// ILayerMaterialCreator.h, (c) ATLAS Detector software
8
9
#ifndef TRKDETDESCRINTERFACES_ILAYERMATERIALCREATOR_H
10
#define TRKDETDESCRINTERFACES_ILAYERMATERIALCREATOR_H
11
12
// Gaudi
13
#include "GaudiKernel/IAlgTool.h"
14
// STL
15
#include <vector>
16
#include <cstring>
17
18
#include "
CxxUtils/CachedValue.h
"
19
20
namespace
Trk
{
21
22
class
LayerMaterialProperties
;
23
class
LayerMaterialRecord
;
24
32
class
ILayerMaterialCreator
:
virtual
public
IAlgTool {
33
34
public
:
35
DeclareInterfaceID
(
ILayerMaterialCreator
, 1, 0);
36
38
virtual
~ILayerMaterialCreator
(){}
39
41
virtual
LayerMaterialProperties
*
createLayerMaterial
(
const
LayerMaterialRecord
& lmr)
const
= 0;
42
44
virtual
LayerMaterialProperties
*
convertLayerMaterial
(
const
LayerMaterialProperties
& lmr)
const
= 0;
45
47
const
std::string&
layerMaterialName
()
const
{
48
if
(!
m_layerMaterialFullName
.isValid()) {
49
m_layerMaterialFullName
.set (
m_layerMaterialDirectory
+
m_layerMaterialName
);
50
}
51
return
*
m_layerMaterialFullName
.ptr();
52
}
53
54
protected
:
55
std::string
m_layerMaterialName
;
56
std::string
m_layerMaterialDirectory
;
57
58
private
:
59
CxxUtils::CachedValue<std::string>
m_layerMaterialFullName
;
60
};
61
62
63
}
// end of namespace
64
65
66
#endif
// TRKDETDESCRINTERFACES_ILAYERMATERIALCREATOR_H
67
68
CachedValue.h
Cached value with atomic update.
CxxUtils::CachedValue
Cached value with atomic update.
Definition
CachedValue.h:55
Trk::ILayerMaterialCreator
Interface class for LayerMaterialCreator AlgTools to create LayerMaterial properties with different s...
Definition
ILayerMaterialCreator.h:32
Trk::ILayerMaterialCreator::layerMaterialName
const std::string & layerMaterialName() const
the name of the created material map
Definition
ILayerMaterialCreator.h:47
Trk::ILayerMaterialCreator::DeclareInterfaceID
DeclareInterfaceID(ILayerMaterialCreator, 1, 0)
Trk::ILayerMaterialCreator::m_layerMaterialFullName
CxxUtils::CachedValue< std::string > m_layerMaterialFullName
Definition
ILayerMaterialCreator.h:59
Trk::ILayerMaterialCreator::m_layerMaterialName
std::string m_layerMaterialName
Definition
ILayerMaterialCreator.h:55
Trk::ILayerMaterialCreator::~ILayerMaterialCreator
virtual ~ILayerMaterialCreator()
Virtual destructor.
Definition
ILayerMaterialCreator.h:38
Trk::ILayerMaterialCreator::m_layerMaterialDirectory
std::string m_layerMaterialDirectory
Definition
ILayerMaterialCreator.h:56
Trk::ILayerMaterialCreator::convertLayerMaterial
virtual LayerMaterialProperties * convertLayerMaterial(const LayerMaterialProperties &lmr) const =0
create layer material properties from layer material properties
Trk::ILayerMaterialCreator::createLayerMaterial
virtual LayerMaterialProperties * createLayerMaterial(const LayerMaterialRecord &lmr) const =0
process the material properties
Trk::LayerMaterialProperties
This virtual base class encapsulates the logics to build pre/post/full update material for Layer stru...
Definition
LayerMaterialProperties.h:64
Trk::LayerMaterialRecord
Helper Class to record the material during the GeantinoNtupleMappingProcess.
Definition
LayerMaterialRecord.h:45
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition
FakeTrackBuilder.h:9
Generated on
for ATLAS Offline Software by
1.17.0