Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
FPGATrackSimMapMakerAlg.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef FPGATRACKSIM_MAPMAKERALG_H
6 #define FPGATRACKSIM_MAPMAKERALG_H
7 
8 /*
9  * Produce Map files from wrappers.
10  */
11 
12 #include "AthenaBaseComps/AthAlgorithm.h" //inheritance
13 #include "GaudiKernel/ToolHandle.h" //member
14 #include "FPGATrackSimObjects/FPGATrackSimTypes.h" //enum classes (e.g. SiliconTech, DetectorZone) in global namespace :-(
16 #include "FPGATrackSimInput/IFPGATrackSimEventInputHeaderTool.h" //tool handle template param
18 
19 #include <fstream> //ofstream members
20 #include <tuple> //typedef
21 #include <map> //member
22 #include <set> //member
23 #include <vector> //member
24 
25 
27 class FPGATrackSimHit;
28 class TFile;
29 
30 
31 
33 {
34  public:
35  typedef std::tuple<SiliconTech, DetectorZone, int, int, int> FPGATrackSimModuleId;
36  //
37  FPGATrackSimMapMakerAlg(const std::string& name, ISvcLocator* pSvcLocator);
38  virtual ~FPGATrackSimMapMakerAlg() = default;
39 
40  StatusCode initialize() override;
41  StatusCode execute() override;
42  StatusCode finalize() override;
43 
44  private:
45  // Handles
46  ToolHandle<IFPGATrackSimEventInputHeaderTool> m_hitInputTool { this, "InputTool", "FPGATrackSimSGToRawHitsTool/FPGATrackSimInputTool", "HitInput Tool" };
47  ServiceHandle<IFPGATrackSimEventSelectionSvc> m_evtSel {this, "eventSelector", "FPGATrackSimEventSelectionSvc", "Event selection Svc"};
48 
50 
51  struct Module {
54  int lyr{};
55  int eta{};
56  int phi{};
57  std::vector<int> numTracks; // used for trimming, indexed by slice
58  int plane{-1};
59  Module() = default;
62  return std::tie(det,bec,lyr,eta,phi);
63  }
64  bool operator==(const Module& m) const
65  {
66  return std::tie(det,bec,lyr,eta,phi) == std::tie(m.det,m.bec,m.lyr,m.eta,m.phi);
67  }
68  bool operator<(const Module & m) const
69  {
70  return std::tie(det,bec,lyr,eta,phi) < std::tie(m.det,m.bec,m.lyr,m.eta,m.phi);
71  }
72  bool operator>(const Module & m) const
73  {
74  return std::tie(det,bec,lyr,eta,phi) > std::tie(m.det,m.bec,m.lyr,m.eta,m.phi);
75  }
76  };
77 
78  // Flags
79  Gaudi::Property<int> m_maxEvents {this, "maxEvents", 10000, "Max Events"};
80  Gaudi::Property<int> m_region {this, "region", 0, "Region"};
81  Gaudi::Property<float> m_trim {this, "trim", 0.1, "trim modules with less than given percent of tracks"};
82  Gaudi::Property<std::string> m_outFileName {this, "OutFileName", "", "naming convention for maps"};
83  Gaudi::Property<std::string> m_keystring {this, "KeyString", "strip,barrel,2", "key layer to use for subrmap"};
84  Gaudi::Property<std::string> m_keystring2 {this, "KeyString2", "", "second key layer for 2D slicing"};
85  Gaudi::Property<int> m_nSlices {this, "nSlices", -1, "default is full granularity/maximum number of slices possible"};
86  Gaudi::Property<float> m_globalTrim {this, "globalTrim", 0.1, "Trimming applied globally to the key layer before determining slice boundaries"};
87  Gaudi::Property<std::string> m_description {this, "description", "", "tag description"};
88  Gaudi::Property<std::string> m_geoTag {this, "GeometryVersion", "ATLAS-P2-ITK-22-02-00", "Geometry tag that this set of maps is for. TODO can we store/read from wrappers?"};
89  Gaudi::Property<bool> m_remapModules {this, "remapModules", false, "Allow maps to be drawn that slice modules more finely, by remapping module indices"};
90  Gaudi::Property<bool> m_drawSlices {this, "drawSlices", false, "Draw the huge 2D slice histograms"};
91 
92  // Instance of the module remap object.
94 
95  // For Subregion map making (zslice map)
96  std::map<FPGATrackSimModuleId, Module> m_modules;
97  std::map<int, std::vector<Module*>> m_track2modules, m_slice2modules;
98  std::map<int, int> m_track2slice;
99 
100  // Event storage
101  std::vector<FPGATrackSimHit> m_pbHits, m_peHits, m_sbHits, m_seHits, m_allHits;
102 
103  int m_pbmax = -1; // pixel barrel largest layer index
104  int m_sbmax = -1;
105  std::vector<int> m_pemax = {-1,-1}; // [positive endcap maxLayer, negative endcap maxLayer]
106  std::vector<int> m_semax = {-1,-1};
107 
108 
109  /* 3D vector that assigns planes for pmap. indices are [reg][plane][physical layers]
110  -> first two chars are DetType and DetZone, pb = pixel barrel, se = strip endcap
111  -> then the layer number is given, followed by a +/- if positive/negative endcap
112  -> -1 means the layer is not used
113  -> Example: se67+ = Strip Positve Endcap layer 67
114  */
115  const std::vector<std::vector<std::string>>* m_planes{};
116  const std::vector<std::vector<std::string>>* m_planes2{};
117 
118  // Fully generic "logical layers". these assign all pixel layers -> first stage and all strip layers -> second stage.
119  // This won't scale well for the parts of the forward region that actually need to extrapolate into the second stage, but
120  // it's good enough for now.
121  const std::vector<std::vector<std::string>> m_planes_generic = {
122  {"pb0", "pe0+","pe1+","pe2+","pe3+","pe4+","pe5+", "pe6+", "pe7+", "pe8+", "pe9+","pe10+","pe11+", "pe12+", "pe13+", "pe14+", "pe15+", "pe16+", },
123  {"pb1", "pe19+", "pe23+", "pe25+", },
124  {"pb2", "pe31+", "pe32+", "pe33+", "pe34+", "pe35+", "pe36+", "pe37+", "pe38+", "pe39+", "pe40+",
125  "pe41+", "pe42+", "pe43+", "pe44+", "pe45+", "pe46+",
126  "pe47+", "pe48+", "pe49+", "pe50+", "pe51+", "pe52+", "pe53+", "pe54+", "pe55+", "pe56+", },
127  {"pb3", "pe57+","pe58+","pe59+", "pe60+", "pe61+", "pe62+", "pe63+", "pe64+", "pe65+", "pe66+","pe67+","pe68+","pe69+"},
128  {"pb4", "pe70+","pe71+","pe72+", "pe73+", "pe74+", "pe75+", "pe76+", "pe77+", "pe78+", "pe79+",
129  "pe80+","pe81+","pe82+", "pe83+", "pe84+", "pe85+", "pe86+", "pe87+", "pe88+", "pe89+",}
130  };
131 
132  // This is the second stage version.
133  const std::vector<std::vector<std::string>> m_planes2_generic = {
134  {"pb0", "pe0+","pe1+","pe2+","pe3+","pe4+","pe5+", "pe6+", "pe7+", "pe8+", "pe9+","pe10+","pe11+", "pe12+", "pe13+", "pe14+", "pe15+", "pe16+", },
135  {"pb1", "pe19+", "pe23+", "pe25+", },
136  {"pb2", "pe31+", "pe32+", "pe33+", "pe34+", "pe35+", "pe36+", "pe37+", "pe38+", "pe39+", "pe40+",
137  "pe41+", "pe42+", "pe43+", "pe44+", "pe45+", "pe46+",
138  "pe47+", "pe48+", "pe49+", "pe50+", "pe51+", "pe52+", "pe53+", "pe54+", "pe55+", "pe56+", },
139  {"pb3", "pe57+","pe58+","pe59+", "pe60+", "pe61+", "pe62+", "pe63+", "pe64+", "pe65+", "pe66+","pe67+","pe68+","pe69+"},
140  {"pb4", "pe70+","pe71+","pe72+", "pe73+", "pe74+", "pe75+", "pe76+", "pe77+", "pe78+", "pe79+",
141  "pe80+","pe81+","pe82+", "pe83+", "pe84+", "pe85+", "pe86+", "pe87+", "pe88+", "pe89+",},
142  {"sb0", "se4+", "se0+"},
143  {"sb1", "se5+", "se1+"},
144  {"sb2", "se6+", "se2+"},
145  {"sb3", "se7+", "se3+"},
146  {"sb4", "se8+"},
147  {"sb5", "se9+"},
148  {"sb6", "se10+"},
149  {"sb7", "se11+"}
150  };
151 
152  // The generic assignments are the defaults-- but these are actually controlled from python.
153  Gaudi::Property<std::vector<std::vector<std::string>>> m_overridePlanes {this, "planes", m_planes_generic, "Logical layer assignments" };
154  Gaudi::Property<std::vector<std::vector<std::string>>> m_overridePlanes2 {this, "planes2", m_planes2_generic, "Logical layer assignments" };
155 
156  std::map <std::string, std::set<int>> m_keylayer; // key layer used in z-slicing, defined by user with KeyString run arg and set using parseKeyString()
157  std::map <std::string, std::set<int>> m_keylayer2; // for 2D slicing
158 
159  bool m_key2 = false;
160  std::map <int, int> m_key_etamods; // eta module values of the key layer. each etamod = 1 slice for full granulatiy slicing
161  std::set <int> m_key_etamods2; // for 2D slicing
162  std::set <int> m_usedTracks; // tracks that hit the key layer
163  std::vector <std::vector < std::vector<float> > > m_radii; // used to calculate mean radii per layer for each slice, [slice][plane][hit]
164  std::vector <std::vector < std::vector<float> > > m_z; // used to calculate median z per layer for each slice, [slice][plane][hit]
165  // output map files and monitoring
167  std::unique_ptr<TFile> m_monitorFile{};
168 
169 
170  // TODO make automatic
171  const std::vector<uint32_t> m_diskIndex = {0,17,47,58,66}; // number of disks per layer in ATLAS-P2-ITK-22-02-00: [17, 30, 11, 8, 9] --> [0,17,47,58,66]
172 
173  StatusCode readInputs(bool & done);
174  StatusCode writePmapAndRmap(std::vector<FPGATrackSimHit> const & pbHits, std::vector<FPGATrackSimHit> const & peHits, std::vector<FPGATrackSimHit> const & sbHits, std::vector<FPGATrackSimHit> const & seHits, int region);
175  StatusCode writeSubrmap(std::vector<FPGATrackSimHit> const & allHits);
176  StatusCode writeEtaPatterns(); // writes txt file used in the FPGATrackSimEtaPatternFilterTool to filter roads based on eta module
177  StatusCode writeRadiiFile(std::vector<FPGATrackSimHit> const & allHits); // writes txt file with mean radii per layer for each slice, used in 1D Hough Transform
178  StatusCode writeMedianZFile(std::vector<FPGATrackSimHit> const & allHits); // writes txt file with median z per layer for each slice, used in 1D Hough Transform
179 
180  // Helpers
181  void drawSlices(std::vector<FPGATrackSimHit> const & allHits);
182  std::map <std::string, SiliconTech> m_det2tech = { {"pixel",SiliconTech::pixel}, {"strip",SiliconTech::strip} }; // for parsing KeyString
183  std::map <std::string, DetectorZone> m_bec2zone = { {"barrel",DetectorZone::barrel}, {"posEndcap",DetectorZone::posEndcap}, {"negEndcap",DetectorZone::negEndcap} };
184  bool isOnKeyLayer(int keynum, SiliconTech det, DetectorZone bec, int lyr); // returns if hit is on a key layer or not. keynum is either 1 or 2 for the first or second keylayer (if using 2D slicing)
185  int findPlane(const std::vector<std::vector<std::string>>* planes, const std::string& test);
186  std::string makeRmapLines(std::vector<FPGATrackSimHit> const & hits, SiliconTech det, DetectorZone bec, int max);
187  std::string makeSubrmapLines(std::vector<Module*> const & allmods, SiliconTech det, DetectorZone bec, int max);
188  void parseKeyString(); // sets m_keylayer and m_keylayer2 based on the Keystring and Keystring2 run args
189 
190 };
191 
192 #endif // FPGATRACKSIMMAPMAKERALG_H
FPGATrackSimMapMakerAlg::m_subrmap
std::ofstream m_subrmap
Definition: FPGATrackSimMapMakerAlg.h:166
FPGATrackSimMapMakerAlg::m_rmap
std::ofstream m_rmap
Definition: FPGATrackSimMapMakerAlg.h:166
FPGATrackSimMapMakerAlg::Module::lyr
int lyr
Definition: FPGATrackSimMapMakerAlg.h:54
FPGATrackSimMapMakerAlg::makeSubrmapLines
std::string makeSubrmapLines(std::vector< Module * > const &allmods, SiliconTech det, DetectorZone bec, int max)
Definition: FPGATrackSimMapMakerAlg.cxx:912
FPGATrackSimMapMakerAlg::m_description
Gaudi::Property< std::string > m_description
Definition: FPGATrackSimMapMakerAlg.h:87
FPGATrackSimMapMakerAlg::Module::operator>
bool operator>(const Module &m) const
Definition: FPGATrackSimMapMakerAlg.h:72
FPGATrackSimMapMakerAlg::m_track2modules
std::map< int, std::vector< Module * > > m_track2modules
Definition: FPGATrackSimMapMakerAlg.h:97
TRTCalib_Extractor.hits
hits
Definition: TRTCalib_Extractor.py:35
SiliconTech::strip
@ strip
FPGATrackSimMapMakerAlg::m_outFileName
Gaudi::Property< std::string > m_outFileName
Definition: FPGATrackSimMapMakerAlg.h:82
python.SystemOfUnits.m
int m
Definition: SystemOfUnits.py:91
FPGATrackSimMapMakerAlg::m_maxEvents
Gaudi::Property< int > m_maxEvents
Definition: FPGATrackSimMapMakerAlg.h:79
FPGATrackSimMapMakerAlg::m_monitorFile
std::unique_ptr< TFile > m_monitorFile
Definition: FPGATrackSimMapMakerAlg.h:167
FPGATrackSimMapMakerAlg::Module::det
SiliconTech det
Definition: FPGATrackSimMapMakerAlg.h:52
FPGATrackSimMapMakerAlg::drawSlices
void drawSlices(std::vector< FPGATrackSimHit > const &allHits)
Definition: FPGATrackSimMapMakerAlg.cxx:733
FPGATrackSimMapMakerAlg::m_evtSel
ServiceHandle< IFPGATrackSimEventSelectionSvc > m_evtSel
Definition: FPGATrackSimMapMakerAlg.h:47
ParticleGun_SamplingFraction.bec
int bec
Definition: ParticleGun_SamplingFraction.py:89
TRTCalib_Extractor.det
det
Definition: TRTCalib_Extractor.py:36
FPGATrackSimMapMakerAlg::initialize
StatusCode initialize() override
Definition: FPGATrackSimMapMakerAlg.cxx:23
DetectorZone::posEndcap
@ posEndcap
FPGATrackSimMapMakerAlg::Module::Module
Module()=default
max
constexpr double max()
Definition: ap_fixedTest.cxx:33
FPGATrackSimMapMakerAlg::isOnKeyLayer
bool isOnKeyLayer(int keynum, SiliconTech det, DetectorZone bec, int lyr)
Definition: FPGATrackSimMapMakerAlg.cxx:762
FPGATrackSimMapMakerAlg::m_globalTrim
Gaudi::Property< float > m_globalTrim
Definition: FPGATrackSimMapMakerAlg.h:86
FPGATrackSimMapMakerAlg::m_sbHits
std::vector< FPGATrackSimHit > m_sbHits
Definition: FPGATrackSimMapMakerAlg.h:101
FPGATrackSimMapMakerAlg::m_det2tech
std::map< std::string, SiliconTech > m_det2tech
Definition: FPGATrackSimMapMakerAlg.h:182
FPGATrackSimMapMakerAlg::readInputs
StatusCode readInputs(bool &done)
Definition: FPGATrackSimMapMakerAlg.cxx:94
FPGATrackSimMapMakerAlg::m_eventHeader
FPGATrackSimEventInputHeader m_eventHeader
Definition: FPGATrackSimMapMakerAlg.h:49
FPGATrackSimMapMakerAlg::m_hitInputTool
ToolHandle< IFPGATrackSimEventInputHeaderTool > m_hitInputTool
Definition: FPGATrackSimMapMakerAlg.h:46
FPGATrackSimMapMakerAlg::m_pbHits
std::vector< FPGATrackSimHit > m_pbHits
Definition: FPGATrackSimMapMakerAlg.h:101
FPGATrackSimMapMakerAlg::m_pmap
std::ofstream m_pmap
Definition: FPGATrackSimMapMakerAlg.h:166
FPGATrackSimMapMakerAlg::FPGATrackSimModuleId
std::tuple< SiliconTech, DetectorZone, int, int, int > FPGATrackSimModuleId
Definition: FPGATrackSimMapMakerAlg.h:35
TrigInDetValidation_Base.test
test
Definition: TrigInDetValidation_Base.py:147
FPGATrackSimMapMakerAlg::m_planes2
const std::vector< std::vector< std::string > > * m_planes2
Definition: FPGATrackSimMapMakerAlg.h:116
FPGATrackSimMapMakerAlg::Module::operator<
bool operator<(const Module &m) const
Definition: FPGATrackSimMapMakerAlg.h:68
FPGATrackSimMapMakerAlg::m_peHits
std::vector< FPGATrackSimHit > m_peHits
Definition: FPGATrackSimMapMakerAlg.h:101
FPGATrackSimMapMakerAlg::Module::moduleId
FPGATrackSimModuleId moduleId() const
Definition: FPGATrackSimMapMakerAlg.h:61
FPGATrackSimMapMakerAlg::m_pbmax
int m_pbmax
Definition: FPGATrackSimMapMakerAlg.h:103
FPGATrackSimMapMakerAlg::writePmapAndRmap
StatusCode writePmapAndRmap(std::vector< FPGATrackSimHit > const &pbHits, std::vector< FPGATrackSimHit > const &peHits, std::vector< FPGATrackSimHit > const &sbHits, std::vector< FPGATrackSimHit > const &seHits, int region)
Definition: FPGATrackSimMapMakerAlg.cxx:183
FPGATrackSimMapMakerAlg::~FPGATrackSimMapMakerAlg
virtual ~FPGATrackSimMapMakerAlg()=default
FPGATrackSimMapMakerAlg::m_track2slice
std::map< int, int > m_track2slice
Definition: FPGATrackSimMapMakerAlg.h:98
FPGATrackSimHit
Definition: FPGATrackSimHit.h:41
FPGATrackSimMapMakerAlg::m_keylayer2
std::map< std::string, std::set< int > > m_keylayer2
Definition: FPGATrackSimMapMakerAlg.h:157
FPGATrackSimMapMakerAlg::m_diskIndex
const std::vector< uint32_t > m_diskIndex
Definition: FPGATrackSimMapMakerAlg.h:171
FPGATrackSimMapMakerAlg::writeRadiiFile
StatusCode writeRadiiFile(std::vector< FPGATrackSimHit > const &allHits)
Definition: FPGATrackSimMapMakerAlg.cxx:564
AthAlgorithm.h
FPGATrackSimMapMakerAlg::m_key_etamods
std::map< int, int > m_key_etamods
Definition: FPGATrackSimMapMakerAlg.h:160
FPGATrackSimMapMakerAlg::m_sbmax
int m_sbmax
Definition: FPGATrackSimMapMakerAlg.h:104
FPGATrackSimMapMakerAlg::findPlane
int findPlane(const std::vector< std::vector< std::string >> *planes, const std::string &test)
Definition: FPGATrackSimMapMakerAlg.cxx:777
FPGATrackSimMapMakerAlg::m_usedTracks
std::set< int > m_usedTracks
Definition: FPGATrackSimMapMakerAlg.h:162
FPGATrackSimMapMakerAlg::m_keystring2
Gaudi::Property< std::string > m_keystring2
Definition: FPGATrackSimMapMakerAlg.h:84
FPGATrackSimMapMakerAlg::m_zedfile
std::ofstream m_zedfile
Definition: FPGATrackSimMapMakerAlg.h:166
SiliconTech
SiliconTech
Definition: FPGATrackSimTypes.h:25
FPGATrackSimMapMakerAlg::makeRmapLines
std::string makeRmapLines(std::vector< FPGATrackSimHit > const &hits, SiliconTech det, DetectorZone bec, int max)
Definition: FPGATrackSimMapMakerAlg.cxx:789
FPGATrackSimMapMakerAlg::m_etapat
std::ofstream m_etapat
Definition: FPGATrackSimMapMakerAlg.h:166
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
FPGATrackSimMapMakerAlg::m_radii
std::vector< std::vector< std::vector< float > > > m_radii
Definition: FPGATrackSimMapMakerAlg.h:163
FPGATrackSimMapMakerAlg::m_drawSlices
Gaudi::Property< bool > m_drawSlices
Definition: FPGATrackSimMapMakerAlg.h:90
FPGATrackSimMapMakerAlg::Module::Module
Module(SiliconTech det, DetectorZone bec, int lyr, int eta, int phi)
Definition: FPGATrackSimMapMakerAlg.h:60
FPGATrackSimMapMakerAlg::m_keylayer
std::map< std::string, std::set< int > > m_keylayer
Definition: FPGATrackSimMapMakerAlg.h:156
FPGATrackSimEventInputHeader
Definition: FPGATrackSimEventInputHeader.h:22
FPGATrackSimMapMakerAlg::Module::phi
int phi
Definition: FPGATrackSimMapMakerAlg.h:56
FPGATrackSimMapMakerAlg::writeEtaPatterns
StatusCode writeEtaPatterns()
Definition: FPGATrackSimMapMakerAlg.cxx:507
FPGATrackSimMapMakerAlg::Module::bec
DetectorZone bec
Definition: FPGATrackSimMapMakerAlg.h:53
FPGATrackSimMapMakerAlg::m_nSlices
Gaudi::Property< int > m_nSlices
Definition: FPGATrackSimMapMakerAlg.h:85
FPGATrackSimMapMakerAlg::m_remapModules
Gaudi::Property< bool > m_remapModules
Definition: FPGATrackSimMapMakerAlg.h:89
AthAlgorithm
Definition: AthAlgorithm.h:47
FPGATrackSimMapMakerAlg::m_bec2zone
std::map< std::string, DetectorZone > m_bec2zone
Definition: FPGATrackSimMapMakerAlg.h:183
FPGATrackSimMapMakerAlg::m_overridePlanes
Gaudi::Property< std::vector< std::vector< std::string > > > m_overridePlanes
Definition: FPGATrackSimMapMakerAlg.h:153
FPGATrackSimMapMakerAlg::m_keystring
Gaudi::Property< std::string > m_keystring
Definition: FPGATrackSimMapMakerAlg.h:83
FPGATrackSimMapMakerAlg::m_key_etamods2
std::set< int > m_key_etamods2
Definition: FPGATrackSimMapMakerAlg.h:161
FPGATrackSimMapMakerAlg::Module
Definition: FPGATrackSimMapMakerAlg.h:51
FPGATrackSimEventInputHeader.h
FPGATrackSimMapMakerAlg::writeMedianZFile
StatusCode writeMedianZFile(std::vector< FPGATrackSimHit > const &allHits)
Definition: FPGATrackSimMapMakerAlg.cxx:634
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
FPGATrackSimMapMakerAlg::m_z
std::vector< std::vector< std::vector< float > > > m_z
Definition: FPGATrackSimMapMakerAlg.h:164
FPGATrackSimMapMakerAlg::m_key2
bool m_key2
Definition: FPGATrackSimMapMakerAlg.h:159
FPGATrackSimMapMakerAlg::m_trim
Gaudi::Property< float > m_trim
Definition: FPGATrackSimMapMakerAlg.h:81
FPGATrackSimMapMakerAlg::FPGATrackSimMapMakerAlg
FPGATrackSimMapMakerAlg(const std::string &name, ISvcLocator *pSvcLocator)
Definition: FPGATrackSimMapMakerAlg.cxx:17
FPGATrackSimMapMakerAlg::finalize
StatusCode finalize() override
Definition: FPGATrackSimMapMakerAlg.cxx:715
FPGATrackSimMapMakerAlg::Module::plane
int plane
Definition: FPGATrackSimMapMakerAlg.h:58
FPGATrackSimMapMakerAlg::Module::eta
int eta
Definition: FPGATrackSimMapMakerAlg.h:55
FPGATrackSimMapMakerAlg::m_geoTag
Gaudi::Property< std::string > m_geoTag
Definition: FPGATrackSimMapMakerAlg.h:88
FPGATrackSimMapMakerAlg::m_planes_generic
const std::vector< std::vector< std::string > > m_planes_generic
Definition: FPGATrackSimMapMakerAlg.h:121
DetectorZone::negEndcap
@ negEndcap
FPGATrackSimMapMakerAlg::m_planes
const std::vector< std::vector< std::string > > * m_planes
Definition: FPGATrackSimMapMakerAlg.h:115
FPGATrackSimMapMakerAlg::m_seHits
std::vector< FPGATrackSimHit > m_seHits
Definition: FPGATrackSimMapMakerAlg.h:101
FPGATrackSimMapMakerAlg::m_modules
std::map< FPGATrackSimModuleId, Module > m_modules
Definition: FPGATrackSimMapMakerAlg.h:96
DetectorZone
DetectorZone
Definition: FPGATrackSimTypes.h:28
FPGATrackSimMapMakerAlg::m_moduleRelabel
FPGATrackSimModuleRelabel * m_moduleRelabel
Definition: FPGATrackSimMapMakerAlg.h:93
FPGATrackSimMapMakerAlg::m_semax
std::vector< int > m_semax
Definition: FPGATrackSimMapMakerAlg.h:106
IFPGATrackSimEventSelectionSvc.h
FPGATrackSimMapMakerAlg::m_pemax
std::vector< int > m_pemax
Definition: FPGATrackSimMapMakerAlg.h:105
IFPGATrackSimEventInputHeaderTool.h
FPGATrackSimMapMakerAlg::m_radfile
std::ofstream m_radfile
Definition: FPGATrackSimMapMakerAlg.h:166
FPGATrackSimMapMakerAlg::writeSubrmap
StatusCode writeSubrmap(std::vector< FPGATrackSimHit > const &allHits)
Definition: FPGATrackSimMapMakerAlg.cxx:286
FPGATrackSimMapMakerAlg::m_region
Gaudi::Property< int > m_region
Definition: FPGATrackSimMapMakerAlg.h:80
DetectorZone::barrel
@ barrel
FPGATrackSimMapMakerAlg::Module::numTracks
std::vector< int > numTracks
Definition: FPGATrackSimMapMakerAlg.h:57
FPGATrackSimMapMakerAlg::m_planes2_generic
const std::vector< std::vector< std::string > > m_planes2_generic
Definition: FPGATrackSimMapMakerAlg.h:133
FPGATrackSimMapMakerAlg::Module::operator==
bool operator==(const Module &m) const
Definition: FPGATrackSimMapMakerAlg.h:64
FPGATrackSimMapMakerAlg::m_overridePlanes2
Gaudi::Property< std::vector< std::vector< std::string > > > m_overridePlanes2
Definition: FPGATrackSimMapMakerAlg.h:154
FPGATrackSimMapMakerAlg::m_allHits
std::vector< FPGATrackSimHit > m_allHits
Definition: FPGATrackSimMapMakerAlg.h:101
FPGATrackSimMapMakerAlg::parseKeyString
void parseKeyString()
Definition: FPGATrackSimMapMakerAlg.cxx:814
FPGATrackSimMapMakerAlg::m_slice2modules
std::map< int, std::vector< Module * > > m_slice2modules
Definition: FPGATrackSimMapMakerAlg.h:97
FPGATrackSimTypes.h
SiliconTech::pixel
@ pixel
ReadCalibFromCrest.allmods
allmods
Definition: ReadCalibFromCrest.py:302
FPGATrackSimMapMakerAlg
Definition: FPGATrackSimMapMakerAlg.h:33
ServiceHandle< IFPGATrackSimEventSelectionSvc >
FPGATrackSimModuleRelabel
Definition: FPGATrackSimModuleRelabel.h:30
FPGATrackSimMapMakerAlg::execute
StatusCode execute() override
Definition: FPGATrackSimMapMakerAlg.cxx:67