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 58 of file MillePedeFileReader.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
SIZE_LG_STRUCTS 
SIZE_HG_STRUCTS 

Definition at line 71 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 117 of file MillePedeFileReader.h.

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

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 105 of file MillePedeFileReader.h.

References binariesAmount_.

◆ getHLS()

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

Definition at line 344 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().

344  {
345  if (!alignable)
346  return PclHLS::NotInPCL;
347 
348  const auto& tns = pedeLabeler_->alignableTracker()->trackerNameSpace();
349  const align::ID id = alignable->id();
350 
351  switch (alignable->alignableObjectId()) {
353  switch (tns.tpb().halfBarrelNumber(id)) {
354  case 1:
356  case 2:
358  default:
359  throw cms::Exception("LogicError")
360  << "@SUB=MillePedeFileReader::getHLS\n"
361  << "Found a pixel half-barrel number that should not exist: " << tns.tpb().halfBarrelNumber(id);
362  }
364  switch (tns.tpe().endcapNumber(id)) {
365  case 1:
366  switch (tns.tpe().halfCylinderNumber(id)) {
367  case 1:
369  case 2:
371  default:
372  throw cms::Exception("LogicError")
373  << "@SUB=MillePedeFileReader::getHLS\n"
374  << "Found a pixel half-cylinder number that should not exist: " << tns.tpe().halfCylinderNumber(id);
375  }
376  case 2:
377  switch (tns.tpe().halfCylinderNumber(id)) {
378  case 1:
380  case 2:
382  default:
383  throw cms::Exception("LogicError")
384  << "@SUB=MillePedeFileReader::getHLS\n"
385  << "Found a pixel half-cylinder number that should not exist: " << tns.tpe().halfCylinderNumber(id);
386  }
387  default:
388  throw cms::Exception("LogicError")
389  << "@SUB=MillePedeFileReader::getHLS\n"
390  << "Found a pixel endcap number that should not exist: " << tns.tpe().endcapNumber(id);
391  }
392  case align::TPBLadder:
393  switch (tns.tpb().layerNumber(id)) {
394  case 1:
396  case 2:
398  case 3:
400  case 4:
402  default:
403  throw cms::Exception("LogicError")
404  << "@SUB=MillePedeFileReader::getHLS\n"
405  << "Found a pixel layer number that should not exist: " << tns.tpb().layerNumber(id);
406  }
407  case align::TPEPanel:
408  switch (static_cast<signed int>((tns.tpe().endcapNumber(id) == 1) ? -1 * tns.tpe().halfDiskNumber(id)
409  : tns.tpe().halfDiskNumber(id))) {
410  case -3:
411  return PclHLS::TPEPanelDiskM3;
412  case -2:
413  return PclHLS::TPEPanelDiskM2;
414  case -1:
415  return PclHLS::TPEPanelDiskM1;
416  case 3:
417  return PclHLS::TPEPanelDisk3;
418  case 2:
419  return PclHLS::TPEPanelDisk2;
420  case 1:
421  return PclHLS::TPEPanelDisk1;
422  default:
423  throw cms::Exception("LogicError")
424  << "@SUB=MillePedeFileReader::getHLS\n"
425  << "Found a pixel disk number that should not exist: "
426  << static_cast<signed int>((tns.tpe().endcapNumber(id) == 1) ? -1 * tns.tpe().halfDiskNumber(id)
427  : tns.tpe().halfDiskNumber(id));
428  }
429  default:
430  return PclHLS::NotInPCL;
431  }
432 }
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 507 of file MillePedeFileReader.cc.

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

Referenced by readMillePedeResultFile().

507  {
508  const auto& tns = pedeLabeler_->alignableTracker()->trackerNameSpace();
509 
510  switch (HLS) {
512  return (tns.tpb().halfBarrelNumber(id) == 1) ? tns.tpb().ladderNumber(id) + indexHelper[HLS].first
513  : tns.tpb().ladderNumber(id) + indexHelper[HLS].second;
515  return (tns.tpb().halfBarrelNumber(id) == 1) ? tns.tpb().ladderNumber(id) + indexHelper[HLS].first
516  : tns.tpb().ladderNumber(id) + indexHelper[HLS].second;
518  return (tns.tpb().halfBarrelNumber(id) == 1) ? tns.tpb().ladderNumber(id) + indexHelper[HLS].first
519  : tns.tpb().ladderNumber(id) + indexHelper[HLS].second;
521  return (tns.tpb().halfBarrelNumber(id) == 1) ? tns.tpb().ladderNumber(id) + indexHelper[HLS].first
522  : tns.tpb().ladderNumber(id) + 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;
540  return (tns.tpe().halfCylinderNumber(id) == 1)
541  ? (tns.tpe().bladeNumber(id) * 2 - (tns.tpe().panelNumber(id) % 2)) + indexHelper[HLS].first
542  : (tns.tpe().bladeNumber(id) * 2 - (tns.tpe().panelNumber(id) % 2)) + indexHelper[HLS].second;
544  return (tns.tpe().halfCylinderNumber(id) == 1)
545  ? (tns.tpe().bladeNumber(id) * 2 - (tns.tpe().panelNumber(id) % 2)) + indexHelper[HLS].first
546  : (tns.tpe().bladeNumber(id) * 2 - (tns.tpe().panelNumber(id) % 2)) + indexHelper[HLS].second;
547  default:
548  return -200;
549  }
550 }
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 111 of file MillePedeFileReader.h.

References fractionExceeded_.

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

◆ getStringFromHLS()

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

Definition at line 434 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().

434  {
435  switch (HLS) {
437  return "TPBHalfBarrelXminus";
439  return "TPBHalfBarrelXplus";
441  return "TPEHalfCylinderXminusZminus";
443  return "TPEHalfCylinderXplusZminus";
445  return "TPEHalfCylinderXminusZplus";
447  return "TPEHalfCylinderXplusZplus";
449  return "TPBLadderLayer1";
451  return "TPBLadderLayer2";
453  return "TPBLadderLayer3";
455  return "TPBLadderLayer4";
457  return "TPEPanelDisk1";
459  return "TPEPanelDisk2";
461  return "TPEPanelDisk3";
463  return "TPEPanelDiskM1";
465  return "TPEPanelDiskM2";
467  return "TPEPanelDiskM3";
468  default:
469  //return "NotInPCL";
470  throw cms::Exception("LogicError")
471  << "@SUB=MillePedeFileReader::getStringFromHLS\n"
472  << "Found an alignable structure not possible to map in the default AlignPCLThresholdsHG partitions";
473  }
474 }

◆ getThresholdMap()

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

Definition at line 103 of file MillePedeFileReader.h.

References theThresholds_.

103 { 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 75 of file MillePedeFileReader.h.

References tXobs_.

75 { 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 90 of file MillePedeFileReader.h.

References tXobs_HG_.

90 { 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 76 of file MillePedeFileReader.h.

References tXobsErr_.

76 { 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 91 of file MillePedeFileReader.h.

References tXobsErr_HG_.

91 { 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 80 of file MillePedeFileReader.h.

References tYobs_.

80 { 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 95 of file MillePedeFileReader.h.

References tYobs_HG_.

95 { 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 81 of file MillePedeFileReader.h.

References tYobsErr_.

81 { 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 96 of file MillePedeFileReader.h.

References tYobsErr_HG_.

96 { 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 85 of file MillePedeFileReader.h.

References tZobs_.

85 { 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 100 of file MillePedeFileReader.h.

References tZobs_HG_.

100 { 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 86 of file MillePedeFileReader.h.

References tZobsErr_.

86 { 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 101 of file MillePedeFileReader.h.

References tZobsErr_HG_.

101 { 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 73 of file MillePedeFileReader.h.

References Xobs_.

73 { 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 88 of file MillePedeFileReader.h.

References Xobs_HG_.

88 { 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 74 of file MillePedeFileReader.h.

References XobsErr_.

74 { 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 89 of file MillePedeFileReader.h.

References XobsErr_HG_.

89 { 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 78 of file MillePedeFileReader.h.

References Yobs_.

78 { 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 93 of file MillePedeFileReader.h.

References Yobs_HG_.

93 { 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 79 of file MillePedeFileReader.h.

References YobsErr_.

79 { 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 94 of file MillePedeFileReader.h.

References YobsErr_HG_.

94 { 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 83 of file MillePedeFileReader.h.

References Zobs_.

83 { 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 98 of file MillePedeFileReader.h.

References Zobs_HG_.

98 { 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 84 of file MillePedeFileReader.h.

References ZobsErr_.

84 { 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 99 of file MillePedeFileReader.h.

References ZobsErr_HG_.

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

◆ initializeIndexHelper()

void MillePedeFileReader::initializeIndexHelper ( )
private

Definition at line 476 of file MillePedeFileReader.cc.

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

Referenced by read().

476  {
477  int currentSum = 0;
478 
480  std::make_pair(currentSum, currentSum + pixelTopologyMap_->getPXBLadders(1) / 2);
481  currentSum += pixelTopologyMap_->getPXBLadders(1);
483  std::make_pair(currentSum, currentSum + pixelTopologyMap_->getPXBLadders(2) / 2);
484  currentSum += pixelTopologyMap_->getPXBLadders(2);
486  std::make_pair(currentSum, currentSum + pixelTopologyMap_->getPXBLadders(3) / 2);
487  currentSum += pixelTopologyMap_->getPXBLadders(3);
489  std::make_pair(currentSum, currentSum + pixelTopologyMap_->getPXBLadders(4) / 2);
490  currentSum += pixelTopologyMap_->getPXBLadders(4);
491 
492  indexHelper[PclHLS::TPEPanelDiskM3] = std::make_pair(currentSum, currentSum + pixelTopologyMap_->getPXFBlades(-3));
493  currentSum += pixelTopologyMap_->getPXFBlades(-3) * 2;
494  indexHelper[PclHLS::TPEPanelDiskM2] = std::make_pair(currentSum, currentSum + pixelTopologyMap_->getPXFBlades(-2));
495  currentSum += pixelTopologyMap_->getPXFBlades(-2) * 2;
496  indexHelper[PclHLS::TPEPanelDiskM1] = std::make_pair(currentSum, currentSum + pixelTopologyMap_->getPXFBlades(-1));
497  currentSum += pixelTopologyMap_->getPXFBlades(-1) * 2;
498 
499  indexHelper[PclHLS::TPEPanelDisk1] = std::make_pair(currentSum, currentSum + pixelTopologyMap_->getPXFBlades(1));
500  currentSum += pixelTopologyMap_->getPXFBlades(1) * 2;
501  indexHelper[PclHLS::TPEPanelDisk2] = std::make_pair(currentSum, currentSum + pixelTopologyMap_->getPXFBlades(2));
502  currentSum += pixelTopologyMap_->getPXFBlades(2) * 2;
503  indexHelper[PclHLS::TPEPanelDisk3] = std::make_pair(currentSum, currentSum + pixelTopologyMap_->getPXFBlades(3));
504  currentSum += pixelTopologyMap_->getPXFBlades(3) * 2;
505 }
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, triggerObjects_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  countsTotal_[detLabel][alignableIndex]++;
166 
167  if (tokens.size() > 4 /*3*/) {
168  const auto paramNum = pedeLabeler_->paramNumFromLabel(alignableLabel);
169  align::StructureType type = alignable->alignableObjectId();
170  align::ID id = alignable->id();
171 
172  double ObsMove = std::stof(tokens[3]) * multiplier_[alignableIndex];
173  double ObsErr = std::stof(tokens[4]) * multiplier_[alignableIndex];
174 
175  auto coord = static_cast<AlignPCLThresholdsHG::coordType>(alignableIndex);
176 
177  if (det != PclHLS::NotInPCL) {
178  if (type != align::TPBLadder && type != align::TPEPanel) {
179  switch (coord) {
181  Xobs_[detIndex] = ObsMove;
182  XobsErr_[detIndex] = ObsErr;
183  break;
185  Yobs_[detIndex] = ObsMove;
186  YobsErr_[detIndex] = ObsErr;
187  break;
189  Zobs_[detIndex] = ObsMove;
190  ZobsErr_[detIndex] = ObsErr;
191  break;
193  tXobs_[detIndex] = ObsMove;
194  tXobsErr_[detIndex] = ObsErr;
195  break;
197  tYobs_[detIndex] = ObsMove;
198  tYobsErr_[detIndex] = ObsErr;
199  break;
201  tZobs_[detIndex] = ObsMove;
202  tZobsErr_[detIndex] = ObsErr;
203  break;
204  default:
205  edm::LogError("MillePedeFileReader") << "Currently not able to handle DOF " << coord << std::endl;
206  break;
207  }
208  } else {
209  auto hgIndex = getIndexForHG(id, det);
210  switch (coord) {
212  Xobs_HG_[hgIndex - 1] = ObsMove;
213  XobsErr_HG_[hgIndex - 1] = ObsErr;
214  break;
216  Yobs_HG_[hgIndex - 1] = ObsMove;
217  YobsErr_HG_[hgIndex - 1] = ObsErr;
218  break;
220  Zobs_HG_[hgIndex - 1] = ObsMove;
221  ZobsErr_HG_[hgIndex - 1] = ObsErr;
222  break;
224  tXobs_HG_[hgIndex - 1] = ObsMove;
225  tXobsErr_HG_[hgIndex - 1] = ObsErr;
226  break;
228  tYobs_HG_[hgIndex - 1] = ObsMove;
229  tYobsErr_HG_[hgIndex - 1] = ObsErr;
230  break;
232  tZobs_HG_[hgIndex - 1] = ObsMove;
233  tZobsErr_HG_[hgIndex - 1] = ObsErr;
234  break;
235  default:
236  edm::LogError("MillePedeFileReader") << "Currently not able to handle DOF " << coord << std::endl;
237  break;
238  }
239  }
240 
241  } else {
242  edm::LogError("MillePedeFileReader")
243  << "Currently not able to handle coordinate: " << coord << " (" << paramNum << ") "
244  << Form(" %s with ID %d (subdet %d)", alignableObjectId.idToString(type), id, DetId(id).subdetId())
245  << std::endl;
246  continue;
247  }
248 
249  edm::LogVerbatim("MillePedeFileReader")
250  << " alignableLabel: " << alignableLabel << " with alignableIndex " << alignableIndex << " detIndex "
251  << detIndex << "\n"
252  << " i.e. detLabel: " << detLabel << " (" << coord << ")\n"
253  << " has movement: " << ObsMove << " +/- " << ObsErr << "\n"
254  << " cutoff (cutoffs_[" << detLabel << "][" << coord << "]): " << cutoffs_[detLabel][alignableIndex] << "\n"
255  << " significance (significances_[" << detLabel << "][" << coord
256  << "]): " << significances_[detLabel][alignableIndex] << "\n"
257  << " error thresolds (errors_[" << detLabel << "][" << coord << "]): " << errors_[detLabel][alignableIndex]
258  << "\n"
259  << " max movement (thresholds_[" << detLabel << "][" << coord
260  << "]): " << thresholds_[detLabel][alignableIndex] << "\n"
261  << " fraction (fractions_[" << detLabel << "][" << coord << "]): " << fractions_[detLabel][alignableIndex]
262  << "\n"
263  << "=============" << std::endl;
264 
265  if (std::abs(ObsMove) > thresholds_[detLabel][alignableIndex]) {
266  if (!isHG_) {
267  edm::LogWarning("MillePedeFileReader")
268  << "Aborting payload creation."
269  << " Exceeding maximum thresholds for movement: " << std::abs(ObsMove) << " for" << detLabel << "("
270  << coord << ")";
271  }
272  updateBits_.set(0);
273  vetoUpdateDB_ = true;
274  continue;
275 
276  } else if (std::abs(ObsMove) > cutoffs_[detLabel][alignableIndex]) {
277  updateBits_.set(1);
278 
279  if (std::abs(ObsErr) > errors_[detLabel][alignableIndex]) {
280  if (!isHG_) {
281  edm::LogWarning("MillePedeFileReader") << "Aborting payload creation."
282  << " Exceeding maximum thresholds for error: " << std::abs(ObsErr)
283  << " for" << detLabel << "(" << coord << ")";
284  }
285  updateBits_.set(2);
286  vetoUpdateDB_ = true;
287  continue;
288  } else {
289  if (std::abs(ObsMove / ObsErr) < significances_[detLabel][alignableIndex]) {
290  updateBits_.set(3);
291  continue;
292  }
293  }
294  updateDB_ = true;
295  if (!isHG_) {
296  edm::LogInfo("MillePedeFileReader")
297  << "This correction: " << ObsMove << "+/-" << ObsErr << " for " << detLabel << "(" << coord
298  << ") will trigger a new Tracker Alignment payload!";
299  }
300  countsAbove_[detLabel][alignableIndex]++;
301  }
302  }
303  }
304  } else {
305  edm::LogError("MillePedeFileReader") << "Could not read millepede result-file.";
306 
307  updateDB_ = false;
308  Nrec_ = 0;
309  }
310 
311  if (isHG_) { // check fractionCut
312  updateDB_ = false; // reset both booleans since only fractionCut is considered for HG
313  vetoUpdateDB_ = false;
314  std::stringstream ss;
315  for (auto& ali : alignables_) {
316  ss << ali << std::endl;
317  for (long unsigned int i = 0; i < countsTotal_[ali].size(); i++) {
318  if (countsTotal_[ali][i] != 0 && fractions_[ali][i] != -1) {
319  float fraction_ = countsAbove_[ali][i] / (1.0 * countsTotal_[ali][i]);
320  ss << static_cast<AlignPCLThresholdsHG::coordType>(i) << ": Fraction = " << fraction_
321  << " Fraction Threshold = " << fractions_[ali][i];
322  if (fraction_ >= fractions_[ali][i]) {
323  updateDB_ = true;
324  ss << " above fraction threshold" << std::endl;
325  fractionExceeded_[ali][i] = true;
326  } else {
327  ss << std::endl;
328  fractionExceeded_[ali][i] = false;
329  }
330  } else
331  ss << "No entries available or no fraction thresholds defined" << std::endl;
332  }
333  ss << "===================" << std::endl;
334  }
335  if (updateDB_) {
336  ss << "Alignment will be updated" << std::endl;
337  } else {
338  ss << "Alignment will NOT be updated" << std::endl;
339  }
340  edm::LogWarning("MillePedeFileReader") << ss.str();
341  }
342 }
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 188 of file MillePedeFileReader.h.

Referenced by binariesAmount(), and readMillePedeLogFile().

◆ dirName_

std::string MillePedeFileReader::dirName_
private

◆ exitCode_

int MillePedeFileReader::exitCode_ {-1}
private

Definition at line 194 of file MillePedeFileReader.h.

Referenced by getResults(), and readMillePedeEndFile().

◆ exitMessage_

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

Definition at line 195 of file MillePedeFileReader.h.

Referenced by getResults(), and readMillePedeEndFile().

◆ fractionExceeded_

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

Definition at line 191 of file MillePedeFileReader.h.

Referenced by getResultsHG(), and readMillePedeResultFile().

◆ indexHelper

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

Definition at line 227 of file MillePedeFileReader.h.

Referenced by getIndexForHG(), and initializeIndexHelper().

◆ isHG_

const bool MillePedeFileReader::isHG_
private

Definition at line 178 of file MillePedeFileReader.h.

Referenced by read(), and readMillePedeResultFile().

◆ millePedeEndFile_

const std::string MillePedeFileReader::millePedeEndFile_
private

Definition at line 164 of file MillePedeFileReader.h.

Referenced by readMillePedeEndFile().

◆ millePedeLogFile_

const std::string MillePedeFileReader::millePedeLogFile_
private

Definition at line 165 of file MillePedeFileReader.h.

Referenced by readMillePedeLogFile().

◆ millePedeResFile_

const std::string MillePedeFileReader::millePedeResFile_
private

Definition at line 166 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 169 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 152 of file MillePedeFileReader.h.

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

◆ pixelTopologyMap_

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

Definition at line 158 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 199 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 214 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 200 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 215 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 204 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 219 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 205 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 220 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 209 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 224 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 210 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 225 of file MillePedeFileReader.h.

Referenced by getTZobsErr_HG(), and readMillePedeResultFile().

◆ updateBits_

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

Definition at line 185 of file MillePedeFileReader.h.

Referenced by getResults(), and readMillePedeResultFile().

◆ updateDB_

bool MillePedeFileReader::updateDB_ {false}
private

◆ vetoUpdateDB_

bool MillePedeFileReader::vetoUpdateDB_ {false}
private

Definition at line 177 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 197 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 212 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 198 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 213 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 202 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 217 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 203 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 218 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 207 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 222 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 208 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 223 of file MillePedeFileReader.h.

Referenced by getZobsErr_HG(), and readMillePedeResultFile().