Back to home page

EIC code displayed by LXR

 
 

    


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

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/Definitions/Units.hpp"
0012 #include "Acts/Material/Material.hpp"
0013 #include "Acts/Material/MaterialSlab.hpp"
0014 
0015 namespace ActsTests {
0016 
0017 inline Acts::Material makeBeryllium() {
0018   using namespace Acts::UnitLiterals;
0019   return Acts::Material::fromMolarDensity(35.28_cm, 42.10_cm, 9.012, 4,
0020                                           (1.848 / 9.012) * 1_mol / 1_cm3);
0021 }
0022 
0023 inline Acts::Material makeSilicon() {
0024   using namespace Acts::UnitLiterals;
0025   return Acts::Material::fromMolarDensity(9.370_cm, 46.52_cm, 28.0855, 14,
0026                                           (2.329 / 28.0855) * 1_mol / 1_cm3);
0027 }
0028 
0029 inline Acts::Material makeLiquidArgon() {
0030   using namespace Acts::UnitLiterals;
0031   return Acts::Material::fromMassDensity(140.0343868497_mm, 857.0639538668_mm,
0032                                          39.9476933511, 18,
0033                                          1.396 * 1_g / 1_cm3);
0034 }
0035 
0036 inline Acts::Material makeIron() {
0037   using namespace Acts::UnitLiterals;
0038   return Acts::Material::fromMassDensity(17.57493465097_mm, 169.9030027586_mm,
0039                                          55.845110798, 26, 7.874 * 1_g / 1_cm3);
0040 }
0041 
0042 /// Build material slab corresponding to 1 radiation and interaction length.
0043 inline Acts::MaterialSlab makeUnitSlab() {
0044   using namespace Acts::UnitLiterals;
0045   // silicon-like material with higher X0 and lower L0
0046   return {Acts::Material::fromMolarDensity(20_cm, 20_cm, 28.0855, 14,
0047                                            (2.329 / 28.0855) * 1_mol / 1_cm3),
0048           20_cm};
0049 }
0050 
0051 /// Build material slab corresponding to 1% of radiation and interaction length.
0052 inline Acts::MaterialSlab makePercentSlab() {
0053   auto slab = makeUnitSlab();
0054   slab.scaleThickness(0.01);
0055   return slab;
0056 }
0057 
0058 }  // namespace ActsTests