ATLAS Offline Software
GsfMaterial.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3  */
4 
10 #ifndef GSFMATERIAL_H
11 #define GSFMATERIAL_H
12 
14 //
16 //
17 #include <array>
18 
19 namespace GsfMaterial {
20 
22 struct EnergyLoss
23 {
24  struct element
25  {
26  double weight = 0;
27  double deltaP = 0;
28  double deltaQOvePCov = 0;
29  };
30  std::array<element, GSFConstants::maxNumberofMatComponents> elements = {};
31  //We need to keep track of the actual elements in use
32  int numElements = 0;
33 };
34 
36 struct Scattering
37 {
38  double deltaThetaCov = 0;
39  double deltaPhiCov = 0;
40  void reset()
41  {
42  deltaThetaCov = 0;
43  deltaPhiCov = 0;
44  }
45 };
46 
48 struct Combined
49 {
50  //weights
51  std::array<double, GSFConstants::maxNumberofMatComponents> weights = {};
52  //difference in momentum due to material effects
53  std::array<double, GSFConstants::maxNumberofMatComponents> deltaPs = {};
54  //parameters after material update
57  //Covariance after material effects
58  //(we hold initially the delta and then sum it with the covariance)
61  //We need to keep track of the actual elements in use
62  size_t numEntries = 0;
63 
64 };
65 
66 } // end namespace GSFMaterial
67 
68 #endif
69 
GsfMaterial::Scattering
Helper struct for multiple scattering effects single component description.
Definition: GsfMaterial.h:37
GsfMaterial::EnergyLoss::elements
std::array< element, GSFConstants::maxNumberofMatComponents > elements
Definition: GsfMaterial.h:30
GsfMaterial::EnergyLoss
Helper struct for energy loss effects, multicomponent description.
Definition: GsfMaterial.h:23
GsfMaterial::Combined::parameters
std::array< AmgVector(5), GSFConstants::maxNumberofMatComponents > parameters
Definition: GsfMaterial.h:56
GsfMaterial::EnergyLoss::element::weight
double weight
Definition: GsfMaterial.h:26
GsfMaterial::EnergyLoss::element
Definition: GsfMaterial.h:25
AmgSymMatrix
#define AmgSymMatrix(dim)
Definition: EventPrimitives.h:50
GsfMaterial::Scattering::deltaPhiCov
double deltaPhiCov
Definition: GsfMaterial.h:39
GsfMaterial::EnergyLoss::element::deltaQOvePCov
double deltaQOvePCov
Definition: GsfMaterial.h:28
GsfMaterial::Combined::numEntries
size_t numEntries
Definition: GsfMaterial.h:62
GSFConstants::maxNumberofMatComponents
constexpr int8_t maxNumberofMatComponents
Maximum number of Gaussian components for the material effects description.
Definition: GsfConstants.h:46
AmgVector
AmgVector(4) T2BSTrackFilterTool
Definition: T2BSTrackFilterTool.cxx:114
GSFConstants::alignment
constexpr size_t alignment
Alignment used for SIMD operations internally to GSF.
Definition: GsfConstants.h:20
GsfMaterial::Scattering::deltaThetaCov
double deltaThetaCov
Definition: GsfMaterial.h:38
GsfMaterial::Combined
Helper struct for combined material effects, multicomponent description.
Definition: GsfMaterial.h:49
lumiFormat.array
array
Definition: lumiFormat.py:91
EventPrimitives.h
GsfMaterial::Combined::deltaPs
std::array< double, GSFConstants::maxNumberofMatComponents > deltaPs
Definition: GsfMaterial.h:53
weights
Definition: herwig7_interface.h:38
GsfMaterial::Scattering::reset
void reset()
Definition: GsfMaterial.h:40
GsfMaterial
Collect Structs we use for material effects in GSF and their meaning in one place.
Definition: GsfMaterial.h:19
GsfMaterial::Combined::covariances
std::array< AmgSymMatrix(5), GSFConstants::maxNumberofMatComponents > covariances
Definition: GsfMaterial.h:60
GsfMaterial::EnergyLoss::numElements
int numElements
Definition: GsfMaterial.h:32
GsfConstants.h
GsfMaterial::EnergyLoss::element::deltaP
double deltaP
Definition: GsfMaterial.h:27