CMS 3D CMS Logo

TrackerGeometryCompare.cc
Go to the documentation of this file.
5 #include "CLHEP/Vector/RotationInterfaces.h"
11 
15 
17 
22 
38 
39 #include "TrackerGeometryCompare.h"
40 #include "TFile.h"
41 #include "CLHEP/Vector/ThreeVector.h"
42 
43 // Database
47 
50 
51 #include <iostream>
52 #include <fstream>
53 #include <sstream>
54 
56  : cpvTokenDDD_(esConsumes()),
57  cpvTokenDD4Hep_(esConsumes()),
58  topoToken_(esConsumes()),
59  geomDetToken_(esConsumes()),
60  ptpToken_(esConsumes()),
61  ptitpToken_(esConsumes()),
62  pixQualityToken_(esConsumes()),
63  stripQualityToken_(esConsumes()),
64  referenceTracker(nullptr),
65  dummyTracker(nullptr),
66  currentTracker(nullptr),
67  theSurveyIndex(0),
68  theSurveyValues(nullptr),
69  theSurveyErrors(nullptr),
70  levelStrings_(cfg.getUntrackedParameter<std::vector<std::string> >("levels")),
71  fromDD4hep_(cfg.getUntrackedParameter<bool>("fromDD4hep")),
72  writeToDB_(cfg.getUntrackedParameter<bool>("writeToDB")),
73  commonTrackerLevel_(align::invalid),
74  moduleListFile_(nullptr),
75  moduleList_(0),
76  inputRootFile1_(nullptr),
77  inputRootFile2_(nullptr),
78  inputTree01_(nullptr),
79  inputTree02_(nullptr),
80  inputTree11_(nullptr),
81  inputTree12_(nullptr),
82  m_nBins_(10000),
83  m_rangeLow_(-.1),
84  m_rangeHigh_(.1),
85  firstEvent_(true),
86  m_vtkmap_(13) {
87  moduleListName_ = cfg.getUntrackedParameter<std::string>("moduleList");
88 
89  //input is ROOT
90  inputFilename1_ = cfg.getUntrackedParameter<std::string>("inputROOTFile1");
91  inputFilename2_ = cfg.getUntrackedParameter<std::string>("inputROOTFile2");
92  inputTreenameAlign_ = cfg.getUntrackedParameter<std::string>("treeNameAlign");
93  inputTreenameDeform_ = cfg.getUntrackedParameter<std::string>("treeNameDeform");
94 
95  //output file
96  filename_ = cfg.getUntrackedParameter<std::string>("outputFile");
97 
98  weightBy_ = cfg.getUntrackedParameter<std::string>("weightBy");
99  setCommonTrackerSystem_ = cfg.getUntrackedParameter<std::string>("setCommonTrackerSystem");
100  detIdFlag_ = cfg.getUntrackedParameter<bool>("detIdFlag");
101  detIdFlagFile_ = cfg.getUntrackedParameter<std::string>("detIdFlagFile");
102  weightById_ = cfg.getUntrackedParameter<bool>("weightById");
103  weightByIdFile_ = cfg.getUntrackedParameter<std::string>("weightByIdFile");
104 
105  // if want to use, make id cut list
106  if (detIdFlag_) {
107  std::ifstream fin;
108  fin.open(detIdFlagFile_.c_str());
109 
110  while (!fin.eof() && fin.good()) {
111  uint32_t id;
112  fin >> id;
113  detIdFlagVector_.push_back(id);
114  }
115  fin.close();
116  }
117 
118  // turn weightByIdFile into weightByIdVector
119  if (weightById_) {
120  std::ifstream inFile;
121  inFile.open(weightByIdFile_.c_str());
122  int ctr = 0;
123  while (!inFile.eof()) {
124  ctr++;
125  unsigned int listId;
126  inFile >> listId;
127  inFile.ignore(256, '\n');
128 
129  weightByIdVector_.push_back(listId);
130  }
131  inFile.close();
132  }
133 
134  //root configuration
135  theFile_ = new TFile(filename_.c_str(), "RECREATE");
136  alignTree_ = new TTree("alignTree",
137  "alignTree"); //,"id:level:mid:mlevel:sublevel:x:y:z:r:phi:a:b:c:dx:dy:dz:dr:dphi:da:db:dc");
138  alignTree_->Branch("id", &id_, "id/I");
139  alignTree_->Branch("badModuleQuality", &badModuleQuality_, "badModuleQuality/I");
140  alignTree_->Branch("inModuleList", &inModuleList_, "inModuleList/I");
141  alignTree_->Branch("level", &level_, "level/I");
142  alignTree_->Branch("mid", &mid_, "mid/I");
143  alignTree_->Branch("mlevel", &mlevel_, "mlevel/I");
144  alignTree_->Branch("sublevel", &sublevel_, "sublevel/I");
145  alignTree_->Branch("x", &xVal_, "x/F");
146  alignTree_->Branch("y", &yVal_, "y/F");
147  alignTree_->Branch("z", &zVal_, "z/F");
148  alignTree_->Branch("r", &rVal_, "r/F");
149  alignTree_->Branch("phi", &phiVal_, "phi/F");
150  alignTree_->Branch("eta", &etaVal_, "eta/F");
151  alignTree_->Branch("alpha", &alphaVal_, "alpha/F");
152  alignTree_->Branch("beta", &betaVal_, "beta/F");
153  alignTree_->Branch("gamma", &gammaVal_, "gamma/F");
154  alignTree_->Branch("dx", &dxVal_, "dx/F");
155  alignTree_->Branch("dy", &dyVal_, "dy/F");
156  alignTree_->Branch("dz", &dzVal_, "dz/F");
157  alignTree_->Branch("dr", &drVal_, "dr/F");
158  alignTree_->Branch("dphi", &dphiVal_, "dphi/F");
159  alignTree_->Branch("dalpha", &dalphaVal_, "dalpha/F");
160  alignTree_->Branch("dbeta", &dbetaVal_, "dbeta/F");
161  alignTree_->Branch("dgamma", &dgammaVal_, "dgamma/F");
162  alignTree_->Branch("du", &duVal_, "du/F");
163  alignTree_->Branch("dv", &dvVal_, "dv/F");
164  alignTree_->Branch("dw", &dwVal_, "dw/F");
165  alignTree_->Branch("da", &daVal_, "da/F");
166  alignTree_->Branch("db", &dbVal_, "db/F");
167  alignTree_->Branch("dg", &dgVal_, "dg/F");
168  alignTree_->Branch("useDetId", &useDetId_, "useDetId/I");
169  alignTree_->Branch("detDim", &detDim_, "detDim/I");
170  alignTree_->Branch("surW", &surWidth_, "surW/F");
171  alignTree_->Branch("surL", &surLength_, "surL/F");
172  alignTree_->Branch("surRot", &surRot_, "surRot[9]/D");
173  alignTree_->Branch("identifiers", &identifiers_, "identifiers[6]/I");
174  alignTree_->Branch("type", &type_, "type/I");
175  alignTree_->Branch("surfDeform", &surfDeform_, "surfDeform[13]/D");
176 
177  for (std::vector<TrackerMap>::iterator it = m_vtkmap_.begin(); it != m_vtkmap_.end(); ++it) {
178  it->setPalette(1);
179  it->addPixel(true);
180  }
181 
183  TFileDirectory subDir_All = fs->mkdir("AllSubdetectors");
184  TFileDirectory subDir_PXB = fs->mkdir("PixelBarrel");
185  TFileDirectory subDir_PXF = fs->mkdir("PixelEndcap");
186  for (int ii = 0; ii < 13; ++ii) {
187  std::stringstream histname0;
188  histname0 << "SurfDeform_Par_" << ii;
189  m_h1_[histname0.str()] = subDir_All.make<TH1D>(
190  (histname0.str()).c_str(), (histname0.str()).c_str(), m_nBins_, m_rangeLow_, m_rangeHigh_);
191 
192  std::stringstream histname1;
193  histname1 << "SurfDeform_PixelBarrel_Par_" << ii;
194  m_h1_[histname1.str()] = subDir_PXB.make<TH1D>(
195  (histname1.str()).c_str(), (histname1.str()).c_str(), m_nBins_, m_rangeLow_, m_rangeHigh_);
196 
197  std::stringstream histname2;
198  histname2 << "SurfDeform_PixelEndcap_Par_" << ii;
199  m_h1_[histname2.str()] = subDir_PXF.make<TH1D>(
200  (histname2.str()).c_str(), (histname2.str()).c_str(), m_nBins_, m_rangeLow_, m_rangeHigh_);
201  }
202 }
203 
205 
207  int iname(0);
208  for (std::vector<TrackerMap>::iterator it = m_vtkmap_.begin(); it != m_vtkmap_.end(); ++it) {
209  std::stringstream mapname;
210  mapname << "TkMap_SurfDeform" << iname << ".png";
211  it->save(true, 0, 0, mapname.str());
212  mapname.str(std::string());
213  mapname.clear();
214  mapname << "TkMap_SurfDeform" << iname << ".pdf";
215  it->save(true, 0, 0, mapname.str());
216  ++iname;
217  }
218 
219  theFile_->cd();
220  alignTree_->Write();
221  theFile_->Close();
222 }
223 
225  if (firstEvent_) {
226  //Retrieve tracker topology from geometry
227  const TrackerTopology* const tTopo = &iSetup.getData(topoToken_);
228 
229  //upload the ROOT geometries
230  createROOTGeometry(iSetup);
231 
232  //setting the levels being used in the geometry comparator
233  edm::LogInfo("TrackerGeometryCompare") << "levels: " << levelStrings_.size();
234  for (const auto& level : levelStrings_) {
236  edm::LogInfo("TrackerGeometryCompare") << "level: " << level;
237  edm::LogInfo("TrackerGeometryCompare")
238  << "structure type: " << currentTracker->objectIdProvider().stringToId(level);
239  }
240 
241  //set common tracker system first
242  // if setting the tracker common system
243  if (setCommonTrackerSystem_ != "NONE") {
245  }
246 
247  //compare the goemetries
250 
251  //write out ntuple
252  //might be better to do within output module
253 
254  if (writeToDB_) {
255  Alignments* myAlignments = currentTracker->alignments();
256  AlignmentErrorsExtended* myAlignmentErrorsExtended = currentTracker->alignmentErrors();
257 
258  // 2. Store alignment[Error]s to DB
260  // Call service
261  if (!poolDbService.isAvailable()) // Die if not available
262  throw cms::Exception("NotAvailable") << "PoolDBOutputService not available";
263 
264  poolDbService->writeOne<Alignments>(&(*myAlignments), poolDbService->beginOfTime(), "TrackerAlignmentRcd");
265  poolDbService->writeOne<AlignmentErrorsExtended>(
266  &(*myAlignmentErrorsExtended), poolDbService->beginOfTime(), "TrackerAlignmentErrorExtendedRcd");
267  }
268 
269  firstEvent_ = false;
270  }
271 }
272 
274  int inputRawId1, inputRawId2;
275  double inputX1, inputY1, inputZ1, inputX2, inputY2, inputZ2;
276  double inputAlpha1, inputBeta1, inputGamma1, inputAlpha2, inputBeta2, inputGamma2;
277 
278  //Retrieve tracker topology from geometry
279  const TrackerTopology* const tTopo = &iSetup.getData(topoToken_);
280 
281  // Fill module IDs from file into a list
283  if (moduleListFile_.is_open()) {
285  while (!moduleListFile_.eof()) {
286  std::getline(moduleListFile_, line);
287  moduleList_.push_back(std::atoi(line.c_str()));
288  }
289  } else {
290  edm::LogInfo("TrackerGeometryCompare") << "Error: Module list not found! Please verify that given list exists!";
291  }
292 
293  //declare alignments
294  Alignments* alignments1 = new Alignments();
295  AlignmentErrorsExtended* alignmentErrors1 = new AlignmentErrorsExtended();
296  if (inputFilename1_ != "IDEAL") {
297  inputRootFile1_ = new TFile(inputFilename1_.c_str());
298  TTree* inputTree01_ = (TTree*)inputRootFile1_->Get(inputTreenameAlign_.c_str());
299  inputTree01_->SetBranchAddress("rawid", &inputRawId1);
300  inputTree01_->SetBranchAddress("x", &inputX1);
301  inputTree01_->SetBranchAddress("y", &inputY1);
302  inputTree01_->SetBranchAddress("z", &inputZ1);
303  inputTree01_->SetBranchAddress("alpha", &inputAlpha1);
304  inputTree01_->SetBranchAddress("beta", &inputBeta1);
305  inputTree01_->SetBranchAddress("gamma", &inputGamma1);
306 
307  int nEntries1 = inputTree01_->GetEntries();
308  //fill alignments
309  for (int i = 0; i < nEntries1; ++i) {
310  inputTree01_->GetEntry(i);
311  CLHEP::Hep3Vector translation1(inputX1, inputY1, inputZ1);
312  CLHEP::HepEulerAngles eulerangles1(inputAlpha1, inputBeta1, inputGamma1);
313  uint32_t detid1 = inputRawId1;
314  AlignTransform transform1(translation1, eulerangles1, detid1);
315  alignments1->m_align.push_back(transform1);
316 
317  //dummy errors
318  CLHEP::HepSymMatrix clhepSymMatrix(3, 0);
319  AlignTransformErrorExtended transformError(clhepSymMatrix, detid1);
320  alignmentErrors1->m_alignError.push_back(transformError);
321  }
322 
323  // to get the right order, sort by rawId
324  std::sort(alignments1->m_align.begin(), alignments1->m_align.end());
325  std::sort(alignmentErrors1->m_alignError.begin(), alignmentErrors1->m_alignError.end());
326  }
327  //------------------
328  Alignments* alignments2 = new Alignments();
329  AlignmentErrorsExtended* alignmentErrors2 = new AlignmentErrorsExtended();
330  if (inputFilename2_ != "IDEAL") {
331  inputRootFile2_ = new TFile(inputFilename2_.c_str());
332  TTree* inputTree02_ = (TTree*)inputRootFile2_->Get(inputTreenameAlign_.c_str());
333  inputTree02_->SetBranchAddress("rawid", &inputRawId2);
334  inputTree02_->SetBranchAddress("x", &inputX2);
335  inputTree02_->SetBranchAddress("y", &inputY2);
336  inputTree02_->SetBranchAddress("z", &inputZ2);
337  inputTree02_->SetBranchAddress("alpha", &inputAlpha2);
338  inputTree02_->SetBranchAddress("beta", &inputBeta2);
339  inputTree02_->SetBranchAddress("gamma", &inputGamma2);
340 
341  int nEntries2 = inputTree02_->GetEntries();
342  //fill alignments
343  for (int i = 0; i < nEntries2; ++i) {
344  inputTree02_->GetEntry(i);
345  CLHEP::Hep3Vector translation2(inputX2, inputY2, inputZ2);
346  CLHEP::HepEulerAngles eulerangles2(inputAlpha2, inputBeta2, inputGamma2);
347  uint32_t detid2 = inputRawId2;
348  AlignTransform transform2(translation2, eulerangles2, detid2);
349  alignments2->m_align.push_back(transform2);
350 
351  //dummy errors
352  CLHEP::HepSymMatrix clhepSymMatrix(3, 0);
353  AlignTransformErrorExtended transformError(clhepSymMatrix, detid2);
354  alignmentErrors2->m_alignError.push_back(transformError);
355  }
356 
357  // to get the right order, sort by rawId
358  std::sort(alignments2->m_align.begin(), alignments2->m_align.end());
359  std::sort(alignmentErrors2->m_alignError.begin(), alignmentErrors2->m_alignError.end());
360  }
361 
362  //accessing the initial geometry
363  if (!fromDD4hep_) {
365  } else {
367  }
368 
369  const GeometricDet* theGeometricDet = &iSetup.getData(geomDetToken_);
370  const PTrackerParameters* ptp = &iSetup.getData(ptpToken_);
372  TrackerGeomBuilderFromGeometricDet trackerBuilder;
373 
374  //reference tracker
375  TrackerGeometry* theRefTracker = trackerBuilder.build(theGeometricDet, ptitp, *ptp, tTopo);
376  if (inputFilename1_ != "IDEAL") {
377  GeometryAligner aligner1;
379  &(*theRefTracker), &(*alignments1), &(*alignmentErrors1), AlignTransform());
380  }
381  referenceTracker = new AlignableTracker(&(*theRefTracker), tTopo);
382  //referenceTracker->setSurfaceDeformation(surfDef1, true) ;
383 
384  int inputRawid1;
385  int inputRawid2;
386  int inputDtype1, inputDtype2;
387  std::vector<double> inputDpar1;
388  std::vector<double> inputDpar2;
389  std::vector<double>* p_inputDpar1 = &inputDpar1;
390  std::vector<double>* p_inputDpar2 = &inputDpar2;
391 
392  const auto& comp1 = referenceTracker->deepComponents();
393 
394  SurfaceDeformation* surfDef1;
395  if (inputFilename1_ != "IDEAL") {
396  TTree* inputTree11_ = (TTree*)inputRootFile1_->Get(inputTreenameDeform_.c_str());
397  inputTree11_->SetBranchAddress("irawid", &inputRawid1);
398  inputTree11_->SetBranchAddress("dtype", &inputDtype1);
399  inputTree11_->SetBranchAddress("dpar", &p_inputDpar1);
400 
401  unsigned int nEntries11 = inputTree11_->GetEntries();
402  edm::LogInfo("TrackerGeometryCompare") << " nentries11 = " << nEntries11;
403  for (unsigned int iEntry = 0; iEntry < nEntries11; ++iEntry) {
404  inputTree11_->GetEntry(iEntry);
405 
406  surfDef1 = SurfaceDeformationFactory::create(inputDtype1, inputDpar1);
407 
408  if (int(comp1[iEntry]->id()) == inputRawid1) {
409  comp1[iEntry]->setSurfaceDeformation(surfDef1, true);
410  }
411  }
412  }
413 
414  //currernt tracker
415  TrackerGeometry* theCurTracker = trackerBuilder.build(&*theGeometricDet, ptitp, *ptp, tTopo);
416  if (inputFilename2_ != "IDEAL") {
417  GeometryAligner aligner2;
419  &(*theCurTracker), &(*alignments2), &(*alignmentErrors2), AlignTransform());
420  }
421  currentTracker = new AlignableTracker(&(*theCurTracker), tTopo);
422 
423  const auto& comp2 = currentTracker->deepComponents();
424 
425  SurfaceDeformation* surfDef2;
426  if (inputFilename2_ != "IDEAL") {
427  TTree* inputTree12_ = (TTree*)inputRootFile2_->Get(inputTreenameDeform_.c_str());
428  inputTree12_->SetBranchAddress("irawid", &inputRawid2);
429  inputTree12_->SetBranchAddress("dtype", &inputDtype2);
430  inputTree12_->SetBranchAddress("dpar", &p_inputDpar2);
431 
432  unsigned int nEntries12 = inputTree12_->GetEntries();
433  edm::LogInfo("TrackerGeometryCompare") << " nentries12 = " << nEntries12;
434  for (unsigned int iEntry = 0; iEntry < nEntries12; ++iEntry) {
435  inputTree12_->GetEntry(iEntry);
436 
437  surfDef2 = SurfaceDeformationFactory::create(inputDtype2, inputDpar2);
438 
439  if (int(comp2[iEntry]->id()) == inputRawid2) {
440  comp2[iEntry]->setSurfaceDeformation(surfDef2, true);
441  }
442  }
443  }
444 
445  delete alignments1;
446  delete alignmentErrors1;
447  delete alignments2;
448  delete alignmentErrors2;
449 }
450 
451 void TrackerGeometryCompare::compareSurfaceDeformations(TTree* refTree, TTree* curTree) {
452  if (inputFilename1_ != "IDEAL" && inputFilename2_ != "IDEAL") {
453  int inputRawid1;
454  int inputRawid2;
455  int inputSubdetid1, inputSubdetid2;
456  int inputDtype1, inputDtype2;
457  std::vector<double> inputDpar1;
458  std::vector<double> inputDpar2;
459  std::vector<double>* p_inputDpar1 = &inputDpar1;
460  std::vector<double>* p_inputDpar2 = &inputDpar2;
461 
462  TTree* refTree = (TTree*)inputRootFile1_->Get(inputTreenameDeform_.c_str());
463  refTree->SetBranchAddress("irawid", &inputRawid1);
464  refTree->SetBranchAddress("subdetid", &inputSubdetid1);
465  refTree->SetBranchAddress("dtype", &inputDtype1);
466  refTree->SetBranchAddress("dpar", &p_inputDpar1);
467 
468  TTree* curTree = (TTree*)inputRootFile2_->Get(inputTreenameDeform_.c_str());
469  curTree->SetBranchAddress("irawid", &inputRawid2);
470  curTree->SetBranchAddress("subdetid", &inputSubdetid2);
471  curTree->SetBranchAddress("dtype", &inputDtype2);
472  curTree->SetBranchAddress("dpar", &p_inputDpar2);
473 
474  unsigned int nEntries11 = refTree->GetEntries();
475  unsigned int nEntries12 = curTree->GetEntries();
476 
477  if (nEntries11 != nEntries12) {
478  edm::LogError("TrackerGeometryCompare") << " Surface deformation parameters in two geometries differ!\n";
479  return;
480  }
481 
482  for (unsigned int iEntry = 0; iEntry < nEntries12; ++iEntry) {
483  refTree->GetEntry(iEntry);
484  curTree->GetEntry(iEntry);
485  for (int ii = 0; ii < 13; ++ii) {
486  surfDeform_[ii] = -1.0;
487  }
488  for (int npar = 0; npar < int(inputDpar2.size()); ++npar) {
489  if (inputRawid1 == inputRawid2) {
490  surfDeform_[npar] = inputDpar2.at(npar) - inputDpar1.at(npar);
491  std::stringstream histname0;
492  histname0 << "SurfDeform_Par_" << npar;
493  if (TMath::Abs(surfDeform_[npar]) > (m_rangeHigh_ - m_rangeLow_) / (10. * m_nBins_))
494  m_h1_[histname0.str()]->Fill(surfDeform_[npar]);
495  if (inputSubdetid1 == 1 && inputSubdetid2 == 1) {
496  std::stringstream histname1;
497  histname1 << "SurfDeform_PixelBarrel_Par_" << npar;
498  if (TMath::Abs(surfDeform_[npar]) > (m_rangeHigh_ - m_rangeLow_) / (10. * m_nBins_))
499  m_h1_[histname1.str()]->Fill(surfDeform_[npar]);
500  }
501  if (inputSubdetid1 == 2 && inputSubdetid2 == 2) {
502  std::stringstream histname2;
503  histname2 << "SurfDeform_PixelEndcap_Par_" << npar;
504  if (TMath::Abs(surfDeform_[npar]) > (m_rangeHigh_ - m_rangeLow_) / (10. * m_nBins_))
505  m_h1_[histname2.str()]->Fill(surfDeform_[npar]);
506  }
507  (m_vtkmap_.at(npar)).fill_current_val(inputRawid1, surfDeform_[npar]);
508  }
509  }
510  }
511 
512  } else if (inputFilename1_ == "IDEAL" && inputFilename2_ != "IDEAL") {
513  int inputRawid2;
514  int inputSubdetid2;
515  int inputDtype2;
516  std::vector<double> inputDpar2;
517  std::vector<double>* p_inputDpar2 = &inputDpar2;
518 
519  TTree* curTree = (TTree*)inputRootFile2_->Get(inputTreenameDeform_.c_str());
520  curTree->SetBranchAddress("irawid", &inputRawid2);
521  curTree->SetBranchAddress("subdetid", &inputSubdetid2);
522  curTree->SetBranchAddress("dtype", &inputDtype2);
523  curTree->SetBranchAddress("dpar", &p_inputDpar2);
524 
525  unsigned int nEntries12 = curTree->GetEntries();
526 
527  for (unsigned int iEntry = 0; iEntry < nEntries12; ++iEntry) {
528  curTree->GetEntry(iEntry);
529  for (int ii = 0; ii < 12; ++ii) {
530  surfDeform_[ii] = -1.0;
531  }
532  for (int npar = 0; npar < int(inputDpar2.size()); ++npar) {
533  surfDeform_[npar] = inputDpar2.at(npar);
534  std::stringstream histname0;
535  histname0 << "SurfDeform_Par_" << npar;
536  if (TMath::Abs(surfDeform_[npar]) > (m_rangeHigh_ - m_rangeLow_) / (10. * m_nBins_))
537  m_h1_[histname0.str()]->Fill(surfDeform_[npar]);
538  if (inputSubdetid2 == 1) {
539  std::stringstream histname1;
540  histname1 << "SurfDeform_PixelBarrel_Par_" << npar;
541  if (TMath::Abs(surfDeform_[npar]) > (m_rangeHigh_ - m_rangeLow_) / (10. * m_nBins_))
542  m_h1_[histname1.str()]->Fill(surfDeform_[npar]);
543  }
544  if (inputSubdetid2 == 2) {
545  std::stringstream histname2;
546  histname2 << "SurfDeform_PixelEndcap_Par_" << npar;
547  if (TMath::Abs(surfDeform_[npar]) > (m_rangeHigh_ - m_rangeLow_) / (10. * m_nBins_))
548  m_h1_[histname2.str()]->Fill(surfDeform_[npar]);
549  }
550  (m_vtkmap_.at(npar)).fill_current_val(inputRawid2, surfDeform_[npar]);
551  }
552  }
553 
554  } else if (inputFilename1_ != "IDEAL" && inputFilename2_ == "IDEAL") {
555  int inputRawid1;
556  int inputSubdetid1;
557  int inputDtype1;
558  std::vector<double> inputDpar1;
559  std::vector<double>* p_inputDpar1 = &inputDpar1;
560 
561  TTree* refTree = (TTree*)inputRootFile1_->Get(inputTreenameDeform_.c_str());
562  refTree->SetBranchAddress("irawid", &inputRawid1);
563  refTree->SetBranchAddress("subdetid", &inputSubdetid1);
564  refTree->SetBranchAddress("dtype", &inputDtype1);
565  refTree->SetBranchAddress("dpar", &p_inputDpar1);
566 
567  unsigned int nEntries11 = refTree->GetEntries();
568 
569  for (unsigned int iEntry = 0; iEntry < nEntries11; ++iEntry) {
570  refTree->GetEntry(iEntry);
571  for (int ii = 0; ii < 12; ++ii) {
572  surfDeform_[ii] = -1.0;
573  }
574  for (int npar = 0; npar < int(inputDpar1.size()); ++npar) {
575  surfDeform_[npar] = -inputDpar1.at(npar);
576  std::stringstream histname0;
577  histname0 << "SurfDeform_Par_" << npar;
578  if (TMath::Abs(surfDeform_[npar]) > (m_rangeHigh_ - m_rangeLow_) / (10. * m_nBins_))
579  m_h1_[histname0.str()]->Fill(surfDeform_[npar]);
580  if (inputSubdetid1 == 1) {
581  std::stringstream histname1;
582  histname1 << "SurfDeform_PixelBarrel_Par_" << npar;
583  if (TMath::Abs(surfDeform_[npar]) > (m_rangeHigh_ - m_rangeLow_) / (10. * m_nBins_))
584  m_h1_[histname1.str()]->Fill(surfDeform_[npar]);
585  }
586  if (inputSubdetid1 == 2) {
587  std::stringstream histname2;
588  histname2 << "SurfDeform_PixelEndcap_Par_" << npar;
589  if (TMath::Abs(surfDeform_[npar]) > (m_rangeHigh_ - m_rangeLow_) / (10. * m_nBins_))
590  m_h1_[histname2.str()]->Fill(surfDeform_[npar]);
591  }
592  (m_vtkmap_.at(npar)).fill_current_val(inputRawid1, surfDeform_[npar]);
593  }
594  }
595 
596  } else if (inputFilename1_ == "IDEAL" && inputFilename2_ == "IDEAL") {
597  edm::LogInfo("TrackerGeometryCompare") << ">>>> Comparing IDEAL with IDEAL: nothing to do! <<<<\n";
598  }
599 
600  return;
601 }
602 
604  Alignable* curAli,
605  const TrackerTopology* tTopo,
606  const edm::EventSetup& iSetup) {
607  using namespace align;
608 
609  const auto& refComp = refAli->components();
610  const auto& curComp = curAli->components();
611 
612  unsigned int nComp = refComp.size();
613  //only perform for designate levels
614  bool useLevel = false;
615  for (unsigned int i = 0; i < m_theLevels.size(); ++i) {
616  if (refAli->alignableObjectId() == m_theLevels[i])
617  useLevel = true;
618  }
619 
620  //another added level for difference between det and detunit
621  //if ((refAli->alignableObjectId()==2)&&(nComp == 1)) useLevel = false;
622 
623  //coordinate matching, etc etc
624  if (useLevel) {
625  DetId detid(refAli->id());
626 
627  CLHEP::Hep3Vector Rtotal, Wtotal, lRtotal, lWtotal;
628  Rtotal.set(0., 0., 0.);
629  Wtotal.set(0., 0., 0.);
630  lRtotal.set(0., 0., 0.);
631  lWtotal.set(0., 0., 0.);
632 
633  bool converged = false;
634 
636 
637  for (int i = 0; i < 100; i++) {
638  // Get differences between alignments for rotations and translations
639  // both local and global
641 
642  // 'diffAlignables' returns 'refAli - curAli' for translations and 'curAli - refAli' for rotations.
643  // The plan is to unify this at some point, but a simple change of the sign for one of them was postponed
644  // to do some further checks to understand the rotations better
645  //Updated July 2018: as requested the sign in the translations has been changed to match the one in rotations. A test was done to change the diffAlignables function and solve the issue there, but proved quite time consuming. To unify the sign convention in the least amount of time the choice was made to change the sign here.
646  CLHEP::Hep3Vector dR(-diff[0], -diff[1], -diff[2]);
647  CLHEP::Hep3Vector dW(diff[3], diff[4], diff[5]);
648  CLHEP::Hep3Vector dRLocal(-diff[6], -diff[7], -diff[8]);
649  CLHEP::Hep3Vector dWLocal(diff[9], diff[10], diff[11]);
650 
651  // Translations
652  Rtotal += dR;
653  lRtotal += dRLocal;
654 
655  //Rotations
656  CLHEP::HepRotation rot(Wtotal.unit(), Wtotal.mag());
657  CLHEP::HepRotation drot(dW.unit(), dW.mag());
658  rot *= drot;
659  Wtotal.set(rot.axis().x() * rot.delta(), rot.axis().y() * rot.delta(), rot.axis().z() * rot.delta());
660 
661  CLHEP::HepRotation rotLocal(lWtotal.unit(), lWtotal.mag());
662  CLHEP::HepRotation drotLocal(dWLocal.unit(), dWLocal.mag());
663  rotLocal *= drotLocal;
664  lWtotal.set(rotLocal.axis().x() * rotLocal.delta(),
665  rotLocal.axis().y() * rotLocal.delta(),
666  rotLocal.axis().z() * rotLocal.delta());
667 
668  // Move current alignable by shift and check if difference
669  // is smaller than tolerance value
670  // if true, break the loop
671  align::moveAlignable(curAli, diff);
672  float tolerance = 1e-7;
674  align::GlobalVector checkR(check[0], check[1], check[2]);
675  align::GlobalVector checkW(check[3], check[4], check[5]);
676  if ((checkR.mag() < tolerance) && (checkW.mag() < tolerance)) {
677  converged = true;
678  break;
679  }
680  }
681 
682  // give an exception if difference has not fallen below tolerance level
683  // i.e. method has not converged
684  if (!converged) {
685  edm::LogInfo("TrackerGeometryCompare")
686  << "Tolerance Exceeded!(alObjId: " << refAli->alignableObjectId()
687  << ", rawId: " << refAli->geomDetId().rawId() << ", subdetId: " << detid.subdetId() << "): " << diff << check;
688  throw cms::Exception("Tolerance in TrackerGeometryCompare exceeded");
689  }
690 
691  AlgebraicVector TRtot(12);
692  // global
693  TRtot(1) = Rtotal.x();
694  TRtot(2) = Rtotal.y();
695  TRtot(3) = Rtotal.z();
696  TRtot(4) = Wtotal.x();
697  TRtot(5) = Wtotal.y();
698  TRtot(6) = Wtotal.z();
699  // local
700  TRtot(7) = lRtotal.x();
701  TRtot(8) = lRtotal.y();
702  TRtot(9) = lRtotal.z();
703  TRtot(10) = lWtotal.x();
704  TRtot(11) = lWtotal.y();
705  TRtot(12) = lWtotal.z();
706 
707  fillTree(refAli, TRtot, tTopo, iSetup);
708  }
709 
710  // another added level for difference between det and detunit
711  for (unsigned int i = 0; i < nComp; ++i)
712  compareGeometries(refComp[i], curComp[i], tTopo, iSetup);
713 }
714 
716  edm::LogInfo("TrackerGeometryCompare") << "Setting Common Tracker System....";
717 
718  // DM_534??AlignableObjectId dummy;
719  // DM_534??_commonTrackerLevel = dummy.nameToType(_setCommonTrackerSystem);
721 
723 
724  align::EulerAngles dOmega(3);
725  dOmega[0] = TrackerCommonR_.x();
726  dOmega[1] = TrackerCommonR_.y();
727  dOmega[2] = TrackerCommonR_.z();
730 
731  edm::LogInfo("TrackerGeometryCompare") << "what we get from overlaying the pixels..." << theR << ", " << rot;
732 
733  //transform to the Tracker System
735  align::GlobalVector cmDiff(
736  trackerCM.x() - TrackerCommonCM_.x(), trackerCM.y() - TrackerCommonCM_.y(), trackerCM.z() - TrackerCommonCM_.z());
737 
738  edm::LogInfo("TrackerGeometryCompare") << "Pixel CM: " << TrackerCommonCM_ << ", tracker CM: " << trackerCM;
739 
740  //adjust translational difference factoring in different rotational CM
741  //needed because rotateInGlobalFrame is about CM of alignable, not Tracker
742  const align::GlobalVector::BasicVectorType& lpvgf = cmDiff.basicVector();
743  align::GlobalVector moveV(rot.multiplyInverse(lpvgf) - lpvgf);
744  align::GlobalVector theRprime(theR + moveV);
745 
746  AlgebraicVector TrackerCommonTR(6);
747  TrackerCommonTR(1) = theRprime.x();
748  TrackerCommonTR(2) = theRprime.y();
749  TrackerCommonTR(3) = theRprime.z();
750  TrackerCommonTR(4) = TrackerCommonR_.x();
751  TrackerCommonTR(5) = TrackerCommonR_.y();
752  TrackerCommonTR(6) = TrackerCommonR_.z();
753 
754  edm::LogInfo("TrackerGeometryCompare") << "and after the transformation: " << TrackerCommonTR;
755 
756  align::moveAlignable(currentTracker, TrackerCommonTR);
757 }
758 
760  const auto& refComp = refAli->components();
761  const auto& curComp = curAli->components();
762 
763  unsigned int nComp = refComp.size();
764  //only perform for designate levels
765  bool useLevel = false;
766  if (refAli->alignableObjectId() == commonTrackerLevel_)
767  useLevel = true;
768 
769  //useLevel = false;
770  if (useLevel) {
771  CLHEP::Hep3Vector Rtotal, Wtotal;
772  Rtotal.set(0., 0., 0.);
773  Wtotal.set(0., 0., 0.);
774 
776  CLHEP::Hep3Vector dR(diff[0], diff[1], diff[2]);
777  Rtotal += dR;
778  CLHEP::Hep3Vector dW(diff[3], diff[4], diff[5]);
779  CLHEP::HepRotation rot(Wtotal.unit(), Wtotal.mag());
780  CLHEP::HepRotation drot(dW.unit(), dW.mag());
781  rot *= drot;
782  Wtotal.set(rot.axis().x() * rot.delta(), rot.axis().y() * rot.delta(), rot.axis().z() * rot.delta());
783 
784  TrackerCommonT_ = align::GlobalVector(Rtotal.x(), Rtotal.y(), Rtotal.z());
785  TrackerCommonR_ = align::GlobalVector(Wtotal.x(), Wtotal.y(), Wtotal.z());
786  TrackerCommonCM_ = curAli->globalPosition();
787 
788  } else {
789  for (unsigned int i = 0; i < nComp; ++i)
790  diffCommonTrackerSystem(refComp[i], curComp[i]);
791  }
792 }
793 
795  const AlgebraicVector& diff,
796  const TrackerTopology* tTopo,
797  const edm::EventSetup& iSetup) {
798  //Get bad modules
799  const SiPixelQuality* SiPixelModules = &iSetup.getData(pixQualityToken_);
800  const SiStripQuality* SiStripModules = &iSetup.getData(stripQualityToken_);
801 
802  id_ = refAli->id();
803 
804  badModuleQuality_ = 0;
805  //check if module has a bad quality tag
806  if (SiPixelModules->IsModuleBad(id_)) {
807  badModuleQuality_ = 1;
808  }
809  if (SiStripModules->IsModuleBad(id_)) {
810  badModuleQuality_ = 1;
811  }
812 
813  //check if module is in a given list of bad/untouched etc. modules
814  inModuleList_ = 0;
815  for (unsigned int i = 0; i < moduleList_.size(); i++) {
816  if (moduleList_[i] == id_) {
817  inModuleList_ = 1;
818  break;
819  }
820  }
821 
822  level_ = refAli->alignableObjectId();
823  //need if ali has no mother
824  if (refAli->mother()) {
825  mid_ = refAli->mother()->geomDetId().rawId();
826  mlevel_ = refAli->mother()->alignableObjectId();
827  } else {
828  mid_ = -1;
829  mlevel_ = -1;
830  }
831  DetId detid(id_);
832  sublevel_ = detid.subdetId();
833  fillIdentifiers(sublevel_, id_, tTopo);
834  xVal_ = refAli->globalPosition().x();
835  yVal_ = refAli->globalPosition().y();
836  zVal_ = refAli->globalPosition().z();
838  rVal_ = vec.perp();
839  phiVal_ = vec.phi();
840  etaVal_ = vec.eta();
842  align::EulerAngles eulerAngles = align::toAngles(rot);
843  alphaVal_ = eulerAngles[0];
844  betaVal_ = eulerAngles[1];
845  gammaVal_ = eulerAngles[2];
846  // global
847  dxVal_ = diff[0];
848  dyVal_ = diff[1];
849  dzVal_ = diff[2];
850  // local
851  duVal_ = diff[6];
852  dvVal_ = diff[7];
853  dwVal_ = diff[8];
854  //...TODO...
856  //getting dR and dPhi
859  drVal_ = vCur.perp() - vRef.perp();
860  dphiVal_ = vCur.phi() - vRef.phi();
861  // global
862  dalphaVal_ = diff[3];
863  dbetaVal_ = diff[4];
864  dgammaVal_ = diff[5];
865  // local
866  daVal_ = diff[9];
867  dbVal_ = diff[10];
868  dgVal_ = diff[11];
869 
870  //detIdFlag
871  if (refAli->alignableObjectId() == align::AlignableDetUnit) {
872  if (detIdFlag_) {
873  if ((passIdCut(refAli->id())) || (passIdCut(refAli->mother()->id()))) {
874  useDetId_ = 1;
875  } else {
876  useDetId_ = 0;
877  }
878  }
879  }
880  // det module dimension
881  if (refAli->alignableObjectId() == align::AlignableDetUnit) {
882  if (refAli->mother()->alignableObjectId() != align::AlignableDet)
883  detDim_ = 1;
884  else if (refAli->mother()->alignableObjectId() == align::AlignableDet)
885  detDim_ = 2;
886  } else
887  detDim_ = 0;
888 
889  surWidth_ = refAli->surface().width();
890  surLength_ = refAli->surface().length();
892  surRot_[0] = rt.xx();
893  surRot_[1] = rt.xy();
894  surRot_[2] = rt.xz();
895  surRot_[3] = rt.yx();
896  surRot_[4] = rt.yy();
897  surRot_[5] = rt.yz();
898  surRot_[6] = rt.zx();
899  surRot_[7] = rt.zy();
900  surRot_[8] = rt.zz();
901 
902  //Fill
903  alignTree_->Fill();
904 }
905 
907  Alignments* alignVals,
908  AlignmentErrorsExtended* alignErrors) {
909  //getting the right alignables for the alignment record
910  auto detPB = ali->pixelHalfBarrelGeomDets();
911  auto detPEC = ali->pixelEndcapGeomDets();
912  auto detTIB = ali->innerBarrelGeomDets();
913  auto detTID = ali->TIDGeomDets();
914  auto detTOB = ali->outerBarrelGeomDets();
915  auto detTEC = ali->endcapGeomDets();
916 
917  align::Alignables allGeomDets;
918  std::copy(detPB.begin(), detPB.end(), std::back_inserter(allGeomDets));
919  std::copy(detPEC.begin(), detPEC.end(), std::back_inserter(allGeomDets));
920  std::copy(detTIB.begin(), detTIB.end(), std::back_inserter(allGeomDets));
921  std::copy(detTID.begin(), detTID.end(), std::back_inserter(allGeomDets));
922  std::copy(detTOB.begin(), detTOB.end(), std::back_inserter(allGeomDets));
923  std::copy(detTEC.begin(), detTEC.end(), std::back_inserter(allGeomDets));
924 
925  align::Alignables rcdAlis;
926  for (const auto& i : allGeomDets) {
927  if (i->components().size() == 1) {
928  rcdAlis.push_back(i);
929  } else if (i->components().size() > 1) {
930  rcdAlis.push_back(i);
931  const auto& comp = i->components();
932  for (const auto& j : comp)
933  rcdAlis.push_back(j);
934  }
935  }
936 
937  //turning them into alignments
938  for (const auto& k : rcdAlis) {
939  const SurveyDet* surveyInfo = k->survey();
940  const align::PositionType& pos(surveyInfo->position());
941  align::RotationType rot(surveyInfo->rotation());
942  CLHEP::Hep3Vector clhepVector(pos.x(), pos.y(), pos.z());
943  CLHEP::HepRotation clhepRotation(
944  CLHEP::HepRep3x3(rot.xx(), rot.xy(), rot.xz(), rot.yx(), rot.yy(), rot.yz(), rot.zx(), rot.zy(), rot.zz()));
945  AlignTransform transform(clhepVector, clhepRotation, k->id());
946  AlignTransformErrorExtended transformError(CLHEP::HepSymMatrix(3, 1), k->id());
947  alignVals->m_align.push_back(transform);
948  alignErrors->m_alignError.push_back(transformError);
949  }
950 
951  // to get the right order, sort by rawId
952  std::sort(alignVals->m_align.begin(), alignVals->m_align.end());
953  std::sort(alignErrors->m_alignError.begin(), alignErrors->m_alignError.end());
954 }
955 
957  const auto& comp = ali->components();
958 
959  unsigned int nComp = comp.size();
960 
961  for (unsigned int i = 0; i < nComp; ++i)
962  addSurveyInfo(comp[i]);
963 
965 
966  if (ali->geomDetId().rawId() != error.rawId() || ali->alignableObjectId() != error.structureType()) {
967  throw cms::Exception("DatabaseError") << "Error reading survey info from DB. Mismatched id!";
968  }
969 
970  const CLHEP::Hep3Vector& pos = theSurveyValues->m_align[theSurveyIndex].translation();
971  const CLHEP::HepRotation& rot = theSurveyValues->m_align[theSurveyIndex].rotation();
972 
973  AlignableSurface surf(
974  align::PositionType(pos.x(), pos.y(), pos.z()),
975  align::RotationType(rot.xx(), rot.xy(), rot.xz(), rot.yx(), rot.yy(), rot.yz(), rot.zx(), rot.zy(), rot.zz()));
976 
977  surf.setWidth(ali->surface().width());
978  surf.setLength(ali->surface().length());
979 
980  ali->setSurvey(new SurveyDet(surf, error.matrix()));
981 
982  ++theSurveyIndex;
983 }
984 
986  bool pass = false;
987  int nEntries = detIdFlagVector_.size();
988 
989  for (int i = 0; i < nEntries; i++) {
990  if (detIdFlagVector_[i] == id)
991  pass = true;
992  }
993 
994  return pass;
995 }
996 
997 void TrackerGeometryCompare::fillIdentifiers(int subdetlevel, int rawid, const TrackerTopology* tTopo) {
998  switch (subdetlevel) {
999  case 1: {
1000  identifiers_[0] = tTopo->pxbModule(rawid);
1001  identifiers_[1] = tTopo->pxbLadder(rawid);
1002  identifiers_[2] = tTopo->pxbLayer(rawid);
1003  identifiers_[3] = 999;
1004  identifiers_[4] = 999;
1005  identifiers_[5] = 999;
1006  break;
1007  }
1008  case 2: {
1009  identifiers_[0] = tTopo->pxfModule(rawid);
1010  identifiers_[1] = tTopo->pxfPanel(rawid);
1011  identifiers_[2] = tTopo->pxfBlade(rawid);
1012  identifiers_[3] = tTopo->pxfDisk(rawid);
1013  identifiers_[4] = tTopo->pxfSide(rawid);
1014  identifiers_[5] = 999;
1015  break;
1016  }
1017  case 3: {
1018  identifiers_[0] = tTopo->tibModule(rawid);
1019  identifiers_[1] = tTopo->tibStringInfo(rawid)[0];
1020  identifiers_[2] = tTopo->tibStringInfo(rawid)[1];
1021  identifiers_[3] = tTopo->tibStringInfo(rawid)[2];
1022  identifiers_[4] = tTopo->tibLayer(rawid);
1023  identifiers_[5] = 999;
1024  break;
1025  }
1026  case 4: {
1027  identifiers_[0] = tTopo->tidModuleInfo(rawid)[0];
1028  identifiers_[1] = tTopo->tidModuleInfo(rawid)[1];
1029  identifiers_[2] = tTopo->tidRing(rawid);
1030  identifiers_[3] = tTopo->tidWheel(rawid);
1031  identifiers_[4] = tTopo->tidSide(rawid);
1032  identifiers_[5] = 999;
1033  break;
1034  }
1035  case 5: {
1036  identifiers_[0] = tTopo->tobModule(rawid);
1037  identifiers_[1] = tTopo->tobRodInfo(rawid)[0];
1038  identifiers_[2] = tTopo->tobRodInfo(rawid)[1];
1039  identifiers_[3] = tTopo->tobLayer(rawid);
1040  identifiers_[4] = 999;
1041  identifiers_[5] = 999;
1042  break;
1043  }
1044  case 6: {
1045  identifiers_[0] = tTopo->tecModule(rawid);
1046  identifiers_[1] = tTopo->tecRing(rawid);
1047  identifiers_[2] = tTopo->tecPetalInfo(rawid)[0];
1048  identifiers_[3] = tTopo->tecPetalInfo(rawid)[1];
1049  identifiers_[4] = tTopo->tecWheel(rawid);
1050  identifiers_[5] = tTopo->tecSide(rawid);
1051  break;
1052  }
1053  default: {
1054  edm::LogInfo("TrackerGeometryCompare") << "Error: bad subdetid!!";
1055  break;
1056  }
1057  }
1058 }
1059 
Vector3DBase< Scalar, GlobalTag >
personalPlayback.level
level
Definition: personalPlayback.py:22
TrackerGeometryCompare
Definition: TrackerGeometryCompare.h:41
AlignmentErrorsExtended.h
align::toAngles
EulerAngles toAngles(const RotationType &)
Convert rotation matrix to angles about x-, y-, z-axes (frame rotation).
Definition: Utilities.cc:8
TrackerGeometryCompare::dbetaVal_
float dbetaVal_
Definition: TrackerGeometryCompare.h:146
TrackerGeometryCompare::TrackerCommonT_
align::GlobalVector TrackerCommonT_
Definition: TrackerGeometryCompare.h:123
change_name.diff
diff
Definition: change_name.py:13
TrackerGeometryCompare::theFile_
TFile * theFile_
Definition: TrackerGeometryCompare.h:133
TkRotation< Scalar >
AlignableTracker::outerBarrelGeomDets
Alignables & outerBarrelGeomDets()
Return outer barrel GeomDets.
Definition: AlignableTracker.h:57
SiPixelQuality::IsModuleBad
bool IsModuleBad(const uint32_t &detid) const
Definition: SiPixelQuality.cc:93
TrackerGeometryCompare::surveyToTracker
void surveyToTracker(AlignableTracker *ali, Alignments *alignVals, AlignmentErrorsExtended *alignErrors)
Definition: TrackerGeometryCompare.cc:906
GlobalPositionRcd.h
AlCaHLTBitMon_QueryRunRegistry.comp
string comp
Definition: AlCaHLTBitMon_QueryRunRegistry.py:249
TrackerGeometryCompare::filename_
std::string filename_
Definition: TrackerGeometryCompare.h:132
electrons_cff.bool
bool
Definition: electrons_cff.py:366
mps_fire.i
i
Definition: mps_fire.py:428
TrackerGeometryCompare::detIdFlagVector_
std::vector< uint32_t > detIdFlagVector_
Definition: TrackerGeometryCompare.h:121
TrackerGeometryCompare::betaVal_
float betaVal_
Definition: TrackerGeometryCompare.h:144
TrackerGeometryCompare::inputTreenameAlign_
std::string inputTreenameAlign_
Definition: TrackerGeometryCompare.h:109
TrackerGeometryCompare.h
TrackerGeometryCompare::fillTree
void fillTree(Alignable *refAli, const AlgebraicVector &diff, const TrackerTopology *tTopo, const edm::EventSetup &iSetup)
Definition: TrackerGeometryCompare.cc:794
ESTransientHandle.h
MessageLogger.h
align
Definition: AlignableIndexer.h:30
TrackerGeometryCompare::setCommonTrackerSystem
void setCommonTrackerSystem()
Definition: TrackerGeometryCompare.cc:715
TrackerGeometryCompare::setCommonTrackerSystem_
std::string setCommonTrackerSystem_
Definition: TrackerGeometryCompare.h:114
TrackerGeometry.h
TrackerGeometryCompare::beginJob
void beginJob() override
Read from DB and print survey info.
Definition: TrackerGeometryCompare.cc:204
cond::service::PoolDBOutputService::beginOfTime
cond::Time_t beginOfTime() const
Definition: PoolDBOutputService.cc:215
TrackerGeometryCompare::inputRootFile1_
TFile * inputRootFile1_
Definition: TrackerGeometryCompare.h:135
PTrackerParameters
Definition: PTrackerParameters.h:6
filterCSVwithJSON.copy
copy
Definition: filterCSVwithJSON.py:36
TrackerGeometryCompare::inputFilename1_
std::string inputFilename1_
Definition: TrackerGeometryCompare.h:107
TrackerGeometryCompare::inModuleList_
int inModuleList_
Definition: TrackerGeometryCompare.h:143
TrackerTopology::pxfSide
unsigned int pxfSide(const DetId &id) const
Definition: TrackerTopology.h:192
TrackerGeometryCompare::inputTree12_
TTree * inputTree12_
Definition: TrackerGeometryCompare.h:140
PV3DBase::x
T x() const
Definition: PV3DBase.h:59
TrackerGeometryCompare::cpvTokenDDD_
const edm::ESGetToken< DDCompactView, IdealGeometryRecord > cpvTokenDDD_
Definition: TrackerGeometryCompare.h:87
TrackerGeometryCompare::sublevel_
int sublevel_
Definition: TrackerGeometryCompare.h:143
TrackerGeometryCompare::dgammaVal_
float dgammaVal_
Definition: TrackerGeometryCompare.h:146
TrackerGeomBuilderFromGeometricDet::build
TrackerGeometry * build(const GeometricDet *gd, const PTrackerAdditionalParametersPerDet *ptitp, const PTrackerParameters &ptp, const TrackerTopology *tTopo)
Definition: TrackerGeomBuilderFromGeometricDet.cc:44
TrackerTopology
Definition: TrackerTopology.h:16
SiStripQuality::IsModuleBad
bool IsModuleBad(const uint32_t &detid) const
Definition: SiStripQuality.cc:558
TrackerGeometryCompare::id_
int id_
Definition: TrackerGeometryCompare.h:143
TrackerGeometryCompare::weightById_
bool weightById_
Definition: TrackerGeometryCompare.h:117
TrackerGeometryCompare::detIdFlagFile_
std::string detIdFlagFile_
Definition: TrackerGeometryCompare.h:116
TrackerTopology::pxbLadder
unsigned int pxbLadder(const DetId &id) const
Definition: TrackerTopology.h:155
Alignable
Definition: Alignable.h:27
hcal_runs.rt
rt
Definition: hcal_runs.py:76
pos
Definition: PixelAliasList.h:18
TrackerGeometryCompare::dvVal_
float dvVal_
Definition: TrackerGeometryCompare.h:148
PTrackerAdditionalParametersPerDet
Definition: PTrackerAdditionalParametersPerDet.h:9
TrackerGeometryCompare::etaVal_
float etaVal_
Definition: TrackerGeometryCompare.h:144
TrackerGeometryCompare::analyze
void analyze(const edm::Event &, const edm::EventSetup &) override
Definition: TrackerGeometryCompare.cc:224
AlignableTracker::innerBarrelGeomDets
Alignables & innerBarrelGeomDets()
Return inner barrel GeomDets.
Definition: AlignableTracker.h:55
Alignments.h
SurveyDet::position
const align::PositionType & position() const
Definition: SurveyDet.h:58
AlignableTracker::objectIdProvider
const AlignableObjectId & objectIdProvider() const
Return tracker alignable object ID provider derived from the tracker's geometry.
Definition: AlignableTracker.h:110
TrackerGeometryCompare::fillIdentifiers
void fillIdentifiers(int subdetlevel, int rawid, const TrackerTopology *tTopo)
Definition: TrackerGeometryCompare.cc:997
align::moveAlignable
void moveAlignable(Alignable *ali, AlgebraicVector diff)
Moves the alignable by the AlgebraicVector.
Definition: AlignTools.cc:84
DetectorGlobalPosition.h
TrackerGeometryCompare::inputRootFile2_
TFile * inputRootFile2_
Definition: TrackerGeometryCompare.h:136
TrackerGeometryCompare::currentTracker
AlignableTracker * currentTracker
Definition: TrackerGeometryCompare.h:98
TrackerGeometryCompare::weightBy_
std::string weightBy_
Definition: TrackerGeometryCompare.h:113
TFileDirectory
Definition: TFileDirectory.h:24
edm::LogInfo
Log< level::Info, false > LogInfo
Definition: MessageLogger.h:125
TrackerGeometryCompare::dalphaVal_
float dalphaVal_
Definition: TrackerGeometryCompare.h:146
TrackerGeometryCompare::dwVal_
float dwVal_
Definition: TrackerGeometryCompare.h:148
TrackerGeometryCompare::zVal_
float zVal_
Definition: TrackerGeometryCompare.h:144
AlignableSurface::length
align::Scalar length() const
Definition: AlignableSurface.h:32
TrackerGeometryCompare::m_rangeHigh_
double m_rangeHigh_
Definition: TrackerGeometryCompare.h:157
relativeConstraints.error
error
Definition: relativeConstraints.py:53
edm::Service::isAvailable
bool isAvailable() const
Definition: Service.h:40
SurfaceDeformation
Definition: SurfaceDeformation.h:18
GeometryAligner::applyAlignments
void applyAlignments(const C *geometry, const Alignments *alignments, const AlignmentErrorsExtended *alignmentErrors, const AlignTransform &globalCoordinates)
Definition: GeometryAligner.h:52
TrackerGeometryCompare::cpvTokenDD4Hep_
const edm::ESGetToken< cms::DDCompactView, IdealGeometryRecord > cpvTokenDD4Hep_
Definition: TrackerGeometryCompare.h:88
TrackerTopology::tidRing
unsigned int tidRing(const DetId &id) const
Definition: TrackerTopology.h:218
TrackerGeometryCompare::inputTreenameDeform_
std::string inputTreenameDeform_
Definition: TrackerGeometryCompare.h:110
AlignableTracker::pixelHalfBarrelGeomDets
Alignables & pixelHalfBarrelGeomDets()
Return pixel barrel GeomDets.
Definition: AlignableTracker.h:59
TrackerGeometryCompare::theSurveyErrors
const SurveyErrors * theSurveyErrors
Definition: TrackerGeometryCompare.h:102
TrackerGeometryCompare::passIdCut
bool passIdCut(uint32_t)
Definition: TrackerGeometryCompare.cc:985
TrackerTopology::tidWheel
unsigned int tidWheel(const DetId &id) const
Definition: TrackerTopology.h:201
TrackerAlignmentErrorExtendedRcd.h
TrackerTopology::pxbLayer
unsigned int pxbLayer(const DetId &id) const
Definition: TrackerTopology.h:144
PV3DBase::z
T z() const
Definition: PV3DBase.h:61
TrackerTopology::pxfPanel
unsigned int pxfPanel(const DetId &id) const
Definition: TrackerTopology.h:450
AlignableTracker::endcapGeomDets
Alignables & endcapGeomDets()
Return endcap GeomDets.
Definition: AlignableTracker.h:61
SurveyDet
Definition: SurveyDet.h:15
TrackerGeometryCompare::moduleListName_
std::string moduleListName_
Definition: TrackerGeometryCompare.h:106
DetId
Definition: DetId.h:17
TrackerTopology::tobRodInfo
std::vector< unsigned int > tobRodInfo(const DetId &id) const
Definition: TrackerTopology.h:226
TrackerGeometryCompare::surRot_
double surRot_[9]
Definition: TrackerGeometryCompare.h:151
TrackerGeometryCompare::duVal_
float duVal_
Definition: TrackerGeometryCompare.h:148
MakerMacros.h
TrackerTopology.h
Alignable::setSurvey
void setSurvey(const SurveyDet *)
Set survey info.
Definition: Alignable.cc:266
TrackerTopology::tibStringInfo
std::vector< unsigned int > tibStringInfo(const DetId &id) const
Definition: TrackerTopology.h:421
RPCNoise_example.check
check
Definition: RPCNoise_example.py:71
PoolDBOutputService.h
TrackerTopology::tidModuleInfo
std::vector< unsigned int > tidModuleInfo(const DetId &id) const
Definition: TrackerTopology.h:434
TrackerGeometryCompare::dphiVal_
float dphiVal_
Definition: TrackerGeometryCompare.h:146
TrackerTopologyRcd.h
TrackerGeometryCompare::commonTrackerLevel_
align::StructureType commonTrackerLevel_
Definition: TrackerGeometryCompare.h:122
TrackerGeometryCompare::TrackerCommonCM_
align::PositionType TrackerCommonCM_
Definition: TrackerGeometryCompare.h:125
DEFINE_FWK_MODULE
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
Abs
T Abs(T a)
Definition: MathUtil.h:49
AlgebraicVector
CLHEP::HepVector AlgebraicVector
Definition: AlgebraicObjects.h:13
groupFilesInBlocks.fin
fin
Definition: groupFilesInBlocks.py:94
SiPixelQualityRcd.h
AlignableTracker::alignmentErrors
AlignmentErrorsExtended * alignmentErrors() const override
Return alignment errors, sorted by DetId.
Definition: AlignableTracker.cc:59
Alignable::alignableObjectId
virtual StructureType alignableObjectId() const =0
Return the alignable type identifier.
Service.h
TrackerGeometryCompare::identifiers_
uint32_t identifiers_[6]
Definition: TrackerGeometryCompare.h:150
TrackerGeometryCompare::weightByIdFile_
std::string weightByIdFile_
Definition: TrackerGeometryCompare.h:118
TrackerGeometryCompare::daVal_
float daVal_
Definition: TrackerGeometryCompare.h:148
TrackerGeometryCompare::drVal_
float drVal_
Definition: TrackerGeometryCompare.h:146
TrackerGeometryCompare::yVal_
float yVal_
Definition: TrackerGeometryCompare.h:144
TrackerGeometryCompare::theSurveyIndex
unsigned int theSurveyIndex
Definition: TrackerGeometryCompare.h:100
TrackerGeometryCompare::referenceTracker
AlignableTracker * referenceTracker
Definition: TrackerGeometryCompare.h:96
TrackerGeometryCompare::m_rangeLow_
double m_rangeLow_
Definition: TrackerGeometryCompare.h:156
TrackerGeometryCompare::compareSurfaceDeformations
void compareSurfaceDeformations(TTree *_inputTree11, TTree *_inputTree12)
Definition: TrackerGeometryCompare.cc:451
TrackerGeometryCompare::endJob
void endJob() override
Definition: TrackerGeometryCompare.cc:206
AlignableTracker
Definition: AlignableTracker.h:17
GeometricDet
Definition: GeometricDet.h:31
HcalDetIdTransform::transform
unsigned transform(const HcalDetId &id, unsigned transformCode)
Definition: HcalDetIdTransform.cc:7
TrackerGeometryCompare::badModuleQuality_
int badModuleQuality_
Definition: TrackerGeometryCompare.h:143
TrackerGeometryCompare::createROOTGeometry
void createROOTGeometry(const edm::EventSetup &iSetup)
Definition: TrackerGeometryCompare.cc:273
Alignable::surface
const AlignableSurface & surface() const
Return the Surface (global position and orientation) of the object.
Definition: Alignable.h:132
dqmdumpme.k
k
Definition: dqmdumpme.py:60
Point3DBase< Scalar, GlobalTag >
TrackerGeometryCompare::xVal_
float xVal_
Definition: TrackerGeometryCompare.h:144
TrackerGeometryCompare::surfDeform_
double surfDeform_[13]
Definition: TrackerGeometryCompare.h:153
align::GlobalVector
Vector3DBase< Scalar, GlobalTag > GlobalVector
Definition: Definitions.h:31
TrackerGeometryCompare::compareGeometries
void compareGeometries(Alignable *refAli, Alignable *curAli, const TrackerTopology *tTopo, const edm::EventSetup &iSetup)
Definition: TrackerGeometryCompare.cc:603
SurveyDet::rotation
const align::RotationType & rotation() const
Definition: SurveyDet.h:60
DetId::subdetId
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum)
Definition: DetId.h:48
AlignTransform
Definition: AlignTransform.h:15
SurfaceDeformation.h
TrackerGeometryCompare::alignTree_
TTree * alignTree_
Definition: TrackerGeometryCompare.h:134
TrackerGeometryCompare::ptpToken_
const edm::ESGetToken< PTrackerParameters, PTrackerParametersRcd > ptpToken_
Definition: TrackerGeometryCompare.h:91
TFileService.h
TFileService::mkdir
TFileDirectory mkdir(const std::string &dir, const std::string &descr="")
create a new subdirectory
Definition: TFileService.h:69
funct::true
true
Definition: Factorize.h:173
TrackerGeometryCompare::addSurveyInfo
void addSurveyInfo(Alignable *ali)
Definition: TrackerGeometryCompare.cc:956
TrackerGeometryCompare::m_theLevels
std::vector< align::StructureType > m_theLevels
Definition: TrackerGeometryCompare.h:58
TrackerDigiGeometryRecord.h
align::AlignableDetUnit
Definition: StructureType.h:19
edm::ParameterSet
Definition: ParameterSet.h:47
SiPixelQuality
Definition: SiPixelQuality.h:27
TrackerGeometryCompare::TrackerCommonR_
align::GlobalVector TrackerCommonR_
Definition: TrackerGeometryCompare.h:124
TrackerSurveyRcd.h
TrackerGeometryCompare::dyVal_
float dyVal_
Definition: TrackerGeometryCompare.h:146
dqmiodatasetharvest.ctr
ctr
Definition: dqmiodatasetharvest.py:191
jetUpdater_cfi.sort
sort
Definition: jetUpdater_cfi.py:29
Alignable::id
align::ID id() const
Return the ID of Alignable, i.e. DetId of 'first' component GeomDet(Unit).
Definition: Alignable.h:180
TrackerGeometryCompare::inputFilename2_
std::string inputFilename2_
Definition: TrackerGeometryCompare.h:108
TrackerGeometryCompare::useDetId_
int useDetId_
Definition: TrackerGeometryCompare.h:143
TrackerGeometryCompare::alphaVal_
float alphaVal_
Definition: TrackerGeometryCompare.h:144
TrackerGeometryCompare::m_nBins_
int m_nBins_
Definition: TrackerGeometryCompare.h:155
Definitions.h
PV3DBase::eta
T eta() const
Definition: PV3DBase.h:73
PV3DBase::y
T y() const
Definition: PV3DBase.h:60
TrackerTopology::tibModule
unsigned int tibModule(const DetId &id) const
Definition: TrackerTopology.h:172
TrackerTopology::tidSide
unsigned int tidSide(const DetId &id) const
Definition: TrackerTopology.h:190
edm::Service< TFileService >
createfilelist.int
int
Definition: createfilelist.py:10
TrackerGeometryCompare::levelStrings_
const std::vector< std::string > levelStrings_
Definition: TrackerGeometryCompare.h:105
TrackerTopology::tecRing
unsigned int tecRing(const DetId &id) const
ring id
Definition: TrackerTopology.h:217
TrackerGeometryCompare::pixQualityToken_
const edm::ESGetToken< SiPixelQuality, SiPixelQualityRcd > pixQualityToken_
Definition: TrackerGeometryCompare.h:93
TrackerTopology::pxfModule
unsigned int pxfModule(const DetId &id) const
Definition: TrackerTopology.h:163
TrackerTopology::pxfDisk
unsigned int pxfDisk(const DetId &id) const
Definition: TrackerTopology.h:446
tolerance
const double tolerance
Definition: HGCalGeomParameters.cc:29
Alignable::geomDetId
const DetId & geomDetId() const
Definition: Alignable.h:177
trackerHitRTTI::vector
Definition: trackerHitRTTI.h:21
TrackerGeometryCompare::mlevel_
int mlevel_
Definition: TrackerGeometryCompare.h:143
Utilities.h
IdealGeometryRecord.h
TrackerAlignmentRcd.h
TrackerGeometryCompare::m_h1_
std::map< std::string, TH1D * > m_h1_
Definition: TrackerGeometryCompare.h:163
edm::EventSetup
Definition: EventSetup.h:58
TrackerGeometryCompare::moduleListFile_
std::ifstream moduleListFile_
Definition: TrackerGeometryCompare.h:127
TrackerGeometryCompare::detIdFlag_
bool detIdFlag_
Definition: TrackerGeometryCompare.h:115
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
GeometricDet.h
align::EulerAngles
AlgebraicVector EulerAngles
Definition: Definitions.h:34
AlignmentErrorsExtended
Definition: AlignmentErrorsExtended.h:10
edm::EventSetup::getTransientHandle
ESTransientHandle< T > getTransientHandle(const ESGetToken< T, R > &iToken) const
Definition: EventSetup.h:166
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
edm::ESTransientHandle
Definition: ESTransientHandle.h:41
TrackerGeometryCompare::geomDetToken_
const edm::ESGetToken< GeometricDet, IdealGeometryRecord > geomDetToken_
Definition: TrackerGeometryCompare.h:90
InputTag.h
TrackerGeometryCompare::diffCommonTrackerSystem
void diffCommonTrackerSystem(Alignable *refAli, Alignable *curAli)
Definition: TrackerGeometryCompare.cc:759
edm::EventSetup::getData
bool getData(T &iHolder) const
Definition: EventSetup.h:127
looper.cfg
cfg
Definition: looper.py:296
TrackerGeometryCompare::theSurveyValues
const Alignments * theSurveyValues
Definition: TrackerGeometryCompare.h:101
AlignableSurface::setWidth
void setWidth(align::Scalar width)
Definition: AlignableSurface.h:34
SurfaceDeformationFactory.h
AlignableObjectId.h
align::AlignableDet
Definition: StructureType.h:20
PV3DBase::mag
T mag() const
Definition: PV3DBase.h:64
TrackerGeometryCompare::surWidth_
float surWidth_
Definition: TrackerGeometryCompare.h:149
align::Alignables
std::vector< Alignable * > Alignables
Definition: Utilities.h:31
TrackerTopology::tobLayer
unsigned int tobLayer(const DetId &id) const
Definition: TrackerTopology.h:147
std
Definition: JetResolutionObject.h:76
DetId::rawId
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
TrackerGeometryCompare::topoToken_
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > topoToken_
Definition: TrackerGeometryCompare.h:89
TrackerTopology::tobModule
unsigned int tobModule(const DetId &id) const
Definition: TrackerTopology.h:166
AlignableTracker::alignments
Alignments * alignments() const override
Return alignments, sorted by DetId.
Definition: AlignableTracker.cc:42
TrackerGeometryCompare::mid_
int mid_
Definition: TrackerGeometryCompare.h:143
GeometryAligner.h
TrackerTopology::pxbModule
unsigned int pxbModule(const DetId &id) const
Definition: TrackerTopology.h:160
AlignableSurface
Definition: AlignableSurface.h:20
DetId.h
triggerObjects_cff.id
id
Definition: triggerObjects_cff.py:29
AlignmentSurfaceDeformations.h
AlignableSurface::width
align::Scalar width() const
Definition: AlignableSurface.h:30
TrackerGeometryCompare::stripQualityToken_
const edm::ESGetToken< SiStripQuality, SiStripQualityRcd > stripQualityToken_
Definition: TrackerGeometryCompare.h:94
Alignable::deepComponents
const Alignables & deepComponents() const
Definition: Alignable.h:72
Exception
Definition: hltDiff.cc:245
cond::service::PoolDBOutputService::writeOne
Hash writeOne(const T *payload, Time_t time, const std::string &recordName)
Definition: PoolDBOutputService.h:63
SiStripQuality.h
TrackerGeometryCompare::detDim_
int detDim_
Definition: TrackerGeometryCompare.h:143
TFileDirectory::make
T * make(const Args &...args) const
make new ROOT object
Definition: TFileDirectory.h:53
AlignableSurface::setLength
void setLength(align::Scalar length)
Definition: AlignableSurface.h:36
makeMuonMisalignmentScenario.rot
rot
Definition: makeMuonMisalignmentScenario.py:322
SiStripQualityRcd.h
Alignable.h
TrackerGeometryCompare::rVal_
float rVal_
Definition: TrackerGeometryCompare.h:144
TrackerGeometryCompare::dgVal_
float dgVal_
Definition: TrackerGeometryCompare.h:148
TrackerGeometryCompare::writeToDB_
bool writeToDB_
Definition: TrackerGeometryCompare.h:112
AlignableObjectId::stringToId
align::StructureType stringToId(const char *) const
Definition: AlignableObjectId.cc:284
TrackerGeometryCompare::dzVal_
float dzVal_
Definition: TrackerGeometryCompare.h:146
AlignTransformErrorExtended
Definition: AlignTransformErrorExtended.h:13
EventSetup.h
TrackerGeometryCompare::weightByIdVector_
std::vector< unsigned int > weightByIdVector_
Definition: TrackerGeometryCompare.h:119
TrackerGeometryCompare::level_
int level_
Definition: TrackerGeometryCompare.h:143
align::toMatrix
RotationType toMatrix(const EulerAngles &)
Convert rotation angles about x-, y-, z-axes to matrix.
Definition: Utilities.cc:34
AlignableTracker::TIDGeomDets
Alignables & TIDGeomDets()
Return TID GeomDets.
Definition: AlignableTracker.h:63
TrackerGeometryCompare::moduleList_
std::vector< int > moduleList_
Definition: TrackerGeometryCompare.h:128
TrackerTopology::tecModule
unsigned int tecModule(const DetId &id) const
Definition: TrackerTopology.h:169
TrackerGeometryCompare::ptitpToken_
const edm::ESGetToken< PTrackerAdditionalParametersPerDet, PTrackerAdditionalParametersPerDetRcd > ptitpToken_
Definition: TrackerGeometryCompare.h:92
TrackerGeometryCompare::type_
int type_
Definition: TrackerGeometryCompare.h:152
TrackerGeometryCompare::dbVal_
float dbVal_
Definition: TrackerGeometryCompare.h:148
SiPixelQuality.h
SurveyError
Definition: SurveyError.h:23
TrackerGeomBuilderFromGeometricDet.h
TrackerGeomBuilderFromGeometricDet
Definition: TrackerGeomBuilderFromGeometricDet.h:18
Alignments::m_align
std::vector< AlignTransform > m_align
Definition: Alignments.h:19
align::diffAlignables
AlgebraicVector diffAlignables(Alignable *refAli, Alignable *curAli, const std::string &weightBy, bool weightById, const std::vector< unsigned int > &weightByIdVector)
Definition: AlignTools.cc:10
AlignmentErrorsExtended::m_alignError
std::vector< AlignTransformErrorExtended > m_alignError
Definition: AlignmentErrorsExtended.h:19
TrackerTopology::pxfBlade
unsigned int pxfBlade(const DetId &id) const
Definition: TrackerTopology.h:447
TrackerTopology::tecPetalInfo
std::vector< unsigned int > tecPetalInfo(const DetId &id) const
Definition: TrackerTopology.h:407
cms::Exception
Definition: Exception.h:70
TrackerGeometryCompare::m_vtkmap_
std::vector< TrackerMap > m_vtkmap_
Definition: TrackerGeometryCompare.h:161
HGC3DClusterGenMatchSelector_cfi.dR
dR
Definition: HGC3DClusterGenMatchSelector_cfi.py:7
TrackerSurveyErrorExtendedRcd.h
SurveyDet.h
TrackerGeometryCompare::gammaVal_
float gammaVal_
Definition: TrackerGeometryCompare.h:144
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
Alignable::globalPosition
const PositionType & globalPosition() const
Return the global position of the object.
Definition: Alignable.h:135
TrackerGeometryCompare::firstEvent_
bool firstEvent_
Definition: TrackerGeometryCompare.h:159
DeDxTools::esConsumes
ESGetTokenH3DDVariant esConsumes(std::string const &Reccord, edm::ConsumesCollector &)
Definition: DeDxTools.cc:283
TrackerGeometryCompare::inputTree11_
TTree * inputTree11_
Definition: TrackerGeometryCompare.h:139
SurveyErrors::m_surveyErrors
std::vector< SurveyError > m_surveyErrors
Definition: SurveyErrors.h:22
edm::Event
Definition: Event.h:73
TrackerGeometryCompare::surLength_
float surLength_
Definition: TrackerGeometryCompare.h:149
mps_splice.line
line
Definition: mps_splice.py:76
Alignable::components
virtual const Alignables & components() const =0
Return vector of all direct components.
TrackerTopology::tecWheel
unsigned int tecWheel(const DetId &id) const
Definition: TrackerTopology.h:198
Alignments
Definition: Alignments.h:10
PV3DBase::perp
T perp() const
Definition: PV3DBase.h:69
cuy.ii
ii
Definition: cuy.py:589
TrackerGeometryCompare::dxVal_
float dxVal_
Definition: TrackerGeometryCompare.h:146
PV3DBase::phi
Geom::Phi< T > phi() const
Definition: PV3DBase.h:66
Basic3DVector< Scalar >
TrackerGeometryCompare::inputTree02_
TTree * inputTree02_
Definition: TrackerGeometryCompare.h:138
Alignable::globalRotation
const RotationType & globalRotation() const
Return the global orientation of the object.
Definition: Alignable.h:138
g
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e g
Definition: Activities.doc:4
TrackerGeometryCompare::inputTree01_
TTree * inputTree01_
Definition: TrackerGeometryCompare.h:137
AlignableTracker::pixelEndcapGeomDets
Alignables & pixelEndcapGeomDets()
Return pixel endcap GeomDets.
Definition: AlignableTracker.h:65
GeometryAligner
Class to update a given geometry with a set of alignments.
Definition: GeometryAligner.h:33
SurfaceDeformationFactory::create
SurfaceDeformation * create(int type, const std::vector< double > &params)
Definition: SurfaceDeformationFactory.cc:40
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37
TrackerTopology::tibLayer
unsigned int tibLayer(const DetId &id) const
Definition: TrackerTopology.h:150
Alignable::mother
Alignable * mother() const
Return pointer to container alignable (if any)
Definition: Alignable.h:91
TrackerGeometryCompare::TrackerGeometryCompare
TrackerGeometryCompare(const edm::ParameterSet &)
Do nothing. Required by framework.
Definition: TrackerGeometryCompare.cc:55
TrackerGeometry
Definition: TrackerGeometry.h:14
SiStripQuality
Definition: SiStripQuality.h:32
TrackerGeometryCompare::fromDD4hep_
bool fromDD4hep_
Definition: TrackerGeometryCompare.h:111
TrackerTopology::tecSide
unsigned int tecSide(const DetId &id) const
Definition: TrackerTopology.h:184
TrackerGeometryCompare::phiVal_
float phiVal_
Definition: TrackerGeometryCompare.h:144