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

Constructor & Destructor Documentation

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

Definition at line 103 of file MillePedeFileReader.h.

103  :
104  millePedeLogFile_(config.getParameter<std::string>("millePedeLogFile")),
105  millePedeResFile_(config.getParameter<std::string>("millePedeResFile")),
106 
107  sigCut_ (config.getParameter<double>("sigCut")),
108  Xcut_ (config.getParameter<double>("Xcut")),
109  tXcut_ (config.getParameter<double>("tXcut")),
110  Ycut_ (config.getParameter<double>("Ycut")),
111  tYcut_ (config.getParameter<double>("tYcut")),
112  Zcut_ (config.getParameter<double>("Zcut")),
113  tZcut_ (config.getParameter<double>("tZcut")),
114  maxMoveCut_ (config.getParameter<double>("maxMoveCut")),
115  maxErrorCut_(config.getParameter<double>("maxErrorCut"))
116 {
117 }
T getParameter(std::string const &) const
MillePedeFileReader::~MillePedeFileReader ( )
inline

Definition at line 22 of file MillePedeFileReader.h.

22 {}

Member Function Documentation

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

Definition at line 29 of file MillePedeFileReader.h.

References tXobs.

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

Definition at line 30 of file MillePedeFileReader.h.

References tXobsErr.

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

Definition at line 34 of file MillePedeFileReader.h.

References tYobs.

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

Definition at line 35 of file MillePedeFileReader.h.

References tYobsErr.

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

Definition at line 39 of file MillePedeFileReader.h.

References tZobs.

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

Definition at line 40 of file MillePedeFileReader.h.

References tZobsErr.

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

Definition at line 27 of file MillePedeFileReader.h.

References Xobs.

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

Definition at line 28 of file MillePedeFileReader.h.

References XobsErr.

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

Definition at line 32 of file MillePedeFileReader.h.

References Yobs.

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

Definition at line 33 of file MillePedeFileReader.h.

References YobsErr.

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

Definition at line 37 of file MillePedeFileReader.h.

References Zobs.

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

Definition at line 38 of file MillePedeFileReader.h.

References ZobsErr.

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

Definition at line 137 of file MillePedeFileReader.h.

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

138 {
139  std::ifstream logFile;
140  logFile.open(millePedeLogFile_.c_str());
141 
142  if (logFile.is_open()) {
143  edm::LogInfo("MillePedeFileReader") << "Reading millepede log-file";
145 
146  while (getline(logFile, line)) {
147  std::string Nrec_string = "NREC =";
148 
149  if (line.find(Nrec_string) != std::string::npos) {
150  std::istringstream iss(line);
151  std::string trash;
152  iss >> trash >> trash >> Nrec;
153 
154  if (Nrec < 25000) {
155  PedeSuccess = false;
156  Movements = false;
157  Error = false;
158  Significant = false;
159  updateDB = false;
160  }
161  }
162  }
163 
164  } else {
165  edm::LogError("MillePedeFileReader") << "Could not read millepede log-file.";
166 
167  PedeSuccess = false;
168  Movements = false;
169  Error = false;
170  Significant = false;
171  updateDB = false;
172  Nrec = 0;
173  }
174 }
tuple logFile
Definition: heppy_check.py:39
void MillePedeFileReader::readMillePedeResultFile ( )
private

Definition at line 177 of file MillePedeFileReader.h.

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

178 {
179  std::ifstream resFile;
180  resFile.open(millePedeResFile_.c_str());
181 
182  if (resFile.is_open()) {
183  edm::LogInfo("MillePedeFileReader") << "Reading millepede result-file";
184  double Multiplier[6] = {10000.,10000.,10000.,1000000.,1000000.,1000000.};
185 
187  getline(resFile, line); // drop first line
188 
189  while (getline(resFile, line)) {
190  std::istringstream iss(line);
191 
192  std::vector<std::string> tokens;
194  while (iss >> token) {
195  tokens.push_back(token);
196  }
197 
198  if (tokens.size() > 4 /*3*/) {
199  PedeSuccess = true;
200 
201  int alignable = std::stoi(tokens[0]);
202  int alignableIndex = alignable % 10 - 1;
203 
204  double ObsMove = std::stof(tokens[3]) * Multiplier[alignableIndex];
205  double ObsErr = std::stof(tokens[4]) * Multiplier[alignableIndex];
206 
207  int det = -1;
208 
209  if (alignable >= 60 && alignable <= 69) {
210  det = 2; // TPBHalfBarrel (x+)
211  } else if (alignable >= 8780 && alignable <= 8789) {
212  det = 3; // TPBHalfBarrel (x-)
213  } else if (alignable >= 17520 && alignable <= 17529) {
214  det = 4; // TPEHalfCylinder (x+,z+)
215  } else if (alignable >= 22380 && alignable <= 22389) {
216  det = 5; // TPEHalfCylinder (x-,z+)
217  } else if (alignable >= 27260 && alignable <= 27269) {
218  det = 0; // TPEHalfCylinder (x+,z-)
219  } else if (alignable >= 32120 && alignable <= 32129) {
220  det = 1; //TPEHalfCylinder (x-,z-)
221  } else {
222  continue;
223  }
224 
225  if (alignableIndex == 0 && det >= 0 && det <= 5) {
226  Xobs[det] = ObsMove;
227  XobsErr[det] = ObsErr;
228  } else if (alignableIndex == 1 && det >= 0 && det <= 5) {
229  Yobs[det] = ObsMove;
230  YobsErr[det] = ObsErr;
231  } else if (alignableIndex == 2 && det >= 0 && det <= 5) {
232  Zobs[det] = ObsMove;
233  ZobsErr[det] = ObsErr;
234  } else if (alignableIndex == 3 && det >= 0 && det <= 5) {
235  tXobs[det] = ObsMove;
236  tXobsErr[det] = ObsErr;
237  } else if (alignableIndex == 4 && det >= 0 && det <= 5) {
238  tYobs[det] = ObsMove;
239  tYobsErr[det] = ObsErr;
240  } else if (alignableIndex == 5 && det >= 0 && det <= 5) {
241  tZobs[det] = ObsMove;
242  tZobsErr[det] = ObsErr;
243  }
244 
245  if (abs(ObsMove) > maxMoveCut_) {
246  Movements = false;
247  Error = false;
248  Significant = false;
249  updateDB = false;
250  HitMax = false;
251  continue;
252 
253  } else if (abs(ObsMove) > Cutoffs[alignableIndex]) {
254  Movements = true;
255 
256  if (abs(ObsErr) > maxErrorCut_) {
257  Error = false;
258  Significant = false;
259  updateDB = false;
260  HitErrorMax = true;
261  continue;
262  } else {
263  Error = true;
264  if (abs(ObsMove/ObsErr) > sigCut_) {
265  Significant = true;
266  }
267  }
268  }
269  updateDB = true;
270  }
271  }
272  } else {
273  edm::LogError("MillePedeFileReader") << "Could not read millepede result-file.";
274 
275  PedeSuccess = false;
276  Movements = false;
277  Error = false;
278  Significant = false;
279  updateDB = false;
280  Nrec = 0;
281  }
282 }
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 126 of file MillePedeFileReader.h.

Referenced by PCLTrackerAlProducer::finish().

126  {
127  return updateDB;
128 }

Member Data Documentation

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

Definition at line 64 of file MillePedeFileReader.h.

bool MillePedeFileReader::Error = false
private

Definition at line 69 of file MillePedeFileReader.h.

bool MillePedeFileReader::HitErrorMax = false
private

Definition at line 73 of file MillePedeFileReader.h.

bool MillePedeFileReader::HitMax = false
private

Definition at line 72 of file MillePedeFileReader.h.

double MillePedeFileReader::maxErrorCut_
private

Definition at line 62 of file MillePedeFileReader.h.

double MillePedeFileReader::maxMoveCut_
private

Definition at line 62 of file MillePedeFileReader.h.

std::string MillePedeFileReader::millePedeLogFile_
private

Definition at line 52 of file MillePedeFileReader.h.

std::string MillePedeFileReader::millePedeResFile_
private

Definition at line 53 of file MillePedeFileReader.h.

bool MillePedeFileReader::Movements = false
private

Definition at line 68 of file MillePedeFileReader.h.

int MillePedeFileReader::Nrec = 0
private

Definition at line 75 of file MillePedeFileReader.h.

bool MillePedeFileReader::PedeSuccess = false
private

Definition at line 67 of file MillePedeFileReader.h.

double MillePedeFileReader::sigCut_
private

Definition at line 56 of file MillePedeFileReader.h.

bool MillePedeFileReader::Significant = false
private

Definition at line 70 of file MillePedeFileReader.h.

double MillePedeFileReader::tXcut_
private

Definition at line 58 of file MillePedeFileReader.h.

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

Definition at line 81 of file MillePedeFileReader.h.

Referenced by getTXobs().

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

Definition at line 82 of file MillePedeFileReader.h.

Referenced by getTXobsErr().

double MillePedeFileReader::tYcut_
private

Definition at line 59 of file MillePedeFileReader.h.

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

Definition at line 86 of file MillePedeFileReader.h.

Referenced by getTYobs().

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

Definition at line 87 of file MillePedeFileReader.h.

Referenced by getTYobsErr().

double MillePedeFileReader::tZcut_
private

Definition at line 60 of file MillePedeFileReader.h.

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

Definition at line 91 of file MillePedeFileReader.h.

Referenced by getTZobs().

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

Definition at line 92 of file MillePedeFileReader.h.

Referenced by getTZobsErr().

bool MillePedeFileReader::updateDB = false
private

Definition at line 71 of file MillePedeFileReader.h.

double MillePedeFileReader::Xcut_
private

Definition at line 58 of file MillePedeFileReader.h.

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

Definition at line 79 of file MillePedeFileReader.h.

Referenced by getXobs().

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

Definition at line 80 of file MillePedeFileReader.h.

Referenced by getXobsErr().

double MillePedeFileReader::Ycut_
private

Definition at line 59 of file MillePedeFileReader.h.

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

Definition at line 84 of file MillePedeFileReader.h.

Referenced by getYobs().

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

Definition at line 85 of file MillePedeFileReader.h.

Referenced by getYobsErr().

double MillePedeFileReader::Zcut_
private

Definition at line 60 of file MillePedeFileReader.h.

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

Definition at line 89 of file MillePedeFileReader.h.

Referenced by getZobs().

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

Definition at line 90 of file MillePedeFileReader.h.

Referenced by getZobsErr().