ATLAS Offline Software
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
17 
18 #include <fstream> //ofstream members
19 #include <tuple> //typedef
20 #include <map> //member
21 #include <set> //member
22 #include <vector> //member
23 
24 
26 class FPGATrackSimHit;
27 class TFile;
28 
29 
30 
32 {
33  public:
34  typedef std::tuple<SiliconTech, DetectorZone, int, int, int> FPGATrackSimModuleId;
35  //
36  FPGATrackSimMapMakerAlg(const std::string& name, ISvcLocator* pSvcLocator);
37  virtual ~FPGATrackSimMapMakerAlg() = default;
38 
39  StatusCode initialize() override;
40  StatusCode execute() override;
41  StatusCode finalize() override;
42 
43  private:
44  // Handles
45  ToolHandle<IFPGATrackSimEventInputHeaderTool> m_hitInputTool { this, "InputTool", "FPGATrackSimSGToRawHitsTool/FPGATrackSimInputTool", "HitInput Tool" };
46 
48 
49  struct Module {
52  int lyr{};
53  int eta{};
54  int phi{};
55  std::vector<int> numTracks; // used for trimming, indexed by slice
56  int plane{-1};
57  Module() = default;
60  return std::tie(det,bec,lyr,eta,phi);
61  }
62  bool operator==(const Module& m) const
63  {
64  return std::tie(det,bec,lyr,eta,phi) == std::tie(m.det,m.bec,m.lyr,m.eta,m.phi);
65  }
66  bool operator<(const Module & m) const
67  {
68  return std::tie(det,bec,lyr,eta,phi) < std::tie(m.det,m.bec,m.lyr,m.eta,m.phi);
69  }
70  bool operator>(const Module & m) const
71  {
72  return std::tie(det,bec,lyr,eta,phi) > std::tie(m.det,m.bec,m.lyr,m.eta,m.phi);
73  }
74  };
75 
76  // Flags
77  Gaudi::Property<int> m_maxEvents {this, "maxEvents", 10000, "Max Events"};
78  Gaudi::Property<int> m_region {this, "region", 0, "Region"};
79  Gaudi::Property<float> m_trim {this, "trim", 0.1, "trim modules with less than given percent of tracks"};
80  Gaudi::Property<std::string> m_outFileName {this, "OutFileName", "", "naming convention for maps"};
81  Gaudi::Property<std::string> m_keystring {this, "KeyString", "strip,barrel,2", "key layer to use for subrmap"};
82  Gaudi::Property<std::string> m_keystring2 {this, "KeyString2", "", "second key layer for 2D slicing"};
83  Gaudi::Property<int> m_nSlices {this, "nSlices", -1, "default is full granularity/maximum number of slices possible"};
84  Gaudi::Property<bool> m_doSpacePoints {this, "doSpacePoints", false, "Use 9L instead of 8L configuration for first stage (for example)"};
85  Gaudi::Property<float> m_globalTrim {this, "globalTrim", 0.1, "Trimming applied globally to the key layer before determining slice boundaries"};
86  Gaudi::Property<std::string> m_description {this, "description", "", "tag description"};
87  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?"};
88  Gaudi::Property<bool> m_remapModules {this, "remapModules", false, "Allow maps to be drawn that slice modules more finely, by remapping module indices"};
89  Gaudi::Property<bool> m_drawSlices {this, "drawSlices", false, "Draw the huge 2D slice histograms"};
90 
91  // Instance of the module remap object.
93 
94  // For Subregion map making (zslice map)
95  std::map<FPGATrackSimModuleId, Module> m_modules;
96  std::map<int, std::vector<Module*>> m_track2modules, m_slice2modules;
97  std::map<int, int> m_track2slice;
98 
99  // Event storage
100  std::vector<FPGATrackSimHit> m_pbHits, m_peHits, m_sbHits, m_seHits, m_allHits;
101 
102  int m_pbmax = -1; // pixel barrel largest layer index
103  int m_sbmax = -1;
104  std::vector<int> m_pemax = {-1,-1}; // [positive endcap maxLayer, negative endcap maxLayer]
105  std::vector<int> m_semax = {-1,-1};
106 
107 
108  /* 3D vector that assigns planes for pmap. indices are [reg][plane][physical layers]
109  -> first two chars are DetType and DetZone, pb = pixel barrel, se = strip endcap
110  -> then the layer number is given, followed by a +/- if positive/negative endcap
111  -> -1 means the layer is not used
112  -> Example: se67+ = Strip Positve Endcap layer 67
113  */
114  const std::vector<std::vector<std::vector<std::string>>>* m_planes{};
115  const std::vector< std::vector< std::vector<std::string> > > m_planes_default = //first stage
116  {
117  { // region 0
118  {"pb4"},{"sb0"},{"sb2"},{"sb3"},{"sb4"},{"sb5"},{"sb6"},{"sb7"} // layers that make up each plane.
119  //{"pb0","pe0+","pe1+","pe2+"},{"pb1","pe17+","pe18+"},{"pb2"},{"pb3"},{"pb4"} // pixel only
120  },
121  { // region 1
122  {"pb4"},{"sb0"},{"sb2"},{"sb3"},{"sb4"},{"sb5"},{"sb6"},{"sb7"}
123  },
124  { // region 2
125  {"-1"},{"-1"},{"-1"},{"-1"},{"-1"},{"-1"},{"-1"},{"-1"}
126  },
127  { // region 3
128  {"pb4","pe83+","pe84+","pe85+","pe86+","pe87+","pe88+","pe89+"},{"se5+"},{"se6+"},{"se7+"},{"se8+"},{"se9+"},{"se10+"},{"se11+"}
129  },
130  { // region 4
131  {"pe34+","pe12+"},{"pe36+","pe29+"},{"pe8+","pe40+","pe30+"},{"pe56+","pe65+"},{"pe10+","pe6+"},{"pe11+","pe7+"},{"pe31+","pe32+"},{"pe9+","pe53+"}
132  },
133  { // region 5 - same eta as region 0, different phi
134  {"pb4"},{"sb0"},{"sb2"},{"sb3"},{"sb4"},{"sb5"},{"sb6"},{"sb7"}
135  },
136  { // region 6 - same eta as region 0, different phi
137  {"pb4"},{"sb0"},{"sb2"},{"sb3"},{"sb4"},{"sb5"},{"sb6"},{"sb7"}
138  },
139  { // region 7 - same eta as region 0, different phi
140  {"pb4"},{"sb0"},{"sb2"},{"sb3"},{"sb4"},{"sb5"},{"sb6"},{"sb7"}
141  },
142  };
143 
144 
145  // 9L version of the above for spacepoints. There must be a better way to implement this without
146  // needing to duplicate the entire structure, but I'm not sure how without using the pmap files...
147  const std::vector< std::vector< std::vector<std::string> > > m_planes_sp = //first stage
148  {
149  { // region 0
150  {"pb4"},{"sb0"},{"sb1"},{"sb2"},{"sb3"},{"sb4"},{"sb5"},{"sb6"},{"sb7"} // layers that make up each plane.
151  //{"pb0","pe0+","pe1+","pe2+"},{"pb1","pe17+","pe18+"},{"pb2"},{"pb3"},{"pb4"} // pixel only
152  },
153  { // region 1
154  {"pb4"},{"sb0"},{"sb1"},{"sb2"},{"sb3"},{"sb4"},{"sb5"},{"sb6"},{"sb7"}
155  },
156  { // region 2
157  {"-1"},{"-1"},{"-1"},{"-1"},{"-1"},{"-1"},{"-1"},{"-1"},{"-1"}
158  },
159  { // region 3
160  {"pb4","pe83+","pe84+","pe85+","pe86+","pe87+","pe88+","pe89+"},{"se4+"},{"se5+"},{"se6+"},{"se7+"},{"se8+"},{"se9+"},{"se10+"},{"se11+"}
161  },
162  { // region 4
163  //{"pe34+","pe12+"},{"pe36+","pe29+"},{"pe8+","pe40+","pe30+"},{"pe56+","pe65+"},{"pe10+","pe6+"},{"pe11+","pe7+"},{"pe31+","pe32+"},{"pe9+","pe53+"},{"pe30+"}
164  {"pe4+", "pe5+", "pe6+"},
165  {"pe7+", "pe8+", "pe9+"},
166  {"pe10+", "pe11+", "pe12+", "pe29+"},
167  {"pe30+", "pe31+", "pe32+", "pe33+"},
168  {"pe34+"},
169  {"pe36+"},
170  {"pe38+", "pe40+", "pe42+", "pe53+"},
171  {"pe54+", "pe55+"},
172  {"pe56+", "pe57+", "pe65+"}
173  },
174  { // region 5 - same eta as region 0, different phi
175  {"pb4"},{"sb0"},{"sb1"},{"sb2"},{"sb3"},{"sb4"},{"sb5"},{"sb6"},{"sb7"}
176  },
177  { // region 6 - same eta as region 0, different phi
178  {"pb4"},{"sb0"},{"sb1"},{"sb2"},{"sb3"},{"sb4"},{"sb5"},{"sb6"},{"sb7"}
179  },
180  { // region 7 - same eta as region 0, different phi
181  {"pb4"},{"sb0"},{"sb1"},{"sb2"},{"sb3"},{"sb4"},{"sb5"},{"sb6"},{"sb7"}
182  },
183  };
184 
185  const std::vector <std::vector <std::vector <std::string> > > m_planes2 = // second stage
186  {
187  { // region 0
188  {"pb0"},{"pb1"},{"pb2"},{"pb3"},{"pb4"},{"sb0"},{"sb1"},{"sb2"},{"sb3"},{"sb4"},{"sb5"},{"sb6"},{"sb7"}
189  },
190  { // region 1
191  {"pb0"},{"pb1"},{"pb2"},{"pb3"},{"pb4"},{"sb0"},{"sb1"},{"sb2"},{"sb3"},{"sb4"},{"sb5"},{"sb6"},{"sb7"}
192  },
193  { // region 2
194  {"-1"},{"-1"},{"-1"},{"-1"},{"-1"},{"-1"},{"-1"},{"-1"},{"-1"},{"-1"},{"-1"},{"-1"},{"-1"}
195  },
196  { // region 3
197  {"pb2"},{"pb3","pe58+"},{"pb4","pe83+","pe84+","pe85+","pe86+","pe87+","pe88+","pe89+"},{"se2+"},{"se3+"},{"se4+"},{"se5+"},{"se6+"},{"se7+"},{"se8+"},{"se9+"},{"se10+"},{"se11+"}
198  },
199  { // region 4
200  {"pe0+"},{"pe1+"},{"pe2+"},{"pe3+"},{"pe4+"},{"pe5+"},{"pe6+"},{"pe7+"},{"pe8+"},{"pe9+"},{"pe10+"},{"pe11+"},{"pe12+"} // dummy values to avoid "vector::_M_range_check:"
201  },
202  { // region 5 - same eta as region 0, different phi
203  {"pb0"},{"pb1"},{"pb2"},{"pb3"},{"pb4"},{"sb0"},{"sb1"},{"sb2"},{"sb3"},{"sb4"},{"sb5"},{"sb6"},{"sb7"}
204  },
205  { // region 6 - same eta as region 0, different phi
206  {"pb0"},{"pb1"},{"pb2"},{"pb3"},{"pb4"},{"sb0"},{"sb1"},{"sb2"},{"sb3"},{"sb4"},{"sb5"},{"sb6"},{"sb7"}
207  },
208  { // region 7 - same eta as region 0, different phi
209  {"pb0"},{"pb1"},{"pb2"},{"pb3"},{"pb4"},{"sb0"},{"sb1"},{"sb2"},{"sb3"},{"sb4"},{"sb5"},{"sb6"},{"sb7"}
210  },
211  };
212 
213  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()
214  std::map <std::string, std::set<int>> m_keylayer2; // for 2D slicing
215 
216  bool m_key2 = false;
217  std::map <int, int> m_key_etamods; // eta module values of the key layer. each etamod = 1 slice for full granulatiy slicing
218  std::set <int> m_key_etamods2; // for 2D slicing
219  std::set <int> m_usedTracks; // tracks that hit the key layer
220  std::vector <std::vector < std::vector<float> > > m_radii; // used to calculate mean radii per layer for each slice, [slice][plane][hit]
221  std::vector <std::vector < std::vector<float> > > m_z; // used to calculate median z per layer for each slice, [slice][plane][hit]
222  // output map files and monitoring
224  TFile *m_monitorFile{};
225 
226 
227  // TODO make automatic
228  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]
229 
230  StatusCode readInputs(bool & done);
231  StatusCode writePmapAndRmap(std::vector<FPGATrackSimHit> const & pbHits, std::vector<FPGATrackSimHit> const & peHits, std::vector<FPGATrackSimHit> const & sbHits, std::vector<FPGATrackSimHit> const & seHits, int region);
232  StatusCode writeSubrmap(std::vector<FPGATrackSimHit> const & allHits);
233  StatusCode writeEtaPatterns(); // writes txt file used in the FPGATrackSimEtaPatternFilterTool to filter roads based on eta module
234  StatusCode writeRadiiFile(std::vector<FPGATrackSimHit> const & allHits); // writes txt file with mean radii per layer for each slice, used in 1D Hough Transform
235  StatusCode writeMedianZFile(std::vector<FPGATrackSimHit> const & allHits); // writes txt file with median z per layer for each slice, used in 1D Hough Transform
236 
237  // Helpers
238  void drawSlices(std::vector<FPGATrackSimHit> const & allHits);
239  std::map <std::string, SiliconTech> m_det2tech = { {"pixel",SiliconTech::pixel}, {"strip",SiliconTech::strip} }; // for parsing KeyString
240  std::map <std::string, DetectorZone> m_bec2zone = { {"barrel",DetectorZone::barrel}, {"posEndcap",DetectorZone::posEndcap}, {"negEndcap",DetectorZone::negEndcap} };
241  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)
242  int findPlane(const std::vector<std::vector<std::string>>& planes, const std::string& test);
243  std::string makeRmapLines(std::vector<FPGATrackSimHit> const & hits, SiliconTech det, DetectorZone bec, int max);
244  std::string makeSubrmapLines(std::vector<Module*> const & allmods, SiliconTech det, DetectorZone bec, int max);
245  void parseKeyString(); // sets m_keylayer and m_keylayer2 based on the Keystring and Keystring2 run args
246 
247 };
248 
249 #endif // FPGATRACKSIMMAPMAKERALG_H
FPGATrackSimMapMakerAlg::m_planes_default
const std::vector< std::vector< std::vector< std::string > > > m_planes_default
Definition: FPGATrackSimMapMakerAlg.h:115
FPGATrackSimMapMakerAlg::m_subrmap
std::ofstream m_subrmap
Definition: FPGATrackSimMapMakerAlg.h:223
FPGATrackSimMapMakerAlg::m_rmap
std::ofstream m_rmap
Definition: FPGATrackSimMapMakerAlg.h:223
FPGATrackSimMapMakerAlg::Module::lyr
int lyr
Definition: FPGATrackSimMapMakerAlg.h:52
FPGATrackSimMapMakerAlg::makeSubrmapLines
std::string makeSubrmapLines(std::vector< Module * > const &allmods, SiliconTech det, DetectorZone bec, int max)
Definition: FPGATrackSimMapMakerAlg.cxx:872
FPGATrackSimMapMakerAlg::m_description
Gaudi::Property< std::string > m_description
Definition: FPGATrackSimMapMakerAlg.h:86
FPGATrackSimMapMakerAlg::Module::operator>
bool operator>(const Module &m) const
Definition: FPGATrackSimMapMakerAlg.h:70
FPGATrackSimMapMakerAlg::m_track2modules
std::map< int, std::vector< Module * > > m_track2modules
Definition: FPGATrackSimMapMakerAlg.h:96
SiliconTech::strip
@ strip
FPGATrackSimMapMakerAlg::m_outFileName
Gaudi::Property< std::string > m_outFileName
Definition: FPGATrackSimMapMakerAlg.h:80
python.SystemOfUnits.m
int m
Definition: SystemOfUnits.py:91
max
#define max(a, b)
Definition: cfImp.cxx:41
FPGATrackSimMapMakerAlg::m_maxEvents
Gaudi::Property< int > m_maxEvents
Definition: FPGATrackSimMapMakerAlg.h:77
FPGATrackSimMapMakerAlg::m_monitorFile
TFile * m_monitorFile
Definition: FPGATrackSimMapMakerAlg.h:224
FPGATrackSimMapMakerAlg::Module::det
SiliconTech det
Definition: FPGATrackSimMapMakerAlg.h:50
FPGATrackSimMapMakerAlg::drawSlices
void drawSlices(std::vector< FPGATrackSimHit > const &allHits)
Definition: FPGATrackSimMapMakerAlg.cxx:697
ParticleGun_SamplingFraction.bec
int bec
Definition: ParticleGun_SamplingFraction.py:89
FPGATrackSimMapMakerAlg::m_planes_sp
const std::vector< std::vector< std::vector< std::string > > > m_planes_sp
Definition: FPGATrackSimMapMakerAlg.h:147
FPGATrackSimMapMakerAlg::initialize
StatusCode initialize() override
Definition: FPGATrackSimMapMakerAlg.cxx:24
DetectorZone::posEndcap
@ posEndcap
FPGATrackSimMapMakerAlg::Module::Module
Module()=default
FPGATrackSimMapMakerAlg::isOnKeyLayer
bool isOnKeyLayer(int keynum, SiliconTech det, DetectorZone bec, int lyr)
Definition: FPGATrackSimMapMakerAlg.cxx:726
FPGATrackSimMapMakerAlg::m_globalTrim
Gaudi::Property< float > m_globalTrim
Definition: FPGATrackSimMapMakerAlg.h:85
FPGATrackSimMapMakerAlg::m_sbHits
std::vector< FPGATrackSimHit > m_sbHits
Definition: FPGATrackSimMapMakerAlg.h:100
FPGATrackSimMapMakerAlg::m_det2tech
std::map< std::string, SiliconTech > m_det2tech
Definition: FPGATrackSimMapMakerAlg.h:239
FPGATrackSimMapMakerAlg::findPlane
int findPlane(const std::vector< std::vector< std::string >> &planes, const std::string &test)
Definition: FPGATrackSimMapMakerAlg.cxx:741
FPGATrackSimMapMakerAlg::readInputs
StatusCode readInputs(bool &done)
Definition: FPGATrackSimMapMakerAlg.cxx:95
FPGATrackSimMapMakerAlg::m_eventHeader
FPGATrackSimEventInputHeader m_eventHeader
Definition: FPGATrackSimMapMakerAlg.h:47
FPGATrackSimMapMakerAlg::m_hitInputTool
ToolHandle< IFPGATrackSimEventInputHeaderTool > m_hitInputTool
Definition: FPGATrackSimMapMakerAlg.h:45
FPGATrackSimMapMakerAlg::m_pbHits
std::vector< FPGATrackSimHit > m_pbHits
Definition: FPGATrackSimMapMakerAlg.h:100
FPGATrackSimMapMakerAlg::m_pmap
std::ofstream m_pmap
Definition: FPGATrackSimMapMakerAlg.h:223
FPGATrackSimMapMakerAlg::FPGATrackSimModuleId
std::tuple< SiliconTech, DetectorZone, int, int, int > FPGATrackSimModuleId
Definition: FPGATrackSimMapMakerAlg.h:34
TrigInDetValidation_Base.test
test
Definition: TrigInDetValidation_Base.py:144
FPGATrackSimMapMakerAlg::Module::operator<
bool operator<(const Module &m) const
Definition: FPGATrackSimMapMakerAlg.h:66
FPGATrackSimMapMakerAlg::m_peHits
std::vector< FPGATrackSimHit > m_peHits
Definition: FPGATrackSimMapMakerAlg.h:100
FPGATrackSimMapMakerAlg::Module::moduleId
FPGATrackSimModuleId moduleId() const
Definition: FPGATrackSimMapMakerAlg.h:59
FPGATrackSimMapMakerAlg::m_pbmax
int m_pbmax
Definition: FPGATrackSimMapMakerAlg.h:102
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:177
FPGATrackSimMapMakerAlg::~FPGATrackSimMapMakerAlg
virtual ~FPGATrackSimMapMakerAlg()=default
FPGATrackSimMapMakerAlg::m_track2slice
std::map< int, int > m_track2slice
Definition: FPGATrackSimMapMakerAlg.h:97
FPGATrackSimHit
Definition: FPGATrackSimHit.h:38
FPGATrackSimMapMakerAlg::m_keylayer2
std::map< std::string, std::set< int > > m_keylayer2
Definition: FPGATrackSimMapMakerAlg.h:214
FPGATrackSimMapMakerAlg::m_diskIndex
const std::vector< uint32_t > m_diskIndex
Definition: FPGATrackSimMapMakerAlg.h:228
FPGATrackSimMapMakerAlg::writeRadiiFile
StatusCode writeRadiiFile(std::vector< FPGATrackSimHit > const &allHits)
Definition: FPGATrackSimMapMakerAlg.cxx:529
AthAlgorithm.h
FPGATrackSimMapMakerAlg::m_key_etamods
std::map< int, int > m_key_etamods
Definition: FPGATrackSimMapMakerAlg.h:217
FPGATrackSimMapMakerAlg::m_sbmax
int m_sbmax
Definition: FPGATrackSimMapMakerAlg.h:103
FPGATrackSimMapMakerAlg::m_usedTracks
std::set< int > m_usedTracks
Definition: FPGATrackSimMapMakerAlg.h:219
FPGATrackSimMapMakerAlg::m_planes2
const std::vector< std::vector< std::vector< std::string > > > m_planes2
Definition: FPGATrackSimMapMakerAlg.h:185
FPGATrackSimMapMakerAlg::m_keystring2
Gaudi::Property< std::string > m_keystring2
Definition: FPGATrackSimMapMakerAlg.h:82
FPGATrackSimMapMakerAlg::m_zedfile
std::ofstream m_zedfile
Definition: FPGATrackSimMapMakerAlg.h:223
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:753
FPGATrackSimMapMakerAlg::m_etapat
std::ofstream m_etapat
Definition: FPGATrackSimMapMakerAlg.h:223
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
LArG4ShowerLibProcessing.hits
hits
Definition: LArG4ShowerLibProcessing.py:136
WritePulseShapeToCool.det
det
Definition: WritePulseShapeToCool.py:204
FPGATrackSimMapMakerAlg::m_radii
std::vector< std::vector< std::vector< float > > > m_radii
Definition: FPGATrackSimMapMakerAlg.h:220
FPGATrackSimMapMakerAlg::m_drawSlices
Gaudi::Property< bool > m_drawSlices
Definition: FPGATrackSimMapMakerAlg.h:89
FPGATrackSimMapMakerAlg::Module::Module
Module(SiliconTech det, DetectorZone bec, int lyr, int eta, int phi)
Definition: FPGATrackSimMapMakerAlg.h:58
FPGATrackSimMapMakerAlg::m_keylayer
std::map< std::string, std::set< int > > m_keylayer
Definition: FPGATrackSimMapMakerAlg.h:213
FPGATrackSimEventInputHeader
Definition: FPGATrackSimEventInputHeader.h:22
FPGATrackSimMapMakerAlg::Module::phi
int phi
Definition: FPGATrackSimMapMakerAlg.h:54
FPGATrackSimMapMakerAlg::writeEtaPatterns
StatusCode writeEtaPatterns()
Definition: FPGATrackSimMapMakerAlg.cxx:473
FPGATrackSimMapMakerAlg::Module::bec
DetectorZone bec
Definition: FPGATrackSimMapMakerAlg.h:51
FPGATrackSimMapMakerAlg::m_nSlices
Gaudi::Property< int > m_nSlices
Definition: FPGATrackSimMapMakerAlg.h:83
FPGATrackSimMapMakerAlg::m_remapModules
Gaudi::Property< bool > m_remapModules
Definition: FPGATrackSimMapMakerAlg.h:88
AthAlgorithm
Definition: AthAlgorithm.h:47
FPGATrackSimMapMakerAlg::m_bec2zone
std::map< std::string, DetectorZone > m_bec2zone
Definition: FPGATrackSimMapMakerAlg.h:240
FPGATrackSimMapMakerAlg::m_keystring
Gaudi::Property< std::string > m_keystring
Definition: FPGATrackSimMapMakerAlg.h:81
FPGATrackSimMapMakerAlg::m_key_etamods2
std::set< int > m_key_etamods2
Definition: FPGATrackSimMapMakerAlg.h:218
FPGATrackSimMapMakerAlg::Module
Definition: FPGATrackSimMapMakerAlg.h:49
FPGATrackSimEventInputHeader.h
FPGATrackSimMapMakerAlg::writeMedianZFile
StatusCode writeMedianZFile(std::vector< FPGATrackSimHit > const &allHits)
Definition: FPGATrackSimMapMakerAlg.cxx:598
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
FPGATrackSimMapMakerAlg::m_z
std::vector< std::vector< std::vector< float > > > m_z
Definition: FPGATrackSimMapMakerAlg.h:221
FPGATrackSimMapMakerAlg::m_key2
bool m_key2
Definition: FPGATrackSimMapMakerAlg.h:216
FPGATrackSimMapMakerAlg::m_trim
Gaudi::Property< float > m_trim
Definition: FPGATrackSimMapMakerAlg.h:79
FPGATrackSimMapMakerAlg::m_doSpacePoints
Gaudi::Property< bool > m_doSpacePoints
Definition: FPGATrackSimMapMakerAlg.h:84
FPGATrackSimMapMakerAlg::FPGATrackSimMapMakerAlg
FPGATrackSimMapMakerAlg(const std::string &name, ISvcLocator *pSvcLocator)
Definition: FPGATrackSimMapMakerAlg.cxx:18
FPGATrackSimMapMakerAlg::finalize
StatusCode finalize() override
Definition: FPGATrackSimMapMakerAlg.cxx:678
FPGATrackSimMapMakerAlg::Module::plane
int plane
Definition: FPGATrackSimMapMakerAlg.h:56
FPGATrackSimMapMakerAlg::Module::eta
int eta
Definition: FPGATrackSimMapMakerAlg.h:53
FPGATrackSimMapMakerAlg::m_geoTag
Gaudi::Property< std::string > m_geoTag
Definition: FPGATrackSimMapMakerAlg.h:87
DetectorZone::negEndcap
@ negEndcap
FPGATrackSimMapMakerAlg::m_seHits
std::vector< FPGATrackSimHit > m_seHits
Definition: FPGATrackSimMapMakerAlg.h:100
FPGATrackSimMapMakerAlg::m_modules
std::map< FPGATrackSimModuleId, Module > m_modules
Definition: FPGATrackSimMapMakerAlg.h:95
DetectorZone
DetectorZone
Definition: FPGATrackSimTypes.h:28
FPGATrackSimMapMakerAlg::m_moduleRelabel
FPGATrackSimModuleRelabel * m_moduleRelabel
Definition: FPGATrackSimMapMakerAlg.h:92
FPGATrackSimMapMakerAlg::m_semax
std::vector< int > m_semax
Definition: FPGATrackSimMapMakerAlg.h:105
FPGATrackSimMapMakerAlg::m_pemax
std::vector< int > m_pemax
Definition: FPGATrackSimMapMakerAlg.h:104
IFPGATrackSimEventInputHeaderTool.h
FPGATrackSimMapMakerAlg::m_radfile
std::ofstream m_radfile
Definition: FPGATrackSimMapMakerAlg.h:223
FPGATrackSimMapMakerAlg::writeSubrmap
StatusCode writeSubrmap(std::vector< FPGATrackSimHit > const &allHits)
Definition: FPGATrackSimMapMakerAlg.cxx:252
FPGATrackSimMapMakerAlg::m_region
Gaudi::Property< int > m_region
Definition: FPGATrackSimMapMakerAlg.h:78
DetectorZone::barrel
@ barrel
FPGATrackSimMapMakerAlg::Module::numTracks
std::vector< int > numTracks
Definition: FPGATrackSimMapMakerAlg.h:55
FPGATrackSimMapMakerAlg::Module::operator==
bool operator==(const Module &m) const
Definition: FPGATrackSimMapMakerAlg.h:62
FPGATrackSimMapMakerAlg::m_allHits
std::vector< FPGATrackSimHit > m_allHits
Definition: FPGATrackSimMapMakerAlg.h:100
FPGATrackSimMapMakerAlg::parseKeyString
void parseKeyString()
Definition: FPGATrackSimMapMakerAlg.cxx:778
FPGATrackSimMapMakerAlg::m_slice2modules
std::map< int, std::vector< Module * > > m_slice2modules
Definition: FPGATrackSimMapMakerAlg.h:96
FPGATrackSimTypes.h
SiliconTech::pixel
@ pixel
FPGATrackSimMapMakerAlg::m_planes
const std::vector< std::vector< std::vector< std::string > > > * m_planes
Definition: FPGATrackSimMapMakerAlg.h:114
FPGATrackSimMapMakerAlg
Definition: FPGATrackSimMapMakerAlg.h:32
FPGATrackSimModuleRelabel
Definition: FPGATrackSimModuleRelabel.h:30
FPGATrackSimMapMakerAlg::execute
StatusCode execute() override
Definition: FPGATrackSimMapMakerAlg.cxx:67