Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-10-13 08:18:05

0001 // This file is part of the ACTS project.
0002 //
0003 // Copyright (C) 2016 CERN for the benefit of the ACTS project
0004 //
0005 // This Source Code Form is subject to the terms of the Mozilla Public
0006 // License, v. 2.0. If a copy of the MPL was not distributed with this
0007 // file, You can obtain one at https://mozilla.org/MPL/2.0/.
0008 
0009 #pragma once
0010 
0011 #include "Acts/Material/ProtoSurfaceMaterial.hpp"
0012 #include "Acts/Utilities/BinningData.hpp"
0013 #include "Acts/Utilities/BinningType.hpp"
0014 #include "Acts/Utilities/Logger.hpp"
0015 
0016 #include <memory>
0017 #include <string>
0018 #include <utility>
0019 #include <vector>
0020 
0021 #include <DD4hep/DetElement.h>
0022 #include <DD4hep/DetFactoryHelper.h>
0023 #include <DDRec/DetectorData.h>
0024 
0025 namespace Acts {
0026 class Layer;
0027 }
0028 
0029 namespace ActsPlugins {
0030 
0031 /// Helper method to translate DD4hep material to Acts::ISurfaceMaterial
0032 ///
0033 /// This is used to assign proto material to Cylinder Layers
0034 ///
0035 /// @param detElement the DD4hep detector element for which this material is
0036 ///                   assigned
0037 /// @param cylinderLayer is the target layer
0038 /// @param logger a @c Logger for output
0039 void addCylinderLayerProtoMaterial(
0040     dd4hep::DetElement detElement, Acts::Layer& cylinderLayer,
0041     const Acts::Logger& logger = Acts::getDummyLogger());
0042 
0043 /// Helper method to translate DD4hep material to Acts::ISurfaceMaterial
0044 ///
0045 /// Thisis used to assign proto material to Disc Layers
0046 ///
0047 /// @param detElement the DD4hep detector element for which this material is
0048 /// assigned
0049 /// @param discLayer is the target layer
0050 /// @param logger a @c Logger for output
0051 void addDiscLayerProtoMaterial(
0052     dd4hep::DetElement detElement, Acts::Layer& discLayer,
0053     const Acts::Logger& logger = Acts::getDummyLogger());
0054 
0055 /// Helper method to be called for Cylinder and Disc Proto material
0056 ///
0057 /// For both, cylinder and disc, the closed binning value is "binPhi"
0058 ///
0059 /// @param params An instance of @c DD4hep::VariantParameters
0060 /// @param layer the Layer to assign the proto material
0061 /// @param binning the Binning prescription for the ActsExtension
0062 /// @param logger a @c Logger for output
0063 void addLayerProtoMaterial(
0064     const dd4hep::rec::VariantParameters& params, Acts::Layer& layer,
0065     const std::vector<std::pair<const std::string, Acts::BinningOption> >&
0066         binning,
0067     const Acts::Logger& logger = Acts::getDummyLogger());
0068 
0069 /// Helper method to create proto material - to be called from the
0070 /// addProto(...) methods
0071 ///
0072 /// @param params An instance of @c DD4hep::VariantParameters
0073 /// @param valueTag the xml tag for to ActsExtension to be parsed
0074 /// @param binning the Binning prescription for the ActsExtension
0075 /// @param logger a @c Logger for output
0076 ///
0077 /// @return Shared pointer to ProtoSurfaceMaterial created from DD4hep parameters
0078 std::shared_ptr<Acts::ProtoSurfaceMaterial> createProtoMaterial(
0079     const dd4hep::rec::VariantParameters& params, const std::string& valueTag,
0080     const std::vector<std::pair<const std::string, Acts::BinningOption> >&
0081         binning,
0082     const Acts::Logger& logger = Acts::getDummyLogger());
0083 
0084 }  // namespace ActsPlugins