CMS 3D CMS Logo

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