test
CMS 3D CMS Logo

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
MillePedeFileReader Class Reference

#include <MillePedeFileReader.h>

Public Member Functions

std::array< double, 6 > const & getTXobs () const
 
std::array< double, 6 > const & getTXobsErr () const
 
std::array< double, 6 > const & getTYobs () const
 
std::array< double, 6 > const & getTYobsErr () const
 
std::array< double, 6 > const & getTZobs () const
 
std::array< double, 6 > const & getTZobsErr () const
 
std::array< double, 6 > const & getXobs () const
 
std::array< double, 6 > const & getXobsErr () const
 
std::array< double, 6 > const & getYobs () const
 
std::array< double, 6 > const & getYobsErr () const
 
std::array< double, 6 > const & getZobs () const
 
std::array< double, 6 > const & getZobsErr () const
 
 MillePedeFileReader (const edm::ParameterSet &)
 
void read ()
 
bool storeAlignments ()
 
 ~MillePedeFileReader ()
 

Private Member Functions

void readMillePedeLogFile ()
 
void readMillePedeResultFile ()
 

Private Attributes

double Cutoffs [6]
 
bool Error = false
 
bool HitErrorMax = false
 
bool HitMax = false
 
double maxErrorCut_
 
double maxMoveCut_
 
std::string millePedeLogFile_
 
std::string millePedeResFile_
 
bool Movements = false
 
int Nrec = 0
 
bool PedeSuccess = false
 
double sigCut_
 
bool Significant = false
 
double tXcut_
 
std::array< double, 6 > tXobs = {{0.,0.,0.,0.,0.,0.}}
 
std::array< double, 6 > tXobsErr = {{0.,0.,0.,0.,0.,0.}}
 
double tYcut_
 
std::array< double, 6 > tYobs = {{0.,0.,0.,0.,0.,0.}}
 
std::array< double, 6 > tYobsErr = {{0.,0.,0.,0.,0.,0.}}
 
double tZcut_
 
std::array< double, 6 > tZobs = {{0.,0.,0.,0.,0.,0.}}
 
std::array< double, 6 > tZobsErr = {{0.,0.,0.,0.,0.,0.}}
 
bool updateDB = false
 
double Xcut_
 
std::array< double, 6 > Xobs = {{0.,0.,0.,0.,0.,0.}}
 
std::array< double, 6 > XobsErr = {{0.,0.,0.,0.,0.,0.}}
 
double Ycut_
 
std::array< double, 6 > Yobs = {{0.,0.,0.,0.,0.,0.}}
 
std::array< double, 6 > YobsErr = {{0.,0.,0.,0.,0.,0.}}
 
double Zcut_
 
std::array< double, 6 > Zobs = {{0.,0.,0.,0.,0.,0.}}
 
std::array< double, 6 > ZobsErr = {{0.,0.,0.,0.,0.,0.}}
 

Detailed Description

Definition at line 12 of file MillePedeFileReader.h.

Constructor & Destructor Documentation

MillePedeFileReader::MillePedeFileReader ( const edm::ParameterSet config)
explicit

Definition at line 18 of file MillePedeFileReader.cc.

18  :
19  millePedeLogFile_(config.getParameter<std::string>("millePedeLogFile")),
20  millePedeResFile_(config.getParameter<std::string>("millePedeResFile")),
21 
22  sigCut_ (config.getParameter<double>("sigCut")),
23  Xcut_ (config.getParameter<double>("Xcut")),
24  tXcut_ (config.getParameter<double>("tXcut")),
25  Ycut_ (config.getParameter<double>("Ycut")),
26  tYcut_ (config.getParameter<double>("tYcut")),
27  Zcut_ (config.getParameter<double>("Zcut")),
28  tZcut_ (config.getParameter<double>("tZcut")),
29  maxMoveCut_ (config.getParameter<double>("maxMoveCut")),
30  maxErrorCut_(config.getParameter<double>("maxErrorCut"))
31 {
32 }
T getParameter(std::string const &) const
MillePedeFileReader::~MillePedeFileReader ( )
inline

Definition at line 18 of file MillePedeFileReader.h.

18 {}

Member Function Documentation

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

Definition at line 25 of file MillePedeFileReader.h.

References tXobs.

25 { return tXobs; }
std::array< double, 6 > tXobs
std::array<double, 6> const& MillePedeFileReader::getTXobsErr ( ) const
inline

Definition at line 26 of file MillePedeFileReader.h.

References tXobsErr.

26 { return tXobsErr; }
std::array< double, 6 > tXobsErr
std::array<double, 6> const& MillePedeFileReader::getTYobs ( ) const
inline

Definition at line 30 of file MillePedeFileReader.h.

References tYobs.

30 { return tYobs; }
std::array< double, 6 > tYobs
std::array<double, 6> const& MillePedeFileReader::getTYobsErr ( ) const
inline

Definition at line 31 of file MillePedeFileReader.h.

References tYobsErr.

31 { return tYobsErr; }
std::array< double, 6 > tYobsErr
std::array<double, 6> const& MillePedeFileReader::getTZobs ( ) const
inline

Definition at line 35 of file MillePedeFileReader.h.

References tZobs.

35 { return tZobs; }
std::array< double, 6 > tZobs
std::array<double, 6> const& MillePedeFileReader::getTZobsErr ( ) const
inline

Definition at line 36 of file MillePedeFileReader.h.

References tZobsErr.

36 { return tZobsErr; }
std::array< double, 6 > tZobsErr
std::array<double, 6> const& MillePedeFileReader::getXobs ( ) const
inline

Definition at line 23 of file MillePedeFileReader.h.

References Xobs.

23 { return Xobs; }
std::array< double, 6 > Xobs
std::array<double, 6> const& MillePedeFileReader::getXobsErr ( ) const
inline

Definition at line 24 of file MillePedeFileReader.h.

References XobsErr.

24 { return XobsErr; }
std::array< double, 6 > XobsErr
std::array<double, 6> const& MillePedeFileReader::getYobs ( ) const
inline

Definition at line 28 of file MillePedeFileReader.h.

References Yobs.

28 { return Yobs; }
std::array< double, 6 > Yobs
std::array<double, 6> const& MillePedeFileReader::getYobsErr ( ) const
inline

Definition at line 29 of file MillePedeFileReader.h.

References YobsErr.

29 { return YobsErr; }
std::array< double, 6 > YobsErr
std::array<double, 6> const& MillePedeFileReader::getZobs ( ) const
inline

Definition at line 33 of file MillePedeFileReader.h.

References Zobs.

33 { return Zobs; }
std::array< double, 6 > Zobs
std::array<double, 6> const& MillePedeFileReader::getZobsErr ( ) const
inline

Definition at line 34 of file MillePedeFileReader.h.

References ZobsErr.

34 { return ZobsErr; }
std::array< double, 6 > ZobsErr
void MillePedeFileReader::read ( )
void MillePedeFileReader::readMillePedeLogFile ( )
private

Definition at line 52 of file MillePedeFileReader.cc.

References geometryCSVtoXML::line, heppy_check::logFile, and AlCaHLTBitMon_QueryRunRegistry::string.

53 {
54  std::ifstream logFile;
55  logFile.open(millePedeLogFile_.c_str());
56 
57  if (logFile.is_open()) {
58  edm::LogInfo("MillePedeFileReader") << "Reading millepede log-file";
60 
61  while (getline(logFile, line)) {
62  std::string Nrec_string = "NREC =";
63 
64  if (line.find(Nrec_string) != std::string::npos) {
65  std::istringstream iss(line);
66  std::string trash;
67  iss >> trash >> trash >> Nrec;
68 
69  if (Nrec < 25000) {
70  PedeSuccess = false;
71  Movements = false;
72  Error = false;
73  Significant = false;
74  updateDB = false;
75  }
76  }
77  }
78 
79  } else {
80  edm::LogError("MillePedeFileReader") << "Could not read millepede log-file.";
81 
82  PedeSuccess = false;
83  Movements = false;
84  Error = false;
85  Significant = false;
86  updateDB = false;
87  Nrec = 0;
88  }
89 }
tuple logFile
Definition: heppy_check.py:39
void MillePedeFileReader::readMillePedeResultFile ( )
private

Definition at line 92 of file MillePedeFileReader.cc.

References funct::abs(), geometryCSVtoXML::line, AlCaHLTBitMon_QueryRunRegistry::string, and unpackBuffers-CaloStage2::token.

93 {
94  std::ifstream resFile;
95  resFile.open(millePedeResFile_.c_str());
96 
97  if (resFile.is_open()) {
98  edm::LogInfo("MillePedeFileReader") << "Reading millepede result-file";
99  double Multiplier[6] = {10000.,10000.,10000.,1000000.,1000000.,1000000.};
100 
102  getline(resFile, line); // drop first line
103 
104  while (getline(resFile, line)) {
105  std::istringstream iss(line);
106 
107  std::vector<std::string> tokens;
109  while (iss >> token) {
110  tokens.push_back(token);
111  }
112 
113  if (tokens.size() > 4 /*3*/) {
114  PedeSuccess = true;
115 
116  int alignable = std::stoi(tokens[0]);
117  int alignableIndex = alignable % 10 - 1;
118 
119  double ObsMove = std::stof(tokens[3]) * Multiplier[alignableIndex];
120  double ObsErr = std::stof(tokens[4]) * Multiplier[alignableIndex];
121 
122  int det = -1;
123 
124  if (alignable >= 60 && alignable <= 69) {
125  det = 2; // TPBHalfBarrel (x+)
126  } else if (alignable >= 8780 && alignable <= 8789) {
127  det = 3; // TPBHalfBarrel (x-)
128  } else if (alignable >= 17520 && alignable <= 17529) {
129  det = 4; // TPEHalfCylinder (x+,z+)
130  } else if (alignable >= 22380 && alignable <= 22389) {
131  det = 5; // TPEHalfCylinder (x-,z+)
132  } else if (alignable >= 27260 && alignable <= 27269) {
133  det = 0; // TPEHalfCylinder (x+,z-)
134  } else if (alignable >= 32120 && alignable <= 32129) {
135  det = 1; //TPEHalfCylinder (x-,z-)
136  } else {
137  continue;
138  }
139 
140  if (alignableIndex == 0 && det >= 0 && det <= 5) {
141  Xobs[det] = ObsMove;
142  XobsErr[det] = ObsErr;
143  } else if (alignableIndex == 1 && det >= 0 && det <= 5) {
144  Yobs[det] = ObsMove;
145  YobsErr[det] = ObsErr;
146  } else if (alignableIndex == 2 && det >= 0 && det <= 5) {
147  Zobs[det] = ObsMove;
148  ZobsErr[det] = ObsErr;
149  } else if (alignableIndex == 3 && det >= 0 && det <= 5) {
150  tXobs[det] = ObsMove;
151  tXobsErr[det] = ObsErr;
152  } else if (alignableIndex == 4 && det >= 0 && det <= 5) {
153  tYobs[det] = ObsMove;
154  tYobsErr[det] = ObsErr;
155  } else if (alignableIndex == 5 && det >= 0 && det <= 5) {
156  tZobs[det] = ObsMove;
157  tZobsErr[det] = ObsErr;
158  }
159 
160  if (std::abs(ObsMove) > maxMoveCut_) {
161  Movements = false;
162  Error = false;
163  Significant = false;
164  updateDB = false;
165  HitMax = false;
166  continue;
167 
168  } else if (std::abs(ObsMove) > Cutoffs[alignableIndex]) {
169  Movements = true;
170 
171  if (std::abs(ObsErr) > maxErrorCut_) {
172  Error = false;
173  Significant = false;
174  updateDB = false;
175  HitErrorMax = true;
176  continue;
177  } else {
178  Error = true;
179  if (std::abs(ObsMove/ObsErr) > sigCut_) {
180  Significant = true;
181  }
182  }
183  }
184  updateDB = true;
185  }
186  }
187  } else {
188  edm::LogError("MillePedeFileReader") << "Could not read millepede result-file.";
189 
190  PedeSuccess = false;
191  Movements = false;
192  Error = false;
193  Significant = false;
194  updateDB = false;
195  Nrec = 0;
196  }
197 }
std::array< double, 6 > Yobs
std::array< double, 6 > tZobs
std::array< double, 6 > XobsErr
std::array< double, 6 > Zobs
std::array< double, 6 > tXobsErr
std::array< double, 6 > ZobsErr
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
std::array< double, 6 > tZobsErr
std::array< double, 6 > tYobs
std::array< double, 6 > Xobs
std::array< double, 6 > tYobsErr
std::array< double, 6 > YobsErr
std::array< double, 6 > tXobs
bool MillePedeFileReader::storeAlignments ( )

Definition at line 41 of file MillePedeFileReader.cc.

Referenced by PCLTrackerAlProducer::finish().

41  {
42  return updateDB;
43 }

Member Data Documentation

double MillePedeFileReader::Cutoffs[6]
private
Initial value:

Definition at line 60 of file MillePedeFileReader.h.

bool MillePedeFileReader::Error = false
private

Definition at line 65 of file MillePedeFileReader.h.

bool MillePedeFileReader::HitErrorMax = false
private

Definition at line 69 of file MillePedeFileReader.h.

bool MillePedeFileReader::HitMax = false
private

Definition at line 68 of file MillePedeFileReader.h.

double MillePedeFileReader::maxErrorCut_
private

Definition at line 58 of file MillePedeFileReader.h.

double MillePedeFileReader::maxMoveCut_
private

Definition at line 58 of file MillePedeFileReader.h.

std::string MillePedeFileReader::millePedeLogFile_
private

Definition at line 48 of file MillePedeFileReader.h.

std::string MillePedeFileReader::millePedeResFile_
private

Definition at line 49 of file MillePedeFileReader.h.

bool MillePedeFileReader::Movements = false
private

Definition at line 64 of file MillePedeFileReader.h.

int MillePedeFileReader::Nrec = 0
private

Definition at line 71 of file MillePedeFileReader.h.

bool MillePedeFileReader::PedeSuccess = false
private

Definition at line 63 of file MillePedeFileReader.h.

double MillePedeFileReader::sigCut_
private

Definition at line 52 of file MillePedeFileReader.h.

bool MillePedeFileReader::Significant = false
private

Definition at line 66 of file MillePedeFileReader.h.

double MillePedeFileReader::tXcut_
private

Definition at line 54 of file MillePedeFileReader.h.

std::array<double, 6> MillePedeFileReader::tXobs = {{0.,0.,0.,0.,0.,0.}}
private

Definition at line 77 of file MillePedeFileReader.h.

Referenced by getTXobs().

std::array<double, 6> MillePedeFileReader::tXobsErr = {{0.,0.,0.,0.,0.,0.}}
private

Definition at line 78 of file MillePedeFileReader.h.

Referenced by getTXobsErr().

double MillePedeFileReader::tYcut_
private

Definition at line 55 of file MillePedeFileReader.h.

std::array<double, 6> MillePedeFileReader::tYobs = {{0.,0.,0.,0.,0.,0.}}
private

Definition at line 82 of file MillePedeFileReader.h.

Referenced by getTYobs().

std::array<double, 6> MillePedeFileReader::tYobsErr = {{0.,0.,0.,0.,0.,0.}}
private

Definition at line 83 of file MillePedeFileReader.h.

Referenced by getTYobsErr().

double MillePedeFileReader::tZcut_
private

Definition at line 56 of file MillePedeFileReader.h.

std::array<double, 6> MillePedeFileReader::tZobs = {{0.,0.,0.,0.,0.,0.}}
private

Definition at line 87 of file MillePedeFileReader.h.

Referenced by getTZobs().

std::array<double, 6> MillePedeFileReader::tZobsErr = {{0.,0.,0.,0.,0.,0.}}
private

Definition at line 88 of file MillePedeFileReader.h.

Referenced by getTZobsErr().

bool MillePedeFileReader::updateDB = false
private

Definition at line 67 of file MillePedeFileReader.h.

double MillePedeFileReader::Xcut_
private

Definition at line 54 of file MillePedeFileReader.h.

std::array<double, 6> MillePedeFileReader::Xobs = {{0.,0.,0.,0.,0.,0.}}
private

Definition at line 75 of file MillePedeFileReader.h.

Referenced by getXobs().

std::array<double, 6> MillePedeFileReader::XobsErr = {{0.,0.,0.,0.,0.,0.}}
private

Definition at line 76 of file MillePedeFileReader.h.

Referenced by getXobsErr().

double MillePedeFileReader::Ycut_
private

Definition at line 55 of file MillePedeFileReader.h.

std::array<double, 6> MillePedeFileReader::Yobs = {{0.,0.,0.,0.,0.,0.}}
private

Definition at line 80 of file MillePedeFileReader.h.

Referenced by getYobs().

std::array<double, 6> MillePedeFileReader::YobsErr = {{0.,0.,0.,0.,0.,0.}}
private

Definition at line 81 of file MillePedeFileReader.h.

Referenced by getYobsErr().

double MillePedeFileReader::Zcut_
private

Definition at line 56 of file MillePedeFileReader.h.

std::array<double, 6> MillePedeFileReader::Zobs = {{0.,0.,0.,0.,0.,0.}}
private

Definition at line 85 of file MillePedeFileReader.h.

Referenced by getZobs().

std::array<double, 6> MillePedeFileReader::ZobsErr = {{0.,0.,0.,0.,0.,0.}}
private

Definition at line 86 of file MillePedeFileReader.h.

Referenced by getZobsErr().