ATLAS Offline Software
NnClusterizationFactory.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
5  #ifndef SICLUSTERIZATIONTOOL_NnClusterizationFactory_C
6  #define SICLUSTERIZATIONTOOL_NnClusterizationFactory_C
7 
8  /******************************************************
9  @class NnClusterizationFactory
10  @author Giacinto Piacquadio (PH-ADE-ID)
11  Package : SiClusterizationTool
12  Created : January 2011
13  DESCRIPTION: Load neural networks used for clustering
14  and deal with:
15  1) estimate of number of particles
16  2) estimate of position of cluster / subclusters
17  3) estimate of error in all cases
18  (full PDF or just RMS)
19  ********************************************************/
20 
21 
22 #include "GaudiKernel/ToolHandle.h"
23 #include "GaudiKernel/ServiceHandle.h"
25 
27 
28 //this is a typedef: no forward decl possible
39 
40 #include <RtypesCore.h> //Double_t
41 #include <Eigen/Dense>
42 #include <vector>
43 #include <array>
44 #include <string>
45 #include <string_view>
46 #include <regex>
47 
48 
49 class TTrainedNetwork;
50 class TH1;
51 
52 namespace lwt {
53  class NanReplacer;
54  class LightweightGraph;
55 }
56 
57 namespace Trk {
58  class NeuralNetworkToHistoTool;
59  class Surface;
60 }
61 
62 namespace InDetDD{
63  class SiLocalPosition;
64 }
65 
66 namespace InDet {
67 
68  class PixelCluster;
69 
70  struct NNinput{
71  operator bool() const {
72  return !matrixOfToT.empty();
73  }
74  int sizeX = 0;
75  int sizeY = 0;
76  std::vector<std::vector<float> > matrixOfToT;
77  std::vector<float> vectorOfPitchesY;
78  int ClusterPixLayer = 0;
80  float phi = 0;
81  float theta = 0;
82  float etaModule = 0;
83  bool useTrackInfo = 0;
86  };
87 
88  static const InterfaceID IID_NnClusterizationFactory("InDet::NnClusterizationFactory", 1, 0);
89 
91 
92  public:
93 
95  static const InterfaceID& interfaceID() { return IID_NnClusterizationFactory; };
96 
97  NnClusterizationFactory(const std::string& name,
98  const std::string& n, const IInterface* p);
100 
101  virtual StatusCode initialize() override;
102  virtual StatusCode finalize() override { return StatusCode::SUCCESS; };
103 
104  std::vector<double> estimateNumberOfParticles(const InDet::PixelCluster& pCluster,
105  Amg::Vector3D & beamSpotPosition) const;
106 
107  std::vector<double> estimateNumberOfParticles(const InDet::PixelCluster& pCluster,
108  const Trk::Surface& pixelSurface,
109  const Trk::TrackParameters& trackParsAtSurface) const;
110 
111  /* Public-facing method 1: no track parameters */
112  std::vector<Amg::Vector2D> estimatePositions(const InDet::PixelCluster& pCluster,
113  Amg::Vector3D & beamSpotPosition,
114  std::vector<Amg::MatrixX> & errors,
115  int numberSubClusters) const;
116 
117  /* Public-facing method 1: with track parameters */
118  std::vector<Amg::Vector2D> estimatePositions(const InDet::PixelCluster& pCluster,
119  const Trk::Surface& pixelSurface,
120  const Trk::TrackParameters& trackParsAtSurface,
121  std::vector<Amg::MatrixX> & errors,
122  int numberSubClusters) const;
123 
124  private:
125 
126  // Handling lwtnn inputs
127  typedef std::vector<Eigen::VectorXd> InputVector;
128 
129  /* Estimate number of particles for both with and w/o tracks */
130  /* Method 1: using older TTrainedNetworks */
131  std::vector<double> estimateNumberOfParticlesTTN(const TTrainedNetworkCollection &nn_collection,
132  const std::vector<double>& inputData) const;
133 
134  /* Estimate number of particles for both with and w/o tracks */
135  /* Method 2: using lwtnn for more flexible interfacing with an ordered vector
136  * Vector order MUST match variable order. */
138 
139  /* Estimate position for both with and w/o tracks */
140  /* Method 1: using older TTrainedNetworks */
141  std::vector<Amg::Vector2D> estimatePositionsTTN(
142  const TTrainedNetworkCollection &nn_collection,
143  const std::vector<double>& inputData,
144  const NNinput& input,
145  const InDet::PixelCluster& pCluster,
146  int numberSubClusters,
147  std::vector<Amg::MatrixX> & errors) const;
148 
149  /* Estimate position for both with and w/o tracks */
150  /* Method 2: using lwtnn for more flexible interfacing with an ordered vector
151  * Vector order MUST match variable order. */
152  std::vector<Amg::Vector2D> estimatePositionsLWTNN(
154  NNinput& rawInput,
155  const InDet::PixelCluster& pCluster,
156  int numberSubClusters,
157  std::vector<Amg::MatrixX> & errors) const;
158 
159  // For error formatting in lwtnn cases
160  static double correctedRMSX(double posPixels) ;
161 
162  double correctedRMSY(double posPixels, std::vector<float>& pitches) const;
163 
164  /* algorithmic component */
165  NNinput createInput(const InDet::PixelCluster& pCluster,
166  Amg::Vector3D & beamSpotPosition,
167  double & tanl) const;
168 
170  const Trk::Surface& pixelSurface,
171  const Trk::TrackParameters& trackParsAtSurface,
172  const double tanl) const;
173 
174 
175  std::vector<double> assembleInputRunI(NNinput& input) const;
176 
177 
178  std::vector<double> assembleInputRunII(NNinput& input) const;
179 
181 
182  std::vector<Amg::Vector2D> getPositionsFromOutput(std::vector<double> & output,
183  const NNinput & input,
184  const InDet::PixelCluster& pCluster) const;
185 
186 
187  void getErrorMatrixFromOutput(std::vector<double>& outputX,
188  std::vector<double>& outputY,
189  std::vector<Amg::MatrixX>& errorMatrix,
190  int nParticles) const;
191 
192 
193  Gaudi::Property< std::vector<std::string> > m_nnOrder
194  {this, "NetworkOrder", {
195  "NumberParticles",
196  "ImpactPoints1P",
197  "ImpactPoints2P",
198  "ImpactPoints3P",
199  "ImpactPointErrorsX1",
200  "ImpactPointErrorsX2",
201  "ImpactPointErrorsX3",
202  "ImpactPointErrorsY1",
203  "ImpactPointErrorsY2",
204  "ImpactPointErrorsY3"},
205  "The order in which the networks will appear in the TTrainedNetworkCollection"};
206 
212  static constexpr std::array<std::string_view, kNNetworkTypes> s_nnTypeNames{
213  "NumberParticlesNN",
214  "PositionNN",
215  "ErrorXNN",
216  "ErrorYNN" };
217  static constexpr std::array<unsigned int, kNNetworkTypes> m_nParticleGroup{0U,1U,1U,1U}; // unsigned int
218  static const std::array<std::regex, kNNetworkTypes> m_nnNames;
219 
220  unsigned int m_nParticleNNId{};
221  std::vector< std::vector<unsigned int> > m_NNId{};
222 
223 
224  // Function to be called to assemble the inputs
226 
227  //Calculate flat vector dimension, according to input
228  size_t calculateVectorDimension(const bool useTrackInfo) const;
229 
230  // Function to be called to compute the output
231  using ReturnType = std::vector<Double_t>;
232  using InputType = std::vector<Double_t>;
233  //the following declares a member variable m_calculateOutput which is a function pointer
234  //to a member function of the TTrainedNetwork. Note to anyone brave enough to update this to C++17using std::function:
235  //TTrainedNetwork::calculateNormalized is overloaded so template resolution does not work trivially.
237 
238  ToolHandle<ISiLorentzAngleTool> m_pixelLorentzAngleTool
239  {this, "PixelLorentzAngleTool", "SiLorentzAngleTool/PixelLorentzAngleTool", "Tool to retreive Lorentz angle of Pixel"};
240 
242  {this, "PixelReadoutManager", "PixelReadoutManager", "Pixel readout manager" };
243 
245  {this, "PixelChargeCalibCondData", "PixelChargeCalibCondData", "Output key"};
246 
248  {this, "NnCollectionReadKey", "PixelClusterNN", "The conditions store key for the pixel cluster NNs"};
249 
251  {this, "NnCollectionWithTrackReadKey", "PixelClusterNNWithTrack",
252  "The conditions store key for the pixel cluster NNs which needs tracks as input"};
253 
255  {this, "NnCollectionJSONReadKey", "PixelClusterNNJSON",
256  "The conditions key for the pixel cluster NNs configured via JSON file and accessed with lwtnn"};
257 
258  // this is written into the JSON config "node_index"
259  // this can be found from the LWTNN GraphConfig object used to initalize the collection objects
260  // option size_t index = graph_config.outputs.at("output_node_name").node_index
261  //
262  Gaudi::Property< std::size_t > m_outputNodesPos1
263  {this, "OutputNodePos1", 7,
264  "Output node for the 1 position networks (LWTNN)"};
265 
266  Gaudi::Property< std::vector<std::size_t> > m_outputNodesPos2
267  {this, "OutputNodePos2", { 10, 11 },
268  "List of output nodes for the 2 position network (LWTNN)"};
269 
270  Gaudi::Property< std::vector<std::size_t> > m_outputNodesPos3
271  {this, "OutputNodePos3", { 13, 14, 15 },
272  "List of output nodes for the 3 position networks (LWTNN)"};
273 
274  Gaudi::Property<unsigned int> m_maxSubClusters
275  {this, "MaxSubClusters", 3, "Maximum number of sub cluster supported by the networks." };
276 
277  Gaudi::Property<double> m_correctLorShiftBarrelWithoutTracks
278  {this, "correctLorShiftBarrelWithoutTracks",0.,"Lorentz shift correction factor when evaluating NN without track input."};
279 
280  Gaudi::Property<double> m_correctLorShiftBarrelWithTracks
281  {this, "correctLorShiftBarrelWithTracks",0.,"Lorentz shift correction factor when evaluating NN with track input."};
282 
283  Gaudi::Property<bool> m_useToT
284  {this, "useToT",true,"Use Tot rather than charge." }; // @TODO toggle mode depending on whether a PxielCalibSvc is set ?
285 
286  Gaudi::Property<bool> m_addIBL
287  {this, "addIBL", false, "Also apply to clusters in IBL." };
288 
289  Gaudi::Property<bool> m_doRunI
290  {this, "doRunI", false, "Use runI style network (outputs are not normalised; add pitches; use charge if not m_useToT)"};
291 
292  Gaudi::Property<bool> m_useTTrainedNetworks
293  {this, "useTTrainedNetworks", false, "Use earlier (release-21-like) neural networks stored in ROOT files and accessed via TTrainedNetowrk."};
294 
295  Gaudi::Property<bool> m_useRecenteringNNWithouTracks
296  {this, "useRecenteringNNWithoutTracks",false,"Recenter x position when evaluating NN without track input."};
297 
298  Gaudi::Property<bool> m_useRecenteringNNWithTracks
299  {this, "useRecenteringNNWithTracks",false,"Recenter x position when evaluating NN with track input."};
300 
301  Gaudi::Property<unsigned int> m_sizeX
302  {this, "sizeX",7,"Size of pixel matrix along X"};
303 
304  Gaudi::Property<unsigned int> m_sizeY
305  {this, "sizeY",7,"Size of pixel matrix along Y"};
306 
307  };
308 
309  }//end InDet namespace
310 
311  #endif
InDet::NnClusterizationFactory::m_sizeX
Gaudi::Property< unsigned int > m_sizeX
Definition: NnClusterizationFactory.h:302
InDet::NNinput::rowWeightedPosition
int rowWeightedPosition
Definition: NnClusterizationFactory.h:85
PixelCluster
Definition: Trigger/TrigAccel/TrigCudaFitter/src/PixelCluster.h:8
InDet::NnClusterizationFactory::m_addIBL
Gaudi::Property< bool > m_addIBL
Definition: NnClusterizationFactory.h:287
InDet::NnClusterizationFactory::m_nParticleGroup
static constexpr std::array< unsigned int, kNNetworkTypes > m_nParticleGroup
Definition: NnClusterizationFactory.h:217
TrackParameters.h
InDet::NnClusterizationFactory::m_chargeDataKey
SG::ReadCondHandleKey< PixelChargeCalibCondData > m_chargeDataKey
Definition: NnClusterizationFactory.h:245
InDet::NnClusterizationFactory::estimateNumberOfParticles
std::vector< double > estimateNumberOfParticles(const InDet::PixelCluster &pCluster, Amg::Vector3D &beamSpotPosition) const
Definition: NnClusterizationFactory.cxx:255
InDet::NNinput::sizeX
int sizeX
Definition: NnClusterizationFactory.h:74
InDet::NnClusterizationFactory::m_outputNodesPos1
Gaudi::Property< std::size_t > m_outputNodesPos1
Definition: NnClusterizationFactory.h:263
TTrainedNetworkCollection
Definition: TTrainedNetworkCollection.h:14
InDet::NnClusterizationFactory::m_NNId
std::vector< std::vector< unsigned int > > m_NNId
Definition: NnClusterizationFactory.h:221
InDet::NnClusterizationFactory::initialize
virtual StatusCode initialize() override
Definition: NnClusterizationFactory.cxx:67
InDet
Primary Vertex Finder.
Definition: VP1ErrorUtils.h:36
InDet::NNinput::useTrackInfo
bool useTrackInfo
Definition: NnClusterizationFactory.h:83
InDet::NnClusterizationFactory::finalize
virtual StatusCode finalize() override
Definition: NnClusterizationFactory.h:102
InDet::NnClusterizationFactory::estimatePositionsTTN
std::vector< Amg::Vector2D > estimatePositionsTTN(const TTrainedNetworkCollection &nn_collection, const std::vector< double > &inputData, const NNinput &input, const InDet::PixelCluster &pCluster, int numberSubClusters, std::vector< Amg::MatrixX > &errors) const
Definition: NnClusterizationFactory.cxx:414
Surface
Definition: Trigger/TrigAccel/TrigCudaFitter/src/Surface.h:8
InDet::NNinput::etaModule
float etaModule
Definition: NnClusterizationFactory.h:82
InDet::NnClusterizationFactory::~NnClusterizationFactory
~NnClusterizationFactory()=default
InDet::NNinput::sizeY
int sizeY
Definition: NnClusterizationFactory.h:75
InDet::NNinput
Definition: NnClusterizationFactory.h:70
InDet::NnClusterizationFactory::m_maxSubClusters
Gaudi::Property< unsigned int > m_maxSubClusters
Definition: NnClusterizationFactory.h:275
LWTNNCollection.h
ISiLorentzAngleTool.h
InDet::NnClusterizationFactory::eigenInput
InputVector eigenInput(NNinput &input) const
Definition: NnClusterizationFactory.cxx:213
InDet::NnClusterizationFactory::m_nnNames
static const std::array< std::regex, kNNetworkTypes > m_nnNames
Definition: NnClusterizationFactory.h:218
InDet::NnClusterizationFactory::addTrackInfoToInput
void addTrackInfoToInput(NNinput &input, const Trk::Surface &pixelSurface, const Trk::TrackParameters &trackParsAtSurface, const double tanl) const
Definition: NnClusterizationFactory.cxx:741
InDet::NnClusterizationFactory::estimatePositionsLWTNN
std::vector< Amg::Vector2D > estimatePositionsLWTNN(NnClusterizationFactory::InputVector &input, NNinput &rawInput, const InDet::PixelCluster &pCluster, int numberSubClusters, std::vector< Amg::MatrixX > &errors) const
Definition: NnClusterizationFactory.cxx:475
InDet::NnClusterizationFactory::ENetworkType
ENetworkType
Definition: NnClusterizationFactory.h:207
InDet::NnClusterizationFactory::m_assembleInput
std::vector< double >(InDet::NnClusterizationFactory::* m_assembleInput)(NNinput &input) const
Definition: NnClusterizationFactory.h:225
InDet::NnClusterizationFactory::assembleInputRunI
std::vector< double > assembleInputRunI(NNinput &input) const
Definition: NnClusterizationFactory.cxx:177
InDet::NnClusterizationFactory::m_useTTrainedNetworks
Gaudi::Property< bool > m_useTTrainedNetworks
Definition: NnClusterizationFactory.h:293
GeoPrimitives.h
InDet::NnClusterizationFactory::m_readKeyJSON
SG::ReadCondHandleKey< LWTNNCollection > m_readKeyJSON
Definition: NnClusterizationFactory.h:255
InDet::NnClusterizationFactory::correctedRMSX
static double correctedRMSX(double posPixels)
Definition: NnClusterizationFactory.cxx:556
InDet::NNinput::ClusterPixLayer
int ClusterPixLayer
Definition: NnClusterizationFactory.h:78
InDet::NnClusterizationFactory::getPositionsFromOutput
std::vector< Amg::Vector2D > getPositionsFromOutput(std::vector< double > &output, const NNinput &input, const InDet::PixelCluster &pCluster) const
Definition: NnClusterizationFactory.cxx:650
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
InDet::NnClusterizationFactory::InputType
std::vector< Double_t > InputType
Definition: NnClusterizationFactory.h:232
InDet::NNinput::matrixOfToT
std::vector< std::vector< float > > matrixOfToT
Definition: NnClusterizationFactory.h:76
InDet::NnClusterizationFactory::getErrorMatrixFromOutput
void getErrorMatrixFromOutput(std::vector< double > &outputX, std::vector< double > &outputY, std::vector< Amg::MatrixX > &errorMatrix, int nParticles) const
Definition: NnClusterizationFactory.cxx:579
beamspotman.n
n
Definition: beamspotman.py:731
InDet::NNinput::ClusterPixBarrelEC
int ClusterPixBarrelEC
Definition: NnClusterizationFactory.h:79
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
InDet::NnClusterizationFactory::m_pixelReadout
ServiceHandle< InDetDD::IPixelReadoutManager > m_pixelReadout
Definition: NnClusterizationFactory.h:242
InDet::NnClusterizationFactory::m_readKeyWithTrack
SG::ReadCondHandleKey< TTrainedNetworkCollection > m_readKeyWithTrack
Definition: NnClusterizationFactory.h:251
PlotPulseshapeFromCool.input
input
Definition: PlotPulseshapeFromCool.py:106
AthAlgTool.h
TTrainedNetworkCollection.h
TTrainedNetwork::calculateNormalized
DVec calculateNormalized(const DVec &input) const
Definition: Tracking/TrkUtilityPackages/TrkNeuralNetworkUtils/src/TTrainedNetwork.cxx:267
lwt
Definition: NnClusterizationFactory.h:52
InDet::NnClusterizationFactory::kPositionNN
@ kPositionNN
Definition: NnClusterizationFactory.h:208
Trk::ParametersBase
Definition: ParametersBase.h:55
InDet::NnClusterizationFactory::s_nnTypeNames
static constexpr std::array< std::string_view, kNNetworkTypes > s_nnTypeNames
Definition: NnClusterizationFactory.h:212
InDet::NnClusterizationFactory::estimateNumberOfParticlesTTN
std::vector< double > estimateNumberOfParticlesTTN(const TTrainedNetworkCollection &nn_collection, const std::vector< double > &inputData) const
Definition: NnClusterizationFactory.cxx:303
IPixelReadoutManager.h
TTrainedNetwork
Definition: InnerDetector/InDetCalibAlgs/PixelCalibAlgs/NNClusteringCalibration_RunI/TTrainedNetwork.h:21
ReadCondHandleKey.h
mergePhysValFiles.errors
list errors
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:43
merge.output
output
Definition: merge.py:17
InDet::NnClusterizationFactory::m_readKeyWithoutTrack
SG::ReadCondHandleKey< TTrainedNetworkCollection > m_readKeyWithoutTrack
Definition: NnClusterizationFactory.h:248
InDet::NnClusterizationFactory::m_useRecenteringNNWithTracks
Gaudi::Property< bool > m_useRecenteringNNWithTracks
Definition: NnClusterizationFactory.h:299
EventPrimitives.h
InDet::NnClusterizationFactory::NnClusterizationFactory
NnClusterizationFactory(const std::string &name, const std::string &n, const IInterface *p)
Definition: NnClusterizationFactory.cxx:61
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
InDet::NnClusterizationFactory::m_nParticleNNId
unsigned int m_nParticleNNId
Definition: NnClusterizationFactory.h:220
InDet::NnClusterizationFactory::m_useToT
Gaudi::Property< bool > m_useToT
Definition: NnClusterizationFactory.h:284
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
InDet::NNinput::columnWeightedPosition
int columnWeightedPosition
Definition: NnClusterizationFactory.h:84
InDet::NnClusterizationFactory::correctedRMSY
double correctedRMSY(double posPixels, std::vector< float > &pitches) const
Definition: NnClusterizationFactory.cxx:564
InDet::NnClusterizationFactory
Definition: NnClusterizationFactory.h:90
InDet::NnClusterizationFactory::m_correctLorShiftBarrelWithoutTracks
Gaudi::Property< double > m_correctLorShiftBarrelWithoutTracks
Definition: NnClusterizationFactory.h:278
InDet::NnClusterizationFactory::estimateNumberOfParticlesLWTNN
std::vector< double > estimateNumberOfParticlesLWTNN(NnClusterizationFactory::InputVector &input) const
Definition: NnClusterizationFactory.cxx:326
InDet::NNinput::vectorOfPitchesY
std::vector< float > vectorOfPitchesY
Definition: NnClusterizationFactory.h:77
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
InDet::NnClusterizationFactory::m_pixelLorentzAngleTool
ToolHandle< ISiLorentzAngleTool > m_pixelLorentzAngleTool
Definition: NnClusterizationFactory.h:239
InDet::NnClusterizationFactory::kNumberParticlesNN
@ kNumberParticlesNN
Definition: NnClusterizationFactory.h:207
InDet::NNinput::phi
float phi
Definition: NnClusterizationFactory.h:80
InDet::PixelCluster
Definition: InnerDetector/InDetRecEvent/InDetPrepRawData/InDetPrepRawData/PixelCluster.h:49
SG::ReadCondHandleKey< PixelChargeCalibCondData >
InDet::NnClusterizationFactory::interfaceID
static const InterfaceID & interfaceID()
AlgTool interface methods.
Definition: NnClusterizationFactory.h:95
InDet::NnClusterizationFactory::m_outputNodesPos3
Gaudi::Property< std::vector< std::size_t > > m_outputNodesPos3
Definition: NnClusterizationFactory.h:271
InDet::NnClusterizationFactory::m_correctLorShiftBarrelWithTracks
Gaudi::Property< double > m_correctLorShiftBarrelWithTracks
Definition: NnClusterizationFactory.h:281
InDet::NnClusterizationFactory::m_sizeY
Gaudi::Property< unsigned int > m_sizeY
Definition: NnClusterizationFactory.h:305
InDet::NnClusterizationFactory::m_calculateOutput
ReturnType(::TTrainedNetwork::* m_calculateOutput)(const InputType &input) const
Definition: NnClusterizationFactory.h:236
InDet::NnClusterizationFactory::assembleInputRunII
std::vector< double > assembleInputRunII(NNinput &input) const
Definition: NnClusterizationFactory.cxx:155
InDetDD
Message Stream Member.
Definition: FakeTrackBuilder.h:8
InDet::NnClusterizationFactory::m_useRecenteringNNWithouTracks
Gaudi::Property< bool > m_useRecenteringNNWithouTracks
Definition: NnClusterizationFactory.h:296
InDet::NnClusterizationFactory::kNNetworkTypes
@ kNNetworkTypes
Definition: NnClusterizationFactory.h:211
InDet::NnClusterizationFactory::m_nnOrder
Gaudi::Property< std::vector< std::string > > m_nnOrder
Definition: NnClusterizationFactory.h:194
InDet::NnClusterizationFactory::calculateVectorDimension
size_t calculateVectorDimension(const bool useTrackInfo) const
Definition: NnClusterizationFactory.cxx:959
InDet::NnClusterizationFactory::m_outputNodesPos2
Gaudi::Property< std::vector< std::size_t > > m_outputNodesPos2
Definition: NnClusterizationFactory.h:267
PixelModuleData.h
Store pixel constant parameters in PixelModuleData.
IOVSvcDefs.h
defines and typedefs for IOVSvc
InDet::NNinput::theta
float theta
Definition: NnClusterizationFactory.h:81
InDet::NnClusterizationFactory::m_doRunI
Gaudi::Property< bool > m_doRunI
Definition: NnClusterizationFactory.h:290
AthAlgTool
Definition: AthAlgTool.h:26
InDet::NnClusterizationFactory::kErrorYNN
@ kErrorYNN
Definition: NnClusterizationFactory.h:210
InDet::NnClusterizationFactory::InputVector
std::vector< Eigen::VectorXd > InputVector
Definition: NnClusterizationFactory.h:127
Trk::Surface
Definition: Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:75
InDet::NnClusterizationFactory::estimatePositions
std::vector< Amg::Vector2D > estimatePositions(const InDet::PixelCluster &pCluster, Amg::Vector3D &beamSpotPosition, std::vector< Amg::MatrixX > &errors, int numberSubClusters) const
Definition: NnClusterizationFactory.cxx:357
xAOD::bool
setBGCode setTAP setLVL2ErrorBits bool
Definition: TrigDecision_v1.cxx:60
PixelChargeCalibCondData.h
InDet::NnClusterizationFactory::createInput
NNinput createInput(const InDet::PixelCluster &pCluster, Amg::Vector3D &beamSpotPosition, double &tanl) const
Definition: NnClusterizationFactory.cxx:760
InDet::NnClusterizationFactory::kErrorXNN
@ kErrorXNN
Definition: NnClusterizationFactory.h:209
InDet::NnClusterizationFactory::ReturnType
std::vector< Double_t > ReturnType
Definition: NnClusterizationFactory.h:231
ServiceHandle< InDetDD::IPixelReadoutManager >