ATLAS Offline Software
Classes | Macros | Functions | Variables
runRpcGeoComparison.cxx File Reference
#include <algorithm>
#include <GeoPrimitives/GeoPrimitives.h>
#include <GeoPrimitives/GeoPrimitivesHelpers.h>
#include <GeoPrimitives/GeoPrimitivesToStringConverter.h>
#include <MuonCablingData/NrpcCablingData.h>
#include <MuonReadoutGeometryR4/MuonDetectorDefs.h>
#include <GaudiKernel/SystemOfUnits.h>
#include "CxxUtils/starts_with.h"
#include <PathResolver/PathResolver.h>
#include <TFile.h>
#include <TTreeReader.h>

Go to the source code of this file.

Classes

struct  RpcChamber
 Helper struct to represent a full Rpc chamber. More...
 
struct  RpcChamber::RpcStrip
 
struct  RpcChamber::RpcLayer
 Helper struct to assess that the layers are properly oriented. More...
 

Macros

#define TEST_BASICPROP(attribute, propName)
 

Functions

std::ostream & operator<< (std::ostream &ostr, const RpcChamber &chamb)
 Translation of the station Index -> station Name. More...
 
std::ostream & operator<< (std::ostream &ostr, const RpcChamber::RpcStrip &strip)
 
std::ostream & operator<< (std::ostream &ostr, const RpcChamber::RpcLayer &layer)
 
std::set< RpcChamberreadTreeDump (const std::string &inputFile)
 
int main (int argc, char **argv)
 

Variables

constexpr double tolerance = 0.005*Gaudi::Units::millimeter
 

Macro Definition Documentation

◆ TEST_BASICPROP

#define TEST_BASICPROP (   attribute,
  propName 
)
Value:
if (std::abs(1.*test.attribute - 1.*reference.attribute) > tolerance) { \
std::cerr<<"RpcGeoModelComparison() "<<__LINE__<<": The chamber "<<test \
<<" differs w.r.t "<<propName<<" "<< reference.attribute \
<<" (ref) vs. " <<test.attribute << " (test)" << std::endl; \
chamberOkay = false; \
}

Definition at line 289 of file runRpcGeoComparison.cxx.

Function Documentation

◆ main()

int main ( int  argc,
char **  argv 
)

check whether the files are xroot d -> otherwise call path resovler

Parse the tree dump

Start to loop over the chambers

Definition at line 296 of file runRpcGeoComparison.cxx.

296  {
297  std::string refFile{}, testFile{};
298 
299  for (int arg = 1; arg < argc; ++arg) {
300  std::string the_arg{argv[arg]};
301  if (the_arg == "--refFile" && arg +1 < argc) {
302  refFile = std::string{argv[arg+1]};
303  ++arg;
304  } else if (the_arg == "--testFile" && arg + 1 < argc) {
305  testFile = std::string{argv[arg+1]};
306  ++arg;
307  }
308  }
309  if (refFile.empty()) {
310  std::cerr<<"Please parse the path of the reference file via --refFile "<<std::endl;
311  return EXIT_FAILURE;
312  }
313  if (testFile.empty()) {
314  std::cerr<<"Please parse the path of the test file via --testFile "<<std::endl;
315  return EXIT_FAILURE;
316  }
318  if (!CxxUtils::starts_with (refFile, "root://")) refFile = PathResolver::FindCalibFile(refFile);
321  std::set<RpcChamber> refChambers = readTreeDump(refFile);
322  if (refChambers.empty()) {
323  std::cerr<<"The file "<<refFile<<" should contain at least one chamber "<<std::endl;
324  return EXIT_FAILURE;
325  }
326  std::set<RpcChamber> testChambers = readTreeDump(testFile);
327  if (testChambers.empty()) {
328  std::cerr<<"The file "<<testFile<<" should contain at least one chamber "<<std::endl;
329  return EXIT_FAILURE;
330  }
331  std::cout<<"Read "<<refChambers.size()<<" chambers from reference: "<<refFile
332  <<" & "<<testChambers.size()<<" from "<<testFile<<std::endl;
333  int return_code = EXIT_SUCCESS;
334  unsigned int goodChambers{0};
336  for (const RpcChamber& reference : refChambers) {
337  std::set<RpcChamber>::const_iterator test_itr = testChambers.find(reference);
338 
339  if (test_itr == testChambers.end()) {
340  std::cerr<<"runRpcGeoComparison() "<<__LINE__<<": The chamber "<<reference<<" is not part of the testing "<<std::endl;
341  return_code = EXIT_FAILURE;
342  continue;
343  }
344  bool chamberOkay = true;
345  const RpcChamber& test = {*test_itr};
346 
347  TEST_BASICPROP(numLayers, "number of rpc singlets");
348  TEST_BASICPROP(numGasGapsPhi, "number of phi gas gaps");
349  TEST_BASICPROP(numPhiPanels, "number of phi readout panels");
350 
351 
352  TEST_BASICPROP(numStripsEta, "number of eta strips");
353  TEST_BASICPROP(numStripsPhi, "number of phi strips");
354 
355  TEST_BASICPROP(stripPitchEta, "eta strip pitch");
356  TEST_BASICPROP(stripPitchPhi, "phi strip pitch");
357 
358  TEST_BASICPROP(stripWidthEta, "eta strip width");
359  TEST_BASICPROP(stripWidthPhi, "phi strip width");
360 
361  TEST_BASICPROP(stripLengthEta, "eta strip length");
362  TEST_BASICPROP(stripLengthPhi, "phi strip length");
363  if (!chamberOkay) continue;
364 
365  Amg::Transform3D moduleDiff = reference.geoModelTransform.inverse() *
366  test.geoModelTransform;
367 
368  if (false && !Amg::doesNotDeform(moduleDiff)){
369  std::cerr<<"runRpcGeoComparison() "<<__LINE__<<": "<<test<<" is displaced by "
370  <<Amg::toString(moduleDiff)<<std::endl;
371  continue;
372  }
373 
374 
375  using RpcLayer = RpcChamber::RpcLayer;
376  for (const RpcLayer& refLayer : reference.layers) {
377  break;
378  std::set<RpcLayer>::const_iterator lay_itr = test.layers.find(refLayer);
379  if (lay_itr == test.layers.end()) {
380  std::cerr<<"runRpcGeoComparison() "<<__LINE__<<": "<<test<<" "
381  <<refLayer<<" is not found. "<<std::endl;
382  chamberOkay = false;
383  continue;
384  }
385  // break;
386  const RpcLayer& testLayer{*lay_itr};
387  const Amg::Transform3D layAlignment = testLayer.transform.inverse() *
388  refLayer.transform;
389  if (layAlignment.translation().mag() > tolerance) {
390  std::cerr<<"runRpcGeoComparison() "<<__LINE__<<": "<<test<<" "
391  <<"the layer "<<testLayer<<" is misplaced w.r.t. reference by "
392  <<Amg::toString(testLayer.transform.translation())<<" vs. "
393  <<Amg::toString(refLayer.transform.translation()) <<" delta : "
394  <<Amg::toString(layAlignment.translation())
395  <<", perp: "<<layAlignment.translation().perp()
396  <<", mag: "<<layAlignment.translation().mag()<<std::endl;
397  chamberOkay = false;
398  continue;
399  }
400  // continue;
401  if (!Amg::doesNotDeform(layAlignment)) {
402  std::cerr<<"runRpcGeoComparison() "<<__LINE__<<": "<<test<<" "
403  <<"the layer "<<testLayer<<" is misaligned w.r.t. reference by "
404  <<Amg::toString(layAlignment)<<std::endl;
405  continue;
406  }
407  }
409  if (!chamberOkay) continue;
410  unsigned int failedEta{0}, failedPhi{0};
411  for (const RpcStrip& refStrip : reference.strips) {
412  std::set<RpcStrip>::const_iterator strip_itr = test.strips.find(refStrip);
413  if (strip_itr == test.strips.end()) {
414  std::cerr<<"runRpcGeoComparison() "<<__LINE__<<": "<<test<<" "
415  <<refStrip<<" is not found. "<<std::endl;
416  chamberOkay = false;
417  continue;
418  }
419  const RpcStrip& testStrip{*strip_itr};
420  const Amg::Vector3D diffStrip{testStrip.position - refStrip.position};
421  if (diffStrip.mag() > tolerance) {
422  constexpr unsigned int maxFail = 3;
423  if ( (!refStrip.measPhi && (++failedEta) <= maxFail) ||
424  (refStrip.measPhi && (++failedPhi) <= maxFail) ) {
425  std::cerr<<"runRpcGeoComparison() "<<__LINE__<<": "<<test<<" "
426  <<testStrip<<" should be located at "<<Amg::toString(refStrip.position, 2)
427  <<" displacement: "<<Amg::toString(diffStrip,2)<<", perp: "
428  <<diffStrip.perp()<<", mag: "<<diffStrip.mag()<<std::endl;
429  } else if (failedEta > maxFail && failedPhi > maxFail) {
430  break;
431  }
432  chamberOkay = false;
433  }
434  continue;
435  const Amg::Vector2D diffLocStrip{testStrip.locPos - refStrip.locPos};
436  if (diffStrip.mag() > tolerance) {
437  std::cerr<<"runRpcGeoComparison() "<<__LINE__<<": "<<test<<" "
438  <<testStrip<<" should be located at "<<Amg::toString(refStrip.locPos, 2)
439  <<" displacement: "<<Amg::toString(diffLocStrip,2)<<", mag: "<<diffLocStrip.mag()<<std::endl;
440  chamberOkay = false;
441  }
442  }
443  if (!chamberOkay) {
444  return_code = EXIT_FAILURE;
445  } else {
446  ++goodChambers;
447  }
448  }
449  for (const RpcChamber& test : testChambers){
450  if (refChambers.find(test) == refChambers.end()) {
451  std::cerr<<"runRpcGeoComparison() "<<__LINE__<<": The chamber "<<test<<" is not in the references."<<std::endl;
452  return_code = EXIT_FAILURE;
453  }
454  }
455  std::cout<<goodChambers<<"/"<<refChambers.size()<<" are in complete agreement. "<<std::endl;
456  return return_code;
457 
458 }

◆ operator<<() [1/3]

std::ostream& operator<< ( std::ostream &  ostr,
const RpcChamber chamb 
)

Translation of the station Index -> station Name.

Dictionary taken from https://gitlab.cern.ch/atlas/athena/-/blob/main/DetectorDescription/IdDictParser/data/IdDictMuonSpectrometer_R.09.03.xml

Definition at line 110 of file runRpcGeoComparison.cxx.

110  {
111  static const std::map<int, std::string> stationDict{
112  {0, "BIL"}, {1, "BIS"}, {7, "BIR"},
113  {2, "BML"}, {3, "BMS"}, {8, "BMF"}, {53, "BME"}, {54, "BMG"}, {52, "BIM"},
114  {4, "BOL"}, {5, "BOS"}, {9, "BOF"}, {10, "BOG"},
115  {6, "BEE"}, {14, "EEL"}, {15, "EES"},
116  {13, "EIL"},
117  {17, "EML"}, {18, "EMS"},
118  {20, "EOL"}, {21, "EOS"}
119  };
120  ostr<<"Rpc chamber "<<stationDict.at(chamb.id.stationIndex) <<"("<<chamb.design<<") "<<chamb.id;
121  return ostr;
122 }

◆ operator<<() [2/3]

std::ostream& operator<< ( std::ostream &  ostr,
const RpcChamber::RpcLayer layer 
)

Definition at line 131 of file runRpcGeoComparison.cxx.

131  {
132  ostr<<"rpclayer (gasGap/phiPanel/isPhiLayer): ";
133  ostr<<layer.gasGap<<"/"<<layer.doubletPhi<<"/";
134  ostr<<(layer.measPhi ? "si" : "no")<<", ";
135  // ostr<<"transform: "<<Amg::toString(layer.transform);
136  return ostr;
137 }

◆ operator<<() [3/3]

std::ostream& operator<< ( std::ostream &  ostr,
const RpcChamber::RpcStrip strip 
)

Definition at line 124 of file runRpcGeoComparison.cxx.

124  {
125  ostr<<"strip (gasGap/phiPanel/isPhiStrip/number): ";
126  ostr<<strip.gasGap<<"/"<<strip.doubletPhi<<"/";
127  ostr<<(strip.measPhi ? "si" : "no")<<"/"<<strip.strip<<", ";
128  // ostr<<"position: "<<Amg::toString(strip.position, 2);
129  return ostr;
130 }

◆ readTreeDump()

std::set<RpcChamber> readTreeDump ( const std::string &  inputFile)

Number of strips, strip pitch in eta & phi direction

Number of eta & phi gas gaps

Strip dimensions

Geo Model transformation

Definition at line 139 of file runRpcGeoComparison.cxx.

139  {
140  std::set<RpcChamber> to_ret{};
141  std::cout<<"Read the Rpc geometry tree dump from "<<inputFile<<std::endl;
142  std::unique_ptr<TFile> inFile{TFile::Open(inputFile.c_str())};
143  if (!inFile || !inFile->IsOpen()) {
144  std::cerr<<__FILE__<<":"<<__LINE__<<" Failed to open "<<inputFile<<std::endl;
145  return to_ret;
146  }
147  TTreeReader treeReader("RpcGeoModelTree", inFile.get());
148  if (treeReader.IsInvalid()){
149  std::cerr<<__FILE__<<":"<<__LINE__<<" The file "<<inputFile<<" does not contain the 'RpcGeoModelTree'"<<std::endl;
150  return to_ret;
151  }
152 
153  TTreeReaderValue<unsigned short> stationIndex{treeReader, "stationIndex"};
154  TTreeReaderValue<short> stationEta{treeReader, "stationEta"};
155  TTreeReaderValue<short> stationPhi{treeReader, "stationPhi"};
156  TTreeReaderValue<uint8_t> stationDoubletR{treeReader, "stationDoubletR"};
157  TTreeReaderValue<uint8_t> stationDoubletZ{treeReader,"stationDoubletZ"};
158  TTreeReaderValue<uint8_t> stationDoubletPhi{treeReader,"stationDoubletPhi"};
159  TTreeReaderValue<std::string> chamberDesign{treeReader,"chamberDesign"};
160 
161 
163  TTreeReaderValue<uint8_t> numStripsEta{treeReader, "numEtaStrips"};
164  TTreeReaderValue<uint8_t> numStripsPhi{treeReader, "numPhiStrips"};
166  // TTreeReaderValue<uint8_t> numGasGapsPhi{treeReader, "numPhiGasGaps"};
167  TTreeReaderValue<uint8_t> numPhiPanels{treeReader, "numPhiPanels"};
168  TTreeReaderValue<uint8_t> numLayers{treeReader, "numRpcLayers"};
169 
171  TTreeReaderValue<float> stripEtaPitch{treeReader, "stripEtaPitch"};
172  TTreeReaderValue<float> stripPhiPitch{treeReader, "stripPhiPitch"};
173  TTreeReaderValue<float> stripEtaWidth{treeReader, "stripEtaWidth"};
174  TTreeReaderValue<float> stripPhiWidth{treeReader, "stripPhiWidth"};
175  TTreeReaderValue<float> stripEtaLength{treeReader, "stripEtaLength"};
176  TTreeReaderValue<float> stripPhiLength{treeReader, "stripPhiLength"};
177 
179  TTreeReaderValue<std::vector<float>> geoModelTransformX{treeReader, "GeoModelTransformX"};
180  TTreeReaderValue<std::vector<float>> geoModelTransformY{treeReader, "GeoModelTransformY"};
181  TTreeReaderValue<std::vector<float>> geoModelTransformZ{treeReader, "GeoModelTransformZ"};
182 
183 
184  TTreeReaderValue<std::vector<float>> stripRotTranslationX{treeReader, "stripRotTranslationX"};
185  TTreeReaderValue<std::vector<float>> stripRotTranslationY{treeReader, "stripRotTranslationY"};
186  TTreeReaderValue<std::vector<float>> stripRotTranslationZ{treeReader, "stripRotTranslationZ"};
187 
188 
189  TTreeReaderValue<std::vector<float>> stripRotCol1X{treeReader, "stripRotLinearCol1X"};
190  TTreeReaderValue<std::vector<float>> stripRotCol1Y{treeReader, "stripRotLinearCol1Y"};
191  TTreeReaderValue<std::vector<float>> stripRotCol1Z{treeReader, "stripRotLinearCol1Z"};
192 
193  TTreeReaderValue<std::vector<float>> stripRotCol2X{treeReader, "stripRotLinearCol2X"};
194  TTreeReaderValue<std::vector<float>> stripRotCol2Y{treeReader, "stripRotLinearCol2Y"};
195  TTreeReaderValue<std::vector<float>> stripRotCol2Z{treeReader, "stripRotLinearCol2Z"};
196 
197  TTreeReaderValue<std::vector<float>> stripRotCol3X{treeReader, "stripRotLinearCol3X"};
198  TTreeReaderValue<std::vector<float>> stripRotCol3Y{treeReader, "stripRotLinearCol3Y"};
199  TTreeReaderValue<std::vector<float>> stripRotCol3Z{treeReader, "stripRotLinearCol3Z"};
200 
201  TTreeReaderValue<std::vector<uint8_t>> stripRotGasGap{treeReader, "stripRotGasGap"};
202  TTreeReaderValue<std::vector<uint8_t>> stripRotDblPhi{treeReader, "stripRotDoubletPhi"};
203  TTreeReaderValue<std::vector<bool>> stripRotMeasPhi{treeReader, "stripRotMeasPhi"};
204 
205  TTreeReaderValue<std::vector<float>> stripPosX{treeReader, "stripPosX"};
206  TTreeReaderValue<std::vector<float>> stripPosY{treeReader, "stripPosY"};
207  TTreeReaderValue<std::vector<float>> stripPosZ{treeReader, "stripPosZ"};
208 
209  TTreeReaderValue<std::vector<float>> stripLocPosX{treeReader, "stripLocPosX"};
210  TTreeReaderValue<std::vector<float>> stripLocPosY{treeReader, "stripLocPosY"};
211 
212 
213  TTreeReaderValue<std::vector<bool>> stripPosMeasPhi{treeReader, "stripPosMeasPhi"};
214  TTreeReaderValue<std::vector<uint8_t>> stripPosGasGap{treeReader, "stripPosGasGap"};
215  TTreeReaderValue<std::vector<uint8_t>> stripPosNum{treeReader, "stripPosNum"};
216  TTreeReaderValue<std::vector<uint8_t>> stripDblPhi{treeReader, "stripPosDoubletPhi"};
217 
218  while (treeReader.Next()) {
219  RpcChamber newchamber{};
220 
221  newchamber.id.stationIndex = (*stationIndex);
222  newchamber.design = (*chamberDesign);
223  newchamber.id.eta = (*stationEta);
224  newchamber.id.phi = (*stationPhi);
225  newchamber.id.doubletPhi = (*stationDoubletPhi);
226  newchamber.id.doubletR = (*stationDoubletR);
227  newchamber.id.doubletZ = (*stationDoubletZ);
228 
229  newchamber.stripPitchEta = (*stripEtaPitch);
230  newchamber.stripPitchPhi = (*stripPhiPitch);
231  newchamber.stripWidthEta = (*stripEtaWidth);
232  newchamber.stripWidthPhi = (*stripPhiWidth);
233  newchamber.stripLengthEta = (*stripEtaLength);
234  newchamber.stripLengthPhi = (*stripPhiLength);
235 
236  newchamber.numStripsEta = (*numStripsEta);
237  newchamber.numStripsPhi = (*numStripsPhi);
238  // newchamber.numGasGapsPhi = (*numGasGapsPhi);
239  newchamber.numPhiPanels = (*numPhiPanels);
240  newchamber.numLayers = (*numLayers);
241 
242 
243  Amg::Vector3D geoTrans{(*geoModelTransformX)[0], (*geoModelTransformY)[0], (*geoModelTransformZ)[0]};
244  Amg::RotationMatrix3D geoRot{Amg::RotationMatrix3D::Identity()};
245  geoRot.col(0) = Amg::Vector3D((*geoModelTransformX)[1], (*geoModelTransformY)[1], (*geoModelTransformZ)[1]);
246  geoRot.col(1) = Amg::Vector3D((*geoModelTransformX)[2], (*geoModelTransformY)[2], (*geoModelTransformZ)[2]);
247  geoRot.col(2) = Amg::Vector3D((*geoModelTransformX)[3], (*geoModelTransformY)[3], (*geoModelTransformZ)[3]);
248  newchamber.geoModelTransform = Amg::getTransformFromRotTransl(std::move(geoRot), std::move(geoTrans));
249 
250  //strips
251  for (size_t s = 0; s < stripPosX->size(); ++s){
252  RpcChamber::RpcStrip newStrip{};
253  newStrip.position = Amg::Vector3D{(*stripPosX)[s], (*stripPosY)[s], (*stripPosZ)[s]};
254  newStrip.locPos = Amg::Vector2D{(*stripLocPosX)[s], (*stripLocPosY)[s]};
255 
256  newStrip.gasGap = (*stripPosGasGap)[s];
257  newStrip.doubletPhi = (*stripDblPhi)[s];
258  newStrip.measPhi = (*stripPosMeasPhi)[s];
259  newStrip.strip = (*stripPosNum)[s];
260  newchamber.strips.insert(std::move(newStrip));
261  }
262  for (size_t l = 0; l < stripRotMeasPhi->size(); ++l){
263  RpcChamber::RpcLayer newLayer{};
264  newLayer.measPhi = (*stripRotMeasPhi)[l];
265  newLayer.gasGap = (*stripRotGasGap)[l];
266  newLayer.doubletPhi = (*stripRotDblPhi)[l];
267  Amg::RotationMatrix3D stripRot{Amg::RotationMatrix3D::Identity()};
268  Amg::Vector3D translation{(*stripRotTranslationX)[l],(*stripRotTranslationY)[l],(*stripRotTranslationZ)[l]};
269  stripRot.col(0) = Amg::Vector3D((*stripRotCol1X)[l],(*stripRotCol1Y)[l], (*stripRotCol1Z)[l]);
270  stripRot.col(1) = Amg::Vector3D((*stripRotCol2X)[l],(*stripRotCol2Y)[l], (*stripRotCol2Z)[l]);
271  stripRot.col(2) = Amg::Vector3D((*stripRotCol3X)[l],(*stripRotCol3Y)[l], (*stripRotCol3Z)[l]);
272  newLayer.transform = Amg::getTransformFromRotTransl(std::move(stripRot), std::move(translation));
273  newchamber.layers.insert(std::move(newLayer));
274  }
275 
276  auto insert_itr = to_ret.insert(std::move(newchamber));
277  if (!insert_itr.second) {
278  std::stringstream err{};
279  err<<__FILE__<<":"<<__LINE__<<" The chamber "<<(*insert_itr.first).id
280  <<" has already been inserted. "<<std::endl;
281  throw std::runtime_error(err.str());
282  }
283  }
284  std::cout<<"File parsing is finished. Found in total "<<to_ret.size()<<" readout element dumps "<<std::endl;
285  return to_ret;
286 }

Variable Documentation

◆ tolerance

constexpr double tolerance = 0.005*Gaudi::Units::millimeter
constexpr

Definition at line 28 of file runRpcGeoComparison.cxx.

Muon::nsw::STGTPSegments::moduleIDBits::stationPhi
constexpr uint8_t stationPhi
station Phi 1 to 8
Definition: NSWSTGTPDecodeBitmaps.h:129
python.SystemOfUnits.s
int s
Definition: SystemOfUnits.py:131
CxxUtils::starts_with
bool starts_with(const char *s, const char *prefix)
Test whether one null-terminated byte string starts with another.
PathResolver::FindCalibFile
static std::string FindCalibFile(const std::string &logical_file_name)
Definition: PathResolver.h:108
Amg::Vector2D
Eigen::Matrix< double, 2, 1 > Vector2D
Definition: GeoPrimitives.h:48
makeTOC.inFile
string inFile
Definition: makeTOC.py:5
RpcChamber
Helper struct to represent a full Rpc chamber.
Definition: runRpcGeoComparison.cxx:31
plotIsoValidation.treeReader
treeReader
Definition: plotIsoValidation.py:127
UploadAMITag.l
list l
Definition: UploadAMITag.larcaf.py:158
reference
Definition: hcg.cxx:437
TrigInDetValidation_Base.test
test
Definition: TrigInDetValidation_Base.py:144
LArCellConditions.argv
argv
Definition: LArCellConditions.py:112
keylayer_zslicemap.strip
strip
Definition: keylayer_zslicemap.py:151
Amg::getTransformFromRotTransl
Amg::Transform3D getTransformFromRotTransl(Amg::RotationMatrix3D rot, Amg::Vector3D transl_vec)
Definition: GeoPrimitivesHelpers.h:172
TEST_BASICPROP
#define TEST_BASICPROP(attribute, propName)
Definition: runRpcGeoComparison.cxx:288
readTreeDump
std::set< RpcChamber > readTreeDump(const std::string &inputFile)
Definition: runRpcGeoComparison.cxx:139
Amg::toString
std::string toString(const Translation3D &translation, int precision=4)
GeoPrimitvesToStringConverter.
Definition: GeoPrimitivesToStringConverter.h:40
RpcChamber::RpcLayer
Helper struct to assess that the layers are properly oriented.
Definition: runRpcGeoComparison.cxx:87
dqt_zlumi_pandas.err
err
Definition: dqt_zlumi_pandas.py:193
CaloCondBlobAlgs_fillNoiseFromASCII.inputFile
string inputFile
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:17
TRT::Hit::layer
@ layer
Definition: HitInfo.h:79
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
Amg::doesNotDeform
bool doesNotDeform(const Amg::Transform3D &trans)
Checks whether the linear part of the transformation rotates or stetches any of the basis vectors.
Definition: GeoPrimitivesHelpers.h:338
RpcChamber::RpcLayer::measPhi
bool measPhi
flag whether the strip measures phi
Definition: runRpcGeoComparison.cxx:93
DQHistogramMergeRegExp.argc
argc
Definition: DQHistogramMergeRegExp.py:20
RpcChamber::id
chamberIdentifier id
Definition: runRpcGeoComparison.cxx:37
NrpcCablingOfflineID::stationIndex
int8_t & stationIndex
Definition: NrpcCablingData.h:37
create_dcsc_inputs_sqlite.arg
list arg
Definition: create_dcsc_inputs_sqlite.py:48
tolerance
Definition: suep_shower.h:17
L1CaloPhase1Monitoring.propName
propName
Definition: L1CaloPhase1Monitoring.py:349
HI::TowerBins::numLayers
constexpr unsigned int numLayers()
Definition: HIEventDefs.h:23
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
Amg::RotationMatrix3D
Eigen::Matrix< double, 3, 3 > RotationMatrix3D
Definition: GeoPrimitives.h:49
RpcChamber::RpcStrip
Definition: runRpcGeoComparison.cxx:64
CscCalibQuery.testFile
testFile
Definition: CscCalibQuery.py:274
Muon::nsw::STGTPSegments::moduleIDBits::stationEta
constexpr uint8_t stationEta
1 to 3
Definition: NSWSTGTPDecodeBitmaps.h:127
RpcChamber::design
std::string design
Definition: runRpcGeoComparison.cxx:38
RpcChamber::RpcStrip::position
Amg::Vector3D position
global position of the strip
Definition: runRpcGeoComparison.cxx:66
xAOD::RpcStrip
RpcStrip_v1 RpcStrip
Defined the version of the RpcStrip.
Definition: RpcStrip.h:12