ATLAS Offline Software
Loading...
Searching...
No Matches
ILayerArrayCreator.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3*/
4
6// ILayerArrayCreator.h, (c) ATLAS Detector software
8
9#ifndef TRKDETDESCRINTERFACES_ILAYERARRAYCREATOR_H
10#define TRKDETDESCRINTERFACES_ILAYERARRAYCREATOR_H
11
12// Gaudi
13#include "GaudiKernel/IAlgTool.h"
14// TrkDetDescrUtils - templated class and enum
17// STL
18#include <vector>
19#include <memory>
20
21namespace Trk {
22
24 class Layer;
25 class CylinderLayer;
26 class DiscLayer;
27 class PlaneLayer;
28
31
42 class ILayerArrayCreator : virtual public IAlgTool {
43
44 public:
45
48
50 virtual ~ILayerArrayCreator() = default;
51
53 virtual std::unique_ptr<Trk::BinnedArray1D<Layer>> cylinderLayerArray(
54 const std::vector<CylinderLayer*>& layers,
55 double rmin,
56 double rmax,
57 BinningType btype = arbitrary) const = 0;
58
60 virtual std::unique_ptr<Trk::BinnedArray1D<Layer>> discLayerArray(
61 const std::vector<DiscLayer*>& layers,
62 double zmin,
63 double zmax,
64 BinningType btype = arbitrary) const = 0;
65
67 virtual std::unique_ptr<Trk::BinnedArray1D<Layer>> planeLayerArray(
68 const std::vector<PlaneLayer*>& layers,
69 double min, double max,
70 BinningType btype = arbitrary,
71 Trk::BinningValue bv = Trk::binX) const = 0;
72
75 virtual void validationAction() const {}
76 };
77
78
79} // end of namespace
80
81
82#endif // TRKDETDESCRINTERFACES_ILAYERARRAYCREATOR_H
83
84
#define min(a, b)
Definition cfImp.cxx:40
#define max(a, b)
Definition cfImp.cxx:41
Class to describe a cylindrical detector layer for tracking, it inhertis from both,...
Class to describe a disc-like detector layer for tracking, it inhertis from both, Layer base class an...
Definition DiscLayer.h:45
Interface class ILayerArrayCreators It inherits from IAlgTool.
virtual std::unique_ptr< Trk::BinnedArray1D< Layer > > discLayerArray(const std::vector< DiscLayer * > &layers, double zmin, double zmax, BinningType btype=arbitrary) const =0
LayerArrayCreator interface method - for Endcap-like layers.
virtual ~ILayerArrayCreator()=default
Virtual destructor.
virtual void validationAction() const
Validation Action: Can be implemented optionally, outside access to internal validation steps.
virtual std::unique_ptr< Trk::BinnedArray1D< Layer > > planeLayerArray(const std::vector< PlaneLayer * > &layers, double min, double max, BinningType btype=arbitrary, Trk::BinningValue bv=Trk::binX) const =0
LayerArrayCreator interface method - for Planar-like layers.
DeclareInterfaceID(ILayerArrayCreator, 1, 0)
Creates the InterfaceID and interfaceID() method.
virtual std::unique_ptr< Trk::BinnedArray1D< Layer > > cylinderLayerArray(const std::vector< CylinderLayer * > &layers, double rmin, double rmax, BinningType btype=arbitrary) const =0
LayerArrayCreator interface method - for Barrel-like layers.
Base Class for a Detector Layer in the Tracking realm.
Definition Layer.h:72
Class to describe a planar detector layer for tracking, it inhertis from both, Layer base class and P...
Definition PlaneLayer.h:40
Ensure that the ATLAS eigen extensions are properly loaded.
BinningType
, BinningOption & BinningAccess
Definition BinningType.h:31
@ arbitrary
Definition BinningType.h:34
BinningValue
how to take the global / local position
Definition BinningType.h:46
@ binX
Definition BinningType.h:47