CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Private Types | Private Member Functions | Private Attributes | Static Private Attributes
MillePedeFileReader Class Reference

#include <MillePedeFileReader.h>

Public Types

enum  { SIZE_LG_STRUCTS = 6, SIZE_HG_STRUCTS = 820 }
 

Public Member Functions

const int binariesAmount () const
 
const mpPCLresults getResults () const
 
const std::map< std::string, std::array< bool, 6 > > & getResultsHG () const
 
const AlignPCLThresholdsHG::threshold_map getThresholdMap () const
 
const std::array< double, SIZE_LG_STRUCTS > & getTXobs () const
 
const std::array< double, SIZE_HG_STRUCTS > & getTXobs_HG () const
 
const std::array< double, SIZE_LG_STRUCTS > & getTXobsErr () const
 
const std::array< double, SIZE_HG_STRUCTS > & getTXobsErr_HG () const
 
const std::array< double, SIZE_LG_STRUCTS > & getTYobs () const
 
const std::array< double, SIZE_HG_STRUCTS > & getTYobs_HG () const
 
const std::array< double, SIZE_LG_STRUCTS > & getTYobsErr () const
 
const std::array< double, SIZE_HG_STRUCTS > & getTYobsErr_HG () const
 
const std::array< double, SIZE_LG_STRUCTS > & getTZobs () const
 
const std::array< double, SIZE_HG_STRUCTS > & getTZobs_HG () const
 
const std::array< double, SIZE_LG_STRUCTS > & getTZobsErr () const
 
const std::array< double, SIZE_HG_STRUCTS > & getTZobsErr_HG () const
 
const std::array< double, SIZE_LG_STRUCTS > & getXobs () const
 
const std::array< double, SIZE_HG_STRUCTS > & getXobs_HG () const
 
const std::array< double, SIZE_LG_STRUCTS > & getXobsErr () const
 
const std::array< double, SIZE_HG_STRUCTS > & getXobsErr_HG () const
 
const std::array< double, SIZE_LG_STRUCTS > & getYobs () const
 
const std::array< double, SIZE_HG_STRUCTS > & getYobs_HG () const
 
const std::array< double, SIZE_LG_STRUCTS > & getYobsErr () const
 
const std::array< double, SIZE_HG_STRUCTS > & getYobsErr_HG () const
 
const std::array< double, SIZE_LG_STRUCTS > & getZobs () const
 
const std::array< double, SIZE_HG_STRUCTS > & getZobs_HG () const
 
const std::array< double, SIZE_LG_STRUCTS > & getZobsErr () const
 
const std::array< double, SIZE_HG_STRUCTS > & getZobsErr_HG () const
 
 MillePedeFileReader (const edm::ParameterSet &, const std::shared_ptr< const PedeLabelerBase > &, const std::shared_ptr< const AlignPCLThresholdsHG > &, const std::shared_ptr< const PixelTopologyMap > &)
 
void read ()
 
bool storeAlignments ()
 
virtual ~MillePedeFileReader ()=default
 

Private Types

enum  PclHLS : int {
  PclHLS::NotInPCL = -1, PclHLS::TPEHalfCylinderXplusZminus = 0, PclHLS::TPEHalfCylinderXminusZminus = 1, PclHLS::TPBHalfBarrelXplus = 2,
  PclHLS::TPBHalfBarrelXminus = 3, PclHLS::TPEHalfCylinderXplusZplus = 4, PclHLS::TPEHalfCylinderXminusZplus = 5, PclHLS::TPBLadderLayer1 = 6,
  PclHLS::TPBLadderLayer2 = 7, PclHLS::TPBLadderLayer3 = 8, PclHLS::TPBLadderLayer4 = 9, PclHLS::TPEPanelDisk1 = 10,
  PclHLS::TPEPanelDisk2 = 11, PclHLS::TPEPanelDisk3 = 12, PclHLS::TPEPanelDiskM1 = 13, PclHLS::TPEPanelDiskM2 = 14,
  PclHLS::TPEPanelDiskM3 = 15
}
 

Private Member Functions

PclHLS getHLS (const Alignable *)
 
int getIndexForHG (align::ID id, PclHLS HLS)
 
std::string getStringFromHLS (PclHLS HLS)
 
void initializeIndexHelper ()
 
void readMillePedeEndFile ()
 
void readMillePedeLogFile ()
 
void readMillePedeResultFile ()
 

Private Attributes

int binariesAmount_ {0}
 
std::string dirName_
 
int exitCode_ {-1}
 
std::string exitMessage_ {""}
 
std::map< std::string, std::array< bool, 6 > > fractionExceeded_
 
std::unordered_map< PclHLS, std::pair< int, int > > indexHelper
 
const bool isHG_
 
const std::string millePedeEndFile_
 
const std::string millePedeLogFile_
 
const std::string millePedeResFile_
 
int Nrec_ {0}
 
const std::shared_ptr< const PedeLabelerBasepedeLabeler_
 
const std::shared_ptr< const PixelTopologyMappixelTopologyMap_
 
const std::shared_ptr< const AlignPCLThresholdsHGtheThresholds_
 
std::array< double, SIZE_LG_STRUCTStXobs_ = std::array<double, SIZE_LG_STRUCTS>()
 
std::array< double, SIZE_HG_STRUCTStXobs_HG_ = std::array<double, SIZE_HG_STRUCTS>()
 
std::array< double, SIZE_LG_STRUCTStXobsErr_ = std::array<double, SIZE_LG_STRUCTS>()
 
std::array< double, SIZE_HG_STRUCTStXobsErr_HG_ = std::array<double, SIZE_HG_STRUCTS>()
 
std::array< double, SIZE_LG_STRUCTStYobs_ = std::array<double, SIZE_LG_STRUCTS>()
 
std::array< double, SIZE_HG_STRUCTStYobs_HG_ = std::array<double, SIZE_HG_STRUCTS>()
 
std::array< double, SIZE_LG_STRUCTStYobsErr_ = std::array<double, SIZE_LG_STRUCTS>()
 
std::array< double, SIZE_HG_STRUCTStYobsErr_HG_ = std::array<double, SIZE_HG_STRUCTS>()
 
std::array< double, SIZE_LG_STRUCTStZobs_ = std::array<double, SIZE_LG_STRUCTS>()
 
std::array< double, SIZE_HG_STRUCTStZobs_HG_ = std::array<double, SIZE_HG_STRUCTS>()
 
std::array< double, SIZE_LG_STRUCTStZobsErr_ = std::array<double, SIZE_LG_STRUCTS>()
 
std::array< double, SIZE_HG_STRUCTStZobsErr_HG_ = std::array<double, SIZE_HG_STRUCTS>()
 
std::bitset< 4 > updateBits_
 
bool updateDB_ {false}
 
bool vetoUpdateDB_ {false}
 
std::array< double, SIZE_LG_STRUCTSXobs_ = std::array<double, SIZE_LG_STRUCTS>()
 
std::array< double, SIZE_HG_STRUCTSXobs_HG_ = std::array<double, SIZE_HG_STRUCTS>()
 
std::array< double, SIZE_LG_STRUCTSXobsErr_ = std::array<double, SIZE_LG_STRUCTS>()
 
std::array< double, SIZE_HG_STRUCTSXobsErr_HG_ = std::array<double, SIZE_HG_STRUCTS>()
 
std::array< double, SIZE_LG_STRUCTSYobs_ = std::array<double, SIZE_LG_STRUCTS>()
 
std::array< double, SIZE_HG_STRUCTSYobs_HG_ = std::array<double, SIZE_HG_STRUCTS>()
 
std::array< double, SIZE_LG_STRUCTSYobsErr_ = std::array<double, SIZE_LG_STRUCTS>()
 
std::array< double, SIZE_HG_STRUCTSYobsErr_HG_ = std::array<double, SIZE_HG_STRUCTS>()
 
std::array< double, SIZE_LG_STRUCTSZobs_ = std::array<double, SIZE_LG_STRUCTS>()
 
std::array< double, SIZE_HG_STRUCTSZobs_HG_ = std::array<double, SIZE_HG_STRUCTS>()
 
std::array< double, SIZE_LG_STRUCTSZobsErr_ = std::array<double, SIZE_LG_STRUCTS>()
 
std::array< double, SIZE_HG_STRUCTSZobsErr_HG_ = std::array<double, SIZE_HG_STRUCTS>()
 

Static Private Attributes

static constexpr std::array< double, 6 > multiplier_
 

Detailed Description

Definition at line 62 of file MillePedeFileReader.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
SIZE_LG_STRUCTS 
SIZE_HG_STRUCTS 

Definition at line 75 of file MillePedeFileReader.h.

◆ PclHLS

enum MillePedeFileReader::PclHLS : int
strongprivate
Enumerator
NotInPCL 
TPEHalfCylinderXplusZminus 
TPEHalfCylinderXminusZminus 
TPBHalfBarrelXplus 
TPBHalfBarrelXminus 
TPEHalfCylinderXplusZplus 
TPEHalfCylinderXminusZplus 
TPBLadderLayer1 
TPBLadderLayer2 
TPBLadderLayer3 
TPBLadderLayer4 
TPEPanelDisk1 
TPEPanelDisk2 
TPEPanelDisk3 
TPEPanelDiskM1 
TPEPanelDiskM2 
TPEPanelDiskM3 

Definition at line 121 of file MillePedeFileReader.h.

121  : int {
122  NotInPCL = -1,
123  TPEHalfCylinderXplusZminus = 0,
124  TPEHalfCylinderXminusZminus = 1,
125  TPBHalfBarrelXplus = 2,
126  TPBHalfBarrelXminus = 3,
127  TPEHalfCylinderXplusZplus = 4,
128  TPEHalfCylinderXminusZplus = 5,
129  TPBLadderLayer1 = 6,
130  TPBLadderLayer2 = 7,
131  TPBLadderLayer3 = 8,
132  TPBLadderLayer4 = 9,
133  TPEPanelDisk1 = 10,
134  TPEPanelDisk2 = 11,
135  TPEPanelDisk3 = 12,
136  TPEPanelDiskM1 = 13,
137  TPEPanelDiskM2 = 14,
138  TPEPanelDiskM3 = 15,
139  };

Constructor & Destructor Documentation

◆ MillePedeFileReader()

MillePedeFileReader::MillePedeFileReader ( const edm::ParameterSet config,
const std::shared_ptr< const PedeLabelerBase > &  pedeLabeler,
const std::shared_ptr< const AlignPCLThresholdsHG > &  theThresholds,
const std::shared_ptr< const PixelTopologyMap > &  pixelTopologyMap 
)
explicit

Definition at line 16 of file MillePedeFileReader.cc.

References dirName_.

21  theThresholds_(theThresholds),
22  pixelTopologyMap_(pixelTopologyMap),
23  dirName_(config.getParameter<std::string>("fileDir")),
24  millePedeEndFile_(config.getParameter<std::string>("millePedeEndFile")),
25  millePedeLogFile_(config.getParameter<std::string>("millePedeLogFile")),
26  millePedeResFile_(config.getParameter<std::string>("millePedeResFile")),
27  isHG_(config.getParameter<bool>("isHG")) {
28  if (!dirName_.empty() && dirName_.find_last_of('/') != dirName_.size() - 1)
29  dirName_ += '/'; // may need '/'
30 }
const std::shared_ptr< const AlignPCLThresholdsHG > theThresholds_
const std::shared_ptr< const PixelTopologyMap > pixelTopologyMap_
Definition: config.py:1
const std::string millePedeLogFile_
const std::string millePedeResFile_
const std::shared_ptr< const PedeLabelerBase > pedeLabeler_
const std::string millePedeEndFile_

◆ ~MillePedeFileReader()

virtual MillePedeFileReader::~MillePedeFileReader ( )
virtualdefault

Member Function Documentation

◆ binariesAmount()

const int MillePedeFileReader::binariesAmount ( ) const
inline

Definition at line 109 of file MillePedeFileReader.h.

References binariesAmount_.

◆ getHLS()

MillePedeFileReader::PclHLS MillePedeFileReader::getHLS ( const Alignable alignable)
private

Definition at line 337 of file MillePedeFileReader.cc.

References Alignable::alignableObjectId(), Exception, Alignable::id(), NotInPCL, pedeLabeler_, align::TPBHalfBarrel, TPBHalfBarrelXminus, TPBHalfBarrelXplus, align::TPBLadder, TPBLadderLayer1, TPBLadderLayer2, TPBLadderLayer3, TPBLadderLayer4, align::TPEHalfCylinder, TPEHalfCylinderXminusZminus, TPEHalfCylinderXminusZplus, TPEHalfCylinderXplusZminus, TPEHalfCylinderXplusZplus, align::TPEPanel, TPEPanelDisk1, TPEPanelDisk2, TPEPanelDisk3, TPEPanelDiskM1, TPEPanelDiskM2, and TPEPanelDiskM3.

Referenced by readMillePedeResultFile().

337  {
338  if (!alignable)
339  return PclHLS::NotInPCL;
340 
341  const auto& tns = pedeLabeler_->alignableTracker()->trackerNameSpace();
342  const align::ID id = alignable->id();
343 
344  switch (alignable->alignableObjectId()) {
346  switch (tns.tpb().halfBarrelNumber(id)) {
347  case 1:
349  case 2:
351  default:
352  throw cms::Exception("LogicError")
353  << "@SUB=MillePedeFileReader::getHLS\n"
354  << "Found a pixel half-barrel number that should not exist: " << tns.tpb().halfBarrelNumber(id);
355  }
357  switch (tns.tpe().endcapNumber(id)) {
358  case 1:
359  switch (tns.tpe().halfCylinderNumber(id)) {
360  case 1:
362  case 2:
364  default:
365  throw cms::Exception("LogicError")
366  << "@SUB=MillePedeFileReader::getHLS\n"
367  << "Found a pixel half-cylinder number that should not exist: " << tns.tpe().halfCylinderNumber(id);
368  }
369  case 2:
370  switch (tns.tpe().halfCylinderNumber(id)) {
371  case 1:
373  case 2:
375  default:
376  throw cms::Exception("LogicError")
377  << "@SUB=MillePedeFileReader::getHLS\n"
378  << "Found a pixel half-cylinder number that should not exist: " << tns.tpe().halfCylinderNumber(id);
379  }
380  default:
381  throw cms::Exception("LogicError")
382  << "@SUB=MillePedeFileReader::getHLS\n"
383  << "Found a pixel endcap number that should not exist: " << tns.tpe().endcapNumber(id);
384  }
385  case align::TPBLadder:
386  switch (tns.tpb().layerNumber(id)) {
387  case 1:
389  case 2:
391  case 3:
393  case 4:
395  default:
396  throw cms::Exception("LogicError")
397  << "@SUB=MillePedeFileReader::getHLS\n"
398  << "Found a pixel layer number that should not exist: " << tns.tpb().layerNumber(id);
399  }
400  case align::TPEPanel:
401  switch (static_cast<signed int>((tns.tpe().endcapNumber(id) == 1) ? -1 * tns.tpe().halfDiskNumber(id)
402  : tns.tpe().halfDiskNumber(id))) {
403  case -3:
404  return PclHLS::TPEPanelDiskM3;
405  case -2:
406  return PclHLS::TPEPanelDiskM2;
407  case -1:
408  return PclHLS::TPEPanelDiskM1;
409  case 3:
410  return PclHLS::TPEPanelDisk3;
411  case 2:
412  return PclHLS::TPEPanelDisk2;
413  case 1:
414  return PclHLS::TPEPanelDisk1;
415  default:
416  throw cms::Exception("LogicError")
417  << "@SUB=MillePedeFileReader::getHLS\n"
418  << "Found a pixel disk number that should not exist: "
419  << static_cast<signed int>((tns.tpe().endcapNumber(id) == 1) ? -1 * tns.tpe().halfDiskNumber(id)
420  : tns.tpe().halfDiskNumber(id));
421  }
422  default:
423  return PclHLS::NotInPCL;
424  }
425 }
uint32_t ID
Definition: Definitions.h:24
virtual StructureType alignableObjectId() const =0
Return the alignable type identifier.
align::ID id() const
Return the ID of Alignable, i.e. DetId of &#39;first&#39; component GeomDet(Unit).
Definition: Alignable.h:180
const std::shared_ptr< const PedeLabelerBase > pedeLabeler_

◆ getIndexForHG()

int MillePedeFileReader::getIndexForHG ( align::ID  id,
PclHLS  HLS 
)
private

Definition at line 499 of file MillePedeFileReader.cc.

References indexHelper, pedeLabeler_, TPBLadderLayer1, TPBLadderLayer2, TPBLadderLayer3, TPBLadderLayer4, TPEPanelDisk1, TPEPanelDisk2, TPEPanelDisk3, TPEPanelDiskM1, TPEPanelDiskM2, and TPEPanelDiskM3.

Referenced by readMillePedeResultFile().

499  {
500  const auto& tns = pedeLabeler_->alignableTracker()->trackerNameSpace();
501 
502  switch (HLS) {
504  return (tns.tpb().halfBarrelNumber(id) == 1) ? tns.tpb().ladderNumber(id) + indexHelper[HLS].first
505  : tns.tpb().ladderNumber(id) + indexHelper[HLS].second;
507  return (tns.tpb().halfBarrelNumber(id) == 1) ? tns.tpb().ladderNumber(id) + indexHelper[HLS].first
508  : tns.tpb().ladderNumber(id) + indexHelper[HLS].second;
510  return (tns.tpb().halfBarrelNumber(id) == 1) ? tns.tpb().ladderNumber(id) + indexHelper[HLS].first
511  : tns.tpb().ladderNumber(id) + indexHelper[HLS].second;
513  return (tns.tpb().halfBarrelNumber(id) == 1) ? tns.tpb().ladderNumber(id) + indexHelper[HLS].first
514  : tns.tpb().ladderNumber(id) + indexHelper[HLS].second;
516  return (tns.tpe().halfCylinderNumber(id) == 1)
517  ? (tns.tpe().bladeNumber(id) * 2 - (tns.tpe().panelNumber(id) % 2)) + indexHelper[HLS].first
518  : (tns.tpe().bladeNumber(id) * 2 - (tns.tpe().panelNumber(id) % 2)) + indexHelper[HLS].second;
520  return (tns.tpe().halfCylinderNumber(id) == 1)
521  ? (tns.tpe().bladeNumber(id) * 2 - (tns.tpe().panelNumber(id) % 2)) + indexHelper[HLS].first
522  : (tns.tpe().bladeNumber(id) * 2 - (tns.tpe().panelNumber(id) % 2)) + indexHelper[HLS].second;
524  return (tns.tpe().halfCylinderNumber(id) == 1)
525  ? (tns.tpe().bladeNumber(id) * 2 - (tns.tpe().panelNumber(id) % 2)) + indexHelper[HLS].first
526  : (tns.tpe().bladeNumber(id) * 2 - (tns.tpe().panelNumber(id) % 2)) + indexHelper[HLS].second;
528  return (tns.tpe().halfCylinderNumber(id) == 1)
529  ? (tns.tpe().bladeNumber(id) * 2 - (tns.tpe().panelNumber(id) % 2)) + indexHelper[HLS].first
530  : (tns.tpe().bladeNumber(id) * 2 - (tns.tpe().panelNumber(id) % 2)) + indexHelper[HLS].second;
532  return (tns.tpe().halfCylinderNumber(id) == 1)
533  ? (tns.tpe().bladeNumber(id) * 2 - (tns.tpe().panelNumber(id) % 2)) + indexHelper[HLS].first
534  : (tns.tpe().bladeNumber(id) * 2 - (tns.tpe().panelNumber(id) % 2)) + indexHelper[HLS].second;
536  return (tns.tpe().halfCylinderNumber(id) == 1)
537  ? (tns.tpe().bladeNumber(id) * 2 - (tns.tpe().panelNumber(id) % 2)) + indexHelper[HLS].first
538  : (tns.tpe().bladeNumber(id) * 2 - (tns.tpe().panelNumber(id) % 2)) + indexHelper[HLS].second;
539  default:
540  return -200;
541  }
542 }
std::unordered_map< PclHLS, std::pair< int, int > > indexHelper
const std::shared_ptr< const PedeLabelerBase > pedeLabeler_

◆ getResults()

const mpPCLresults MillePedeFileReader::getResults ( ) const
inline

◆ getResultsHG()

const std::map<std::string, std::array<bool, 6> >& MillePedeFileReader::getResultsHG ( ) const
inline

Definition at line 115 of file MillePedeFileReader.h.

References fractionExceeded_.

115 { return fractionExceeded_; }
std::map< std::string, std::array< bool, 6 > > fractionExceeded_

◆ getStringFromHLS()

std::string MillePedeFileReader::getStringFromHLS ( MillePedeFileReader::PclHLS  HLS)
private

Definition at line 427 of file MillePedeFileReader.cc.

References Exception, TPBHalfBarrelXminus, TPBHalfBarrelXplus, TPBLadderLayer1, TPBLadderLayer2, TPBLadderLayer3, TPBLadderLayer4, TPEHalfCylinderXminusZminus, TPEHalfCylinderXminusZplus, TPEHalfCylinderXplusZminus, TPEHalfCylinderXplusZplus, TPEPanelDisk1, TPEPanelDisk2, TPEPanelDisk3, TPEPanelDiskM1, TPEPanelDiskM2, and TPEPanelDiskM3.

Referenced by readMillePedeResultFile().

427  {
428  switch (HLS) {
430  return "TPBHalfBarrelXminus";
432  return "TPBHalfBarrelXplus";
434  return "TPEHalfCylinderXminusZminus";
436  return "TPEHalfCylinderXplusZminus";
438  return "TPEHalfCylinderXminusZplus";
440  return "TPEHalfCylinderXplusZplus";
442  return "TPBLadderLayer1";
444  return "TPBLadderLayer2";
446  return "TPBLadderLayer3";
448  return "TPBLadderLayer4";
450  return "TPEPanelDisk1";
452  return "TPEPanelDisk2";
454  return "TPEPanelDisk3";
456  return "TPEPanelDiskM1";
458  return "TPEPanelDiskM2";
460  return "TPEPanelDiskM3";
461  default:
462  //return "NotInPCL";
463  throw cms::Exception("LogicError")
464  << "@SUB=MillePedeFileReader::getStringFromHLS\n"
465  << "Found an alignable structure not possible to map in the default AlignPCLThresholdsHG partitions";
466  }
467 }

◆ getThresholdMap()

const AlignPCLThresholdsHG::threshold_map MillePedeFileReader::getThresholdMap ( ) const
inline

Definition at line 107 of file MillePedeFileReader.h.

References theThresholds_.

107 { return theThresholds_.get()->getThreshold_Map(); }
const std::shared_ptr< const AlignPCLThresholdsHG > theThresholds_

◆ getTXobs()

const std::array<double, SIZE_LG_STRUCTS>& MillePedeFileReader::getTXobs ( ) const
inline

Definition at line 79 of file MillePedeFileReader.h.

References tXobs_.

79 { return tXobs_; }
std::array< double, SIZE_LG_STRUCTS > tXobs_

◆ getTXobs_HG()

const std::array<double, SIZE_HG_STRUCTS>& MillePedeFileReader::getTXobs_HG ( ) const
inline

Definition at line 94 of file MillePedeFileReader.h.

References tXobs_HG_.

94 { return tXobs_HG_; }
std::array< double, SIZE_HG_STRUCTS > tXobs_HG_

◆ getTXobsErr()

const std::array<double, SIZE_LG_STRUCTS>& MillePedeFileReader::getTXobsErr ( ) const
inline

Definition at line 80 of file MillePedeFileReader.h.

References tXobsErr_.

80 { return tXobsErr_; }
std::array< double, SIZE_LG_STRUCTS > tXobsErr_

◆ getTXobsErr_HG()

const std::array<double, SIZE_HG_STRUCTS>& MillePedeFileReader::getTXobsErr_HG ( ) const
inline

Definition at line 95 of file MillePedeFileReader.h.

References tXobsErr_HG_.

95 { return tXobsErr_HG_; }
std::array< double, SIZE_HG_STRUCTS > tXobsErr_HG_

◆ getTYobs()

const std::array<double, SIZE_LG_STRUCTS>& MillePedeFileReader::getTYobs ( ) const
inline

Definition at line 84 of file MillePedeFileReader.h.

References tYobs_.

84 { return tYobs_; }
std::array< double, SIZE_LG_STRUCTS > tYobs_

◆ getTYobs_HG()

const std::array<double, SIZE_HG_STRUCTS>& MillePedeFileReader::getTYobs_HG ( ) const
inline

Definition at line 99 of file MillePedeFileReader.h.

References tYobs_HG_.

99 { return tYobs_HG_; }
std::array< double, SIZE_HG_STRUCTS > tYobs_HG_

◆ getTYobsErr()

const std::array<double, SIZE_LG_STRUCTS>& MillePedeFileReader::getTYobsErr ( ) const
inline

Definition at line 85 of file MillePedeFileReader.h.

References tYobsErr_.

85 { return tYobsErr_; }
std::array< double, SIZE_LG_STRUCTS > tYobsErr_

◆ getTYobsErr_HG()

const std::array<double, SIZE_HG_STRUCTS>& MillePedeFileReader::getTYobsErr_HG ( ) const
inline

Definition at line 100 of file MillePedeFileReader.h.

References tYobsErr_HG_.

100 { return tYobsErr_HG_; }
std::array< double, SIZE_HG_STRUCTS > tYobsErr_HG_

◆ getTZobs()

const std::array<double, SIZE_LG_STRUCTS>& MillePedeFileReader::getTZobs ( ) const
inline

Definition at line 89 of file MillePedeFileReader.h.

References tZobs_.

89 { return tZobs_; }
std::array< double, SIZE_LG_STRUCTS > tZobs_

◆ getTZobs_HG()

const std::array<double, SIZE_HG_STRUCTS>& MillePedeFileReader::getTZobs_HG ( ) const
inline

Definition at line 104 of file MillePedeFileReader.h.

References tZobs_HG_.

104 { return tZobs_HG_; }
std::array< double, SIZE_HG_STRUCTS > tZobs_HG_

◆ getTZobsErr()

const std::array<double, SIZE_LG_STRUCTS>& MillePedeFileReader::getTZobsErr ( ) const
inline

Definition at line 90 of file MillePedeFileReader.h.

References tZobsErr_.

90 { return tZobsErr_; }
std::array< double, SIZE_LG_STRUCTS > tZobsErr_

◆ getTZobsErr_HG()

const std::array<double, SIZE_HG_STRUCTS>& MillePedeFileReader::getTZobsErr_HG ( ) const
inline

Definition at line 105 of file MillePedeFileReader.h.

References tZobsErr_HG_.

105 { return tZobsErr_HG_; }
std::array< double, SIZE_HG_STRUCTS > tZobsErr_HG_

◆ getXobs()

const std::array<double, SIZE_LG_STRUCTS>& MillePedeFileReader::getXobs ( ) const
inline

Definition at line 77 of file MillePedeFileReader.h.

References Xobs_.

77 { return Xobs_; }
std::array< double, SIZE_LG_STRUCTS > Xobs_

◆ getXobs_HG()

const std::array<double, SIZE_HG_STRUCTS>& MillePedeFileReader::getXobs_HG ( ) const
inline

Definition at line 92 of file MillePedeFileReader.h.

References Xobs_HG_.

92 { return Xobs_HG_; }
std::array< double, SIZE_HG_STRUCTS > Xobs_HG_

◆ getXobsErr()

const std::array<double, SIZE_LG_STRUCTS>& MillePedeFileReader::getXobsErr ( ) const
inline

Definition at line 78 of file MillePedeFileReader.h.

References XobsErr_.

78 { return XobsErr_; }
std::array< double, SIZE_LG_STRUCTS > XobsErr_

◆ getXobsErr_HG()

const std::array<double, SIZE_HG_STRUCTS>& MillePedeFileReader::getXobsErr_HG ( ) const
inline

Definition at line 93 of file MillePedeFileReader.h.

References XobsErr_HG_.

93 { return XobsErr_HG_; }
std::array< double, SIZE_HG_STRUCTS > XobsErr_HG_

◆ getYobs()

const std::array<double, SIZE_LG_STRUCTS>& MillePedeFileReader::getYobs ( ) const
inline

Definition at line 82 of file MillePedeFileReader.h.

References Yobs_.

82 { return Yobs_; }
std::array< double, SIZE_LG_STRUCTS > Yobs_

◆ getYobs_HG()

const std::array<double, SIZE_HG_STRUCTS>& MillePedeFileReader::getYobs_HG ( ) const
inline

Definition at line 97 of file MillePedeFileReader.h.

References Yobs_HG_.

97 { return Yobs_HG_; }
std::array< double, SIZE_HG_STRUCTS > Yobs_HG_

◆ getYobsErr()

const std::array<double, SIZE_LG_STRUCTS>& MillePedeFileReader::getYobsErr ( ) const
inline

Definition at line 83 of file MillePedeFileReader.h.

References YobsErr_.

83 { return YobsErr_; }
std::array< double, SIZE_LG_STRUCTS > YobsErr_

◆ getYobsErr_HG()

const std::array<double, SIZE_HG_STRUCTS>& MillePedeFileReader::getYobsErr_HG ( ) const
inline

Definition at line 98 of file MillePedeFileReader.h.

References YobsErr_HG_.

98 { return YobsErr_HG_; }
std::array< double, SIZE_HG_STRUCTS > YobsErr_HG_

◆ getZobs()

const std::array<double, SIZE_LG_STRUCTS>& MillePedeFileReader::getZobs ( ) const
inline

Definition at line 87 of file MillePedeFileReader.h.

References Zobs_.

87 { return Zobs_; }
std::array< double, SIZE_LG_STRUCTS > Zobs_

◆ getZobs_HG()

const std::array<double, SIZE_HG_STRUCTS>& MillePedeFileReader::getZobs_HG ( ) const
inline

Definition at line 102 of file MillePedeFileReader.h.

References Zobs_HG_.

102 { return Zobs_HG_; }
std::array< double, SIZE_HG_STRUCTS > Zobs_HG_

◆ getZobsErr()

const std::array<double, SIZE_LG_STRUCTS>& MillePedeFileReader::getZobsErr ( ) const
inline

Definition at line 88 of file MillePedeFileReader.h.

References ZobsErr_.

88 { return ZobsErr_; }
std::array< double, SIZE_LG_STRUCTS > ZobsErr_

◆ getZobsErr_HG()

const std::array<double, SIZE_HG_STRUCTS>& MillePedeFileReader::getZobsErr_HG ( ) const
inline

Definition at line 103 of file MillePedeFileReader.h.

References ZobsErr_HG_.

103 { return ZobsErr_HG_; }
std::array< double, SIZE_HG_STRUCTS > ZobsErr_HG_

◆ initializeIndexHelper()

void MillePedeFileReader::initializeIndexHelper ( )
private

Definition at line 469 of file MillePedeFileReader.cc.

References indexHelper, pixelTopologyMap_, TPBLadderLayer1, TPBLadderLayer2, TPBLadderLayer3, TPBLadderLayer4, TPEPanelDisk1, TPEPanelDisk2, TPEPanelDisk3, TPEPanelDiskM1, TPEPanelDiskM2, and TPEPanelDiskM3.

Referenced by read().

469  {
470  int currentSum = 0;
471 
473  std::make_pair(currentSum, currentSum + pixelTopologyMap_->getPXBLadders(1) / 2);
474  currentSum += pixelTopologyMap_->getPXBLadders(1);
476  std::make_pair(currentSum, currentSum + pixelTopologyMap_->getPXBLadders(2) / 2);
477  currentSum += pixelTopologyMap_->getPXBLadders(2);
479  std::make_pair(currentSum, currentSum + pixelTopologyMap_->getPXBLadders(3) / 2);
480  currentSum += pixelTopologyMap_->getPXBLadders(3);
482  std::make_pair(currentSum, currentSum + pixelTopologyMap_->getPXBLadders(4) / 2);
483  currentSum += pixelTopologyMap_->getPXBLadders(4);
484 
485  indexHelper[PclHLS::TPEPanelDiskM3] = std::make_pair(currentSum, currentSum + pixelTopologyMap_->getPXFBlades(-3));
486  currentSum += pixelTopologyMap_->getPXFBlades(-3) * 2;
487  indexHelper[PclHLS::TPEPanelDiskM2] = std::make_pair(currentSum, currentSum + pixelTopologyMap_->getPXFBlades(-2));
488  currentSum += pixelTopologyMap_->getPXFBlades(-2) * 2;
489  indexHelper[PclHLS::TPEPanelDiskM1] = std::make_pair(currentSum, currentSum + pixelTopologyMap_->getPXFBlades(-1));
490  currentSum += pixelTopologyMap_->getPXFBlades(-1) * 2;
491 
492  indexHelper[PclHLS::TPEPanelDisk1] = std::make_pair(currentSum, currentSum + pixelTopologyMap_->getPXFBlades(1));
493  currentSum += pixelTopologyMap_->getPXFBlades(1) * 2;
494  indexHelper[PclHLS::TPEPanelDisk2] = std::make_pair(currentSum, currentSum + pixelTopologyMap_->getPXFBlades(2));
495  currentSum += pixelTopologyMap_->getPXFBlades(2) * 2;
496  indexHelper[PclHLS::TPEPanelDisk3] = std::make_pair(currentSum, currentSum + pixelTopologyMap_->getPXFBlades(3));
497 }
const std::shared_ptr< const PixelTopologyMap > pixelTopologyMap_
std::unordered_map< PclHLS, std::pair< int, int > > indexHelper

◆ read()

void MillePedeFileReader::read ( )

◆ readMillePedeEndFile()

void MillePedeFileReader::readMillePedeEndFile ( )
private

Definition at line 46 of file MillePedeFileReader.cc.

References dirName_, exitCode_, exitMessage_, mps_splice::line, millePedeEndFile_, and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by read().

46  {
47  std::ifstream endFile;
48  endFile.open((dirName_ + millePedeEndFile_).c_str());
49 
50  if (endFile.is_open()) {
51  edm::LogInfo("MillePedeFileReader") << "Reading millepede end-file";
53  getline(endFile, line);
54  std::string trash;
55  if (line.find("-1") != std::string::npos) {
56  getline(endFile, line);
58  std::istringstream iss(line);
59  iss >> exitCode_ >> trash;
60  edm::LogInfo("MillePedeFileReader")
61  << " Pede exit code is: " << exitCode_ << " (" << exitMessage_ << ")" << std::endl;
62  } else {
64  std::istringstream iss(line);
65  iss >> exitCode_ >> trash;
66  edm::LogInfo("MillePedeFileReader")
67  << " Pede exit code is: " << exitCode_ << " (" << exitMessage_ << ")" << std::endl;
68  }
69  } else {
70  edm::LogError("MillePedeFileReader") << "Could not read millepede end-file.";
71  exitMessage_ = "no exit code found";
72  }
73 }
Log< level::Error, false > LogError
Log< level::Info, false > LogInfo
const std::string millePedeEndFile_

◆ readMillePedeLogFile()

void MillePedeFileReader::readMillePedeLogFile ( )
private

Definition at line 75 of file MillePedeFileReader.cc.

References binariesAmount_, dirName_, mps_splice::line, heppy_check::logFile, millePedeLogFile_, Nrec_, AlCaHLTBitMon_QueryRunRegistry::string, theThresholds_, and updateDB_.

Referenced by read().

75  {
76  std::ifstream logFile;
77  logFile.open((dirName_ + millePedeLogFile_).c_str());
78 
79  if (logFile.is_open()) {
80  edm::LogInfo("MillePedeFileReader") << "Reading millepede log-file";
82 
83  while (getline(logFile, line)) {
84  std::string Nrec_string = "NREC =";
85  std::string Binaries_string = "C_binary";
86 
87  if (line.find(Nrec_string) != std::string::npos) {
88  std::istringstream iss(line);
89  std::string trash;
90  iss >> trash >> trash >> Nrec_;
91 
92  if (Nrec_ < theThresholds_->getNrecords()) {
93  edm::LogInfo("MillePedeFileReader")
94  << "Number of records used " << theThresholds_->getNrecords() << std::endl;
95  updateDB_ = false;
96  }
97  }
98 
99  if (line.find(Binaries_string) != std::string::npos) {
100  binariesAmount_ += 1;
101  }
102  }
103  } else {
104  edm::LogError("MillePedeFileReader") << "Could not read millepede log-file.";
105 
106  updateDB_ = false;
107  Nrec_ = 0;
108  }
109 }
const std::shared_ptr< const AlignPCLThresholdsHG > theThresholds_
Log< level::Error, false > LogError
const std::string millePedeLogFile_
Log< level::Info, false > LogInfo

◆ readMillePedeResultFile()

void MillePedeFileReader::readMillePedeResultFile ( )
private

Definition at line 111 of file MillePedeFileReader.cc.

References funct::abs(), clustersummarymultiplicityprod_cfi::detLabel, dirName_, fractionExceeded_, AlignableObjectId::General, getHLS(), getIndexForHG(), getStringFromHLS(), mps_fire::i, l1ctLayer2EG_cff::id, isHG_, mps_splice::line, millePedeResFile_, multiplier_, NotInPCL, Nrec_, pedeLabeler_, contentValuesCheck::ss, AlCaHLTBitMon_QueryRunRegistry::string, DetId::subdetId(), AlignPCLThresholds::theta_X, AlignPCLThresholds::theta_Y, AlignPCLThresholds::theta_Z, theThresholds_, unpackBuffers-CaloStage2::token, align::TPBLadder, align::TPEPanel, tXobs_, tXobs_HG_, tXobsErr_, tXobsErr_HG_, tYobs_, tYobs_HG_, tYobsErr_, tYobsErr_HG_, tZobs_, tZobs_HG_, tZobsErr_, tZobsErr_HG_, updateBits_, updateDB_, vetoUpdateDB_, AlignPCLThresholds::X, Xobs_, Xobs_HG_, XobsErr_, XobsErr_HG_, AlignPCLThresholds::Y, Yobs_, Yobs_HG_, YobsErr_, YobsErr_HG_, AlignPCLThresholds::Z, Zobs_, Zobs_HG_, ZobsErr_, and ZobsErr_HG_.

Referenced by read().

111  {
112  // cutoffs by coordinate and by alignable
113  std::map<std::string, std::array<float, 6> > cutoffs_;
114  std::map<std::string, std::array<float, 6> > significances_;
115  std::map<std::string, std::array<float, 6> > thresholds_;
116  std::map<std::string, std::array<float, 6> > errors_;
117  std::map<std::string, std::array<float, 6> > fractions_;
118 
119  std::map<std::string, std::array<int, 6> > countsAbove_;
120  std::map<std::string, std::array<int, 6> > countsTotal_;
121 
123 
124  std::vector<std::string> alignables_ = theThresholds_->getAlignableList();
125  for (auto& ali : alignables_) {
126  cutoffs_[ali] = theThresholds_->getCut(ali);
127  significances_[ali] = theThresholds_->getSigCut(ali);
128  thresholds_[ali] = theThresholds_->getMaxMoveCut(ali);
129  errors_[ali] = theThresholds_->getMaxErrorCut(ali);
130 
131  if (theThresholds_->hasFloatMap(ali)) {
132  fractions_[ali] = theThresholds_->getFractionCut(ali);
133  countsAbove_[ali] = {{0, 0, 0, 0, 0, 0}};
134  countsTotal_[ali] = {{0, 0, 0, 0, 0, 0}};
135  }
136  }
137 
138  updateDB_ = false;
139  vetoUpdateDB_ = false;
140  std::ifstream resFile;
141  resFile.open((dirName_ + millePedeResFile_).c_str());
142 
143  if (resFile.is_open()) {
144  edm::LogInfo("MillePedeFileReader") << "Reading millepede result-file";
145 
147  getline(resFile, line); // drop first line
148 
149  while (getline(resFile, line)) {
150  std::istringstream iss(line);
151 
152  std::vector<std::string> tokens;
154  while (iss >> token) {
155  tokens.push_back(token);
156  }
157 
158  auto alignableLabel = std::stoul(tokens[0]);
159  const auto alignable = pedeLabeler_->alignableFromLabel(alignableLabel);
160  auto det = getHLS(alignable);
161  int detIndex = static_cast<int>(det);
162  auto alignableIndex = alignableLabel % 10 - 1;
164 
165  if (tokens.size() > 4 /*3*/) {
166  countsTotal_[detLabel][alignableIndex]++; //Count aligned modules/ladders per structure
167  const auto paramNum = pedeLabeler_->paramNumFromLabel(alignableLabel);
168  align::StructureType type = alignable->alignableObjectId();
169  align::ID id = alignable->id();
170 
171  double ObsMove = std::stof(tokens[3]) * multiplier_[alignableIndex];
172  double ObsErr = std::stof(tokens[4]) * multiplier_[alignableIndex];
173 
174  auto coord = static_cast<AlignPCLThresholdsHG::coordType>(alignableIndex);
175 
176  if (det != PclHLS::NotInPCL) {
177  if (type != align::TPBLadder && type != align::TPEPanel) {
178  switch (coord) {
180  Xobs_[detIndex] = ObsMove;
181  XobsErr_[detIndex] = ObsErr;
182  break;
184  Yobs_[detIndex] = ObsMove;
185  YobsErr_[detIndex] = ObsErr;
186  break;
188  Zobs_[detIndex] = ObsMove;
189  ZobsErr_[detIndex] = ObsErr;
190  break;
192  tXobs_[detIndex] = ObsMove;
193  tXobsErr_[detIndex] = ObsErr;
194  break;
196  tYobs_[detIndex] = ObsMove;
197  tYobsErr_[detIndex] = ObsErr;
198  break;
200  tZobs_[detIndex] = ObsMove;
201  tZobsErr_[detIndex] = ObsErr;
202  break;
203  default:
204  edm::LogError("MillePedeFileReader") << "Currently not able to handle DOF " << coord << std::endl;
205  break;
206  }
207  } else {
208  auto hgIndex = getIndexForHG(id, det);
209  switch (coord) {
211  Xobs_HG_[hgIndex - 1] = ObsMove;
212  XobsErr_HG_[hgIndex - 1] = ObsErr;
213  break;
215  Yobs_HG_[hgIndex - 1] = ObsMove;
216  YobsErr_HG_[hgIndex - 1] = ObsErr;
217  break;
219  Zobs_HG_[hgIndex - 1] = ObsMove;
220  ZobsErr_HG_[hgIndex - 1] = ObsErr;
221  break;
223  tXobs_HG_[hgIndex - 1] = ObsMove;
224  tXobsErr_HG_[hgIndex - 1] = ObsErr;
225  break;
227  tYobs_HG_[hgIndex - 1] = ObsMove;
228  tYobsErr_HG_[hgIndex - 1] = ObsErr;
229  break;
231  tZobs_HG_[hgIndex - 1] = ObsMove;
232  tZobsErr_HG_[hgIndex - 1] = ObsErr;
233  break;
234  default:
235  edm::LogError("MillePedeFileReader") << "Currently not able to handle DOF " << coord << std::endl;
236  break;
237  }
238  }
239 
240  } else {
241  edm::LogError("MillePedeFileReader")
242  << "Currently not able to handle coordinate: " << coord << " (" << paramNum << ") "
243  << Form(" %s with ID %d (subdet %d)", alignableObjectId.idToString(type), id, DetId(id).subdetId())
244  << std::endl;
245  continue;
246  }
247 
248  edm::LogVerbatim("MillePedeFileReader")
249  << " alignableLabel: " << alignableLabel << " with alignableIndex " << alignableIndex << " detIndex "
250  << detIndex << "\n"
251  << " i.e. detLabel: " << detLabel << " (" << coord << ")\n"
252  << " has movement: " << ObsMove << " +/- " << ObsErr << "\n"
253  << " cutoff (cutoffs_[" << detLabel << "][" << coord << "]): " << cutoffs_[detLabel][alignableIndex] << "\n"
254  << " significance (significances_[" << detLabel << "][" << coord
255  << "]): " << significances_[detLabel][alignableIndex] << "\n"
256  << " error thresolds (errors_[" << detLabel << "][" << coord << "]): " << errors_[detLabel][alignableIndex]
257  << "\n"
258  << " max movement (thresholds_[" << detLabel << "][" << coord
259  << "]): " << thresholds_[detLabel][alignableIndex] << "\n"
260  << " fraction (fractions_[" << detLabel << "][" << coord << "]): " << fractions_[detLabel][alignableIndex]
261  << "\n"
262  << "=============" << std::endl;
263 
264  if (std::abs(ObsMove) > thresholds_[detLabel][alignableIndex]) {
265  edm::LogWarning("MillePedeFileReader") << "Aborting payload creation."
266  << " Exceeding maximum thresholds for movement: " << std::abs(ObsMove)
267  << " for" << detLabel << "(" << coord << ")";
268  updateBits_.set(0);
269  vetoUpdateDB_ = true;
270  continue;
271 
272  } else if (std::abs(ObsMove) > cutoffs_[detLabel][alignableIndex]) {
273  updateBits_.set(1);
274 
275  if (std::abs(ObsErr) > errors_[detLabel][alignableIndex]) {
276  edm::LogWarning("MillePedeFileReader") << "Aborting payload creation."
277  << " Exceeding maximum thresholds for error: " << std::abs(ObsErr)
278  << " for" << detLabel << "(" << coord << ")";
279  updateBits_.set(2);
280  vetoUpdateDB_ = true;
281  continue;
282  } else {
283  if (std::abs(ObsMove / ObsErr) < significances_[detLabel][alignableIndex]) {
284  updateBits_.set(3);
285  continue;
286  }
287  }
288  updateDB_ = true;
289  if (!isHG_) {
290  edm::LogInfo("MillePedeFileReader")
291  << "This correction: " << ObsMove << "+/-" << ObsErr << " for " << detLabel << "(" << coord
292  << ") will trigger a new Tracker Alignment payload!";
293  }
294  countsAbove_[detLabel][alignableIndex]++;
295  }
296  }
297  }
298  } else {
299  edm::LogError("MillePedeFileReader") << "Could not read millepede result-file.";
300 
301  updateDB_ = false;
302  Nrec_ = 0;
303  }
304 
305  if (isHG_) { // check fractionCut
306  updateDB_ = false; // reset booleans since fractionCut is considered for HG
307  std::stringstream ss;
308  for (auto& ali : alignables_) {
309  ss << ali << std::endl;
310  for (long unsigned int i = 0; i < countsTotal_[ali].size(); i++) {
311  if (countsTotal_[ali][i] != 0 && fractions_[ali][i] != -1) {
312  float fraction_ = countsAbove_[ali][i] / (1.0 * countsTotal_[ali][i]);
313  ss << static_cast<AlignPCLThresholdsHG::coordType>(i) << ": Fraction = " << fraction_
314  << " Fraction Threshold = " << fractions_[ali][i];
315  if (fraction_ >= fractions_[ali][i]) {
316  updateDB_ = true;
317  ss << " above fraction threshold" << std::endl;
318  fractionExceeded_[ali][i] = true;
319  } else {
320  ss << std::endl;
321  fractionExceeded_[ali][i] = false;
322  }
323  } else
324  ss << "No entries available or no fraction thresholds defined" << std::endl;
325  }
326  ss << "===================" << std::endl;
327  }
328  if (updateDB_ && !vetoUpdateDB_) {
329  ss << "Alignment will be updated" << std::endl;
330  } else {
331  ss << "Alignment will NOT be updated" << std::endl;
332  }
333  edm::LogWarning("MillePedeFileReader") << ss.str();
334  }
335 }
std::array< double, SIZE_LG_STRUCTS > Zobs_
Log< level::Info, true > LogVerbatim
std::array< double, SIZE_HG_STRUCTS > tXobs_HG_
std::array< double, SIZE_LG_STRUCTS > tYobs_
std::array< double, SIZE_LG_STRUCTS > tZobsErr_
std::array< double, SIZE_LG_STRUCTS > Yobs_
const std::shared_ptr< const AlignPCLThresholdsHG > theThresholds_
std::array< double, SIZE_HG_STRUCTS > XobsErr_HG_
uint32_t ID
Definition: Definitions.h:24
std::bitset< 4 > updateBits_
std::array< double, SIZE_LG_STRUCTS > YobsErr_
std::array< double, SIZE_HG_STRUCTS > YobsErr_HG_
PclHLS getHLS(const Alignable *)
Log< level::Error, false > LogError
std::array< double, SIZE_HG_STRUCTS > Zobs_HG_
std::array< double, SIZE_LG_STRUCTS > Xobs_
static constexpr std::array< double, 6 > multiplier_
std::array< double, SIZE_HG_STRUCTS > Xobs_HG_
std::array< double, SIZE_HG_STRUCTS > tYobs_HG_
std::array< double, SIZE_LG_STRUCTS > tXobs_
std::array< double, SIZE_LG_STRUCTS > tYobsErr_
std::array< double, SIZE_HG_STRUCTS > ZobsErr_HG_
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
std::array< double, SIZE_HG_STRUCTS > tZobs_HG_
Allows conversion between type and name, and vice-versa.
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector&#39;s numbering enum) ...
Definition: DetId.h:48
std::string getStringFromHLS(PclHLS HLS)
Log< level::Info, false > LogInfo
Definition: DetId.h:17
const std::string millePedeResFile_
std::array< double, SIZE_LG_STRUCTS > tXobsErr_
std::array< double, SIZE_HG_STRUCTS > tZobsErr_HG_
std::array< double, SIZE_LG_STRUCTS > XobsErr_
int getIndexForHG(align::ID id, PclHLS HLS)
const std::shared_ptr< const PedeLabelerBase > pedeLabeler_
std::array< double, SIZE_HG_STRUCTS > tXobsErr_HG_
std::array< double, SIZE_HG_STRUCTS > Yobs_HG_
std::array< double, SIZE_LG_STRUCTS > tZobs_
std::map< std::string, std::array< bool, 6 > > fractionExceeded_
Log< level::Warning, false > LogWarning
std::array< double, SIZE_LG_STRUCTS > ZobsErr_
std::array< double, SIZE_HG_STRUCTS > tYobsErr_HG_

◆ storeAlignments()

bool MillePedeFileReader::storeAlignments ( )

Member Data Documentation

◆ binariesAmount_

int MillePedeFileReader::binariesAmount_ {0}
private

Definition at line 192 of file MillePedeFileReader.h.

Referenced by binariesAmount(), and readMillePedeLogFile().

◆ dirName_

std::string MillePedeFileReader::dirName_
private

◆ exitCode_

int MillePedeFileReader::exitCode_ {-1}
private

Definition at line 198 of file MillePedeFileReader.h.

Referenced by getResults(), and readMillePedeEndFile().

◆ exitMessage_

std::string MillePedeFileReader::exitMessage_ {""}
private

Definition at line 199 of file MillePedeFileReader.h.

Referenced by getResults(), and readMillePedeEndFile().

◆ fractionExceeded_

std::map<std::string, std::array<bool, 6> > MillePedeFileReader::fractionExceeded_
private

Definition at line 195 of file MillePedeFileReader.h.

Referenced by getResultsHG(), and readMillePedeResultFile().

◆ indexHelper

std::unordered_map<PclHLS, std::pair<int, int> > MillePedeFileReader::indexHelper
private

Definition at line 231 of file MillePedeFileReader.h.

Referenced by getIndexForHG(), and initializeIndexHelper().

◆ isHG_

const bool MillePedeFileReader::isHG_
private

Definition at line 182 of file MillePedeFileReader.h.

Referenced by getResults(), read(), and readMillePedeResultFile().

◆ millePedeEndFile_

const std::string MillePedeFileReader::millePedeEndFile_
private

Definition at line 168 of file MillePedeFileReader.h.

Referenced by readMillePedeEndFile().

◆ millePedeLogFile_

const std::string MillePedeFileReader::millePedeLogFile_
private

Definition at line 169 of file MillePedeFileReader.h.

Referenced by readMillePedeLogFile().

◆ millePedeResFile_

const std::string MillePedeFileReader::millePedeResFile_
private

Definition at line 170 of file MillePedeFileReader.h.

Referenced by readMillePedeResultFile().

◆ multiplier_

constexpr std::array< double, 6 > MillePedeFileReader::multiplier_
staticprivate
Initial value:
= {{10000.,
10000.,
10000.,
1000000.,
1000000.,
1000000.}}

Definition at line 173 of file MillePedeFileReader.h.

Referenced by readMillePedeResultFile().

◆ Nrec_

int MillePedeFileReader::Nrec_ {0}
private

◆ pedeLabeler_

const std::shared_ptr<const PedeLabelerBase> MillePedeFileReader::pedeLabeler_
private

Definition at line 156 of file MillePedeFileReader.h.

Referenced by getHLS(), getIndexForHG(), and readMillePedeResultFile().

◆ pixelTopologyMap_

const std::shared_ptr<const PixelTopologyMap> MillePedeFileReader::pixelTopologyMap_
private

Definition at line 162 of file MillePedeFileReader.h.

Referenced by initializeIndexHelper().

◆ theThresholds_

const std::shared_ptr<const AlignPCLThresholdsHG> MillePedeFileReader::theThresholds_
private

◆ tXobs_

std::array<double, SIZE_LG_STRUCTS> MillePedeFileReader::tXobs_ = std::array<double, SIZE_LG_STRUCTS>()
private

Definition at line 203 of file MillePedeFileReader.h.

Referenced by getTXobs(), and readMillePedeResultFile().

◆ tXobs_HG_

std::array<double, SIZE_HG_STRUCTS> MillePedeFileReader::tXobs_HG_ = std::array<double, SIZE_HG_STRUCTS>()
private

Definition at line 218 of file MillePedeFileReader.h.

Referenced by getTXobs_HG(), and readMillePedeResultFile().

◆ tXobsErr_

std::array<double, SIZE_LG_STRUCTS> MillePedeFileReader::tXobsErr_ = std::array<double, SIZE_LG_STRUCTS>()
private

Definition at line 204 of file MillePedeFileReader.h.

Referenced by getTXobsErr(), and readMillePedeResultFile().

◆ tXobsErr_HG_

std::array<double, SIZE_HG_STRUCTS> MillePedeFileReader::tXobsErr_HG_ = std::array<double, SIZE_HG_STRUCTS>()
private

Definition at line 219 of file MillePedeFileReader.h.

Referenced by getTXobsErr_HG(), and readMillePedeResultFile().

◆ tYobs_

std::array<double, SIZE_LG_STRUCTS> MillePedeFileReader::tYobs_ = std::array<double, SIZE_LG_STRUCTS>()
private

Definition at line 208 of file MillePedeFileReader.h.

Referenced by getTYobs(), and readMillePedeResultFile().

◆ tYobs_HG_

std::array<double, SIZE_HG_STRUCTS> MillePedeFileReader::tYobs_HG_ = std::array<double, SIZE_HG_STRUCTS>()
private

Definition at line 223 of file MillePedeFileReader.h.

Referenced by getTYobs_HG(), and readMillePedeResultFile().

◆ tYobsErr_

std::array<double, SIZE_LG_STRUCTS> MillePedeFileReader::tYobsErr_ = std::array<double, SIZE_LG_STRUCTS>()
private

Definition at line 209 of file MillePedeFileReader.h.

Referenced by getTYobsErr(), and readMillePedeResultFile().

◆ tYobsErr_HG_

std::array<double, SIZE_HG_STRUCTS> MillePedeFileReader::tYobsErr_HG_ = std::array<double, SIZE_HG_STRUCTS>()
private

Definition at line 224 of file MillePedeFileReader.h.

Referenced by getTYobsErr_HG(), and readMillePedeResultFile().

◆ tZobs_

std::array<double, SIZE_LG_STRUCTS> MillePedeFileReader::tZobs_ = std::array<double, SIZE_LG_STRUCTS>()
private

Definition at line 213 of file MillePedeFileReader.h.

Referenced by getTZobs(), and readMillePedeResultFile().

◆ tZobs_HG_

std::array<double, SIZE_HG_STRUCTS> MillePedeFileReader::tZobs_HG_ = std::array<double, SIZE_HG_STRUCTS>()
private

Definition at line 228 of file MillePedeFileReader.h.

Referenced by getTZobs_HG(), and readMillePedeResultFile().

◆ tZobsErr_

std::array<double, SIZE_LG_STRUCTS> MillePedeFileReader::tZobsErr_ = std::array<double, SIZE_LG_STRUCTS>()
private

Definition at line 214 of file MillePedeFileReader.h.

Referenced by getTZobsErr(), and readMillePedeResultFile().

◆ tZobsErr_HG_

std::array<double, SIZE_HG_STRUCTS> MillePedeFileReader::tZobsErr_HG_ = std::array<double, SIZE_HG_STRUCTS>()
private

Definition at line 229 of file MillePedeFileReader.h.

Referenced by getTZobsErr_HG(), and readMillePedeResultFile().

◆ updateBits_

std::bitset<4> MillePedeFileReader::updateBits_
private

Definition at line 189 of file MillePedeFileReader.h.

Referenced by getResults(), and readMillePedeResultFile().

◆ updateDB_

bool MillePedeFileReader::updateDB_ {false}
private

◆ vetoUpdateDB_

bool MillePedeFileReader::vetoUpdateDB_ {false}
private

Definition at line 181 of file MillePedeFileReader.h.

Referenced by getResults(), readMillePedeResultFile(), and storeAlignments().

◆ Xobs_

std::array<double, SIZE_LG_STRUCTS> MillePedeFileReader::Xobs_ = std::array<double, SIZE_LG_STRUCTS>()
private

Definition at line 201 of file MillePedeFileReader.h.

Referenced by getXobs(), and readMillePedeResultFile().

◆ Xobs_HG_

std::array<double, SIZE_HG_STRUCTS> MillePedeFileReader::Xobs_HG_ = std::array<double, SIZE_HG_STRUCTS>()
private

Definition at line 216 of file MillePedeFileReader.h.

Referenced by getXobs_HG(), and readMillePedeResultFile().

◆ XobsErr_

std::array<double, SIZE_LG_STRUCTS> MillePedeFileReader::XobsErr_ = std::array<double, SIZE_LG_STRUCTS>()
private

Definition at line 202 of file MillePedeFileReader.h.

Referenced by getXobsErr(), and readMillePedeResultFile().

◆ XobsErr_HG_

std::array<double, SIZE_HG_STRUCTS> MillePedeFileReader::XobsErr_HG_ = std::array<double, SIZE_HG_STRUCTS>()
private

Definition at line 217 of file MillePedeFileReader.h.

Referenced by getXobsErr_HG(), and readMillePedeResultFile().

◆ Yobs_

std::array<double, SIZE_LG_STRUCTS> MillePedeFileReader::Yobs_ = std::array<double, SIZE_LG_STRUCTS>()
private

Definition at line 206 of file MillePedeFileReader.h.

Referenced by getYobs(), and readMillePedeResultFile().

◆ Yobs_HG_

std::array<double, SIZE_HG_STRUCTS> MillePedeFileReader::Yobs_HG_ = std::array<double, SIZE_HG_STRUCTS>()
private

Definition at line 221 of file MillePedeFileReader.h.

Referenced by getYobs_HG(), and readMillePedeResultFile().

◆ YobsErr_

std::array<double, SIZE_LG_STRUCTS> MillePedeFileReader::YobsErr_ = std::array<double, SIZE_LG_STRUCTS>()
private

Definition at line 207 of file MillePedeFileReader.h.

Referenced by getYobsErr(), and readMillePedeResultFile().

◆ YobsErr_HG_

std::array<double, SIZE_HG_STRUCTS> MillePedeFileReader::YobsErr_HG_ = std::array<double, SIZE_HG_STRUCTS>()
private

Definition at line 222 of file MillePedeFileReader.h.

Referenced by getYobsErr_HG(), and readMillePedeResultFile().

◆ Zobs_

std::array<double, SIZE_LG_STRUCTS> MillePedeFileReader::Zobs_ = std::array<double, SIZE_LG_STRUCTS>()
private

Definition at line 211 of file MillePedeFileReader.h.

Referenced by getZobs(), and readMillePedeResultFile().

◆ Zobs_HG_

std::array<double, SIZE_HG_STRUCTS> MillePedeFileReader::Zobs_HG_ = std::array<double, SIZE_HG_STRUCTS>()
private

Definition at line 226 of file MillePedeFileReader.h.

Referenced by getZobs_HG(), and readMillePedeResultFile().

◆ ZobsErr_

std::array<double, SIZE_LG_STRUCTS> MillePedeFileReader::ZobsErr_ = std::array<double, SIZE_LG_STRUCTS>()
private

Definition at line 212 of file MillePedeFileReader.h.

Referenced by getZobsErr(), and readMillePedeResultFile().

◆ ZobsErr_HG_

std::array<double, SIZE_HG_STRUCTS> MillePedeFileReader::ZobsErr_HG_ = std::array<double, SIZE_HG_STRUCTS>()
private

Definition at line 227 of file MillePedeFileReader.h.

Referenced by getZobsErr_HG(), and readMillePedeResultFile().