CMS 3D CMS Logo

FWGeometry.cc
Go to the documentation of this file.
1 #include "TFile.h"
2 #include "TTree.h"
3 #include "TEveGeoNode.h"
4 #include "TPRegexp.h"
5 #include "TSystem.h"
6 #include "TGeoArb8.h"
7 #include "TObjArray.h"
8 #include "TObjString.h"
9 #include "TPRegexp.h"
10 
14 
15 // AMT deprication of tracker specific DetIds
17 
18 #include <iostream>
19 #include <cassert>
20 #include <sstream>
21 #include <stdexcept>
22 #include <algorithm>
23 
24 FWGeometry::FWGeometry(void) : m_producerVersion(0) {}
25 
27 
28 bool FWGeometry::isEmpty() const {
29  // AMT this is a check if geomtery is not loaded
30  // e.g. cmsShow starts with no data file and without given explicit argument ( --geometry-file option )
31 
32  return m_idToInfo.empty();
33 }
34 
35 TFile* FWGeometry::findFile(const char* fileName) {
36  std::string searchPath = ".";
37 
38  if (gSystem->Getenv("CMSSW_SEARCH_PATH")) {
39  TString paths = gSystem->Getenv("CMSSW_SEARCH_PATH");
40 
41  TObjArray* tokens = paths.Tokenize(":");
42  for (int i = 0; i < tokens->GetEntries(); ++i) {
43  TObjString* path = (TObjString*)tokens->At(i);
44  searchPath += ":";
45  searchPath += static_cast<const char*>(path->GetString());
46  if (gSystem->Getenv("CMSSW_VERSION"))
47  searchPath += "/Fireworks/Geometry/data/";
48  }
49  }
50 
51  TString fn = fileName;
52  const char* fp = gSystem->FindFile(searchPath.c_str(), fn, kFileExists);
53  return fp ? TFile::Open(fp) : nullptr;
54 }
55 
57  const std::string fnRun2 = "cmsGeomRun2.root";
58  const std::string fnRun3 = "cmsGeom2021.root";
59  const std::string fnSLHC = "cmsGeom2026.root";
60 
61  TPMERegexp year_re("^[^_]+_[a-zA-Z]*20(\\d\\d)_");
62  TPMERegexp run_re("^[^_]+_[a-zA-Z]*Run(\\d)_");
63 
64  TString test = globalTag.c_str();
65  std::string cfn;
66  if (year_re.Match(test)) {
67  TString r = year_re[1];
68  int year = atoi(r.Data());
69  if (year < 18) {
70  cfn = fnRun2;
71  } else if (year < 21) {
72  cfn = fnRun3;
73  } else {
74  cfn = fnSLHC;
75  }
76  } else if (run_re.Match(test)) {
77  TString rn = run_re[1];
78  if (rn == "1") {
79  fwLog(fwlog::kWarning) << "Run1 geometry not included. Using Run2 geometry." << std::endl;
80  cfn = fnRun2;
81  } else if (rn == "2") {
82  cfn = fnRun2;
83  } else if (rn == "4") {
84  cfn = fnSLHC;
85  } else {
86  fwLog(fwlog::kWarning) << "Detected Run" << rn << ". Using geometry scenario 2021.\n";
87  cfn = fnRun3;
88  }
89  } else {
90  fwLog(fwlog::kWarning) << "Could not guess geometry from global tag. Using geometry scenario 2021.\n";
91  cfn = fnRun3;
92  }
93 
94  fwLog(fwlog::kInfo) << "Guessed geometry " << cfn << " from global tag " << globalTag << std::endl;
95  if (cfn.compare(m_fileName)) {
96  loadMap(cfn.c_str());
97  }
98 }
99 
100 void FWGeometry::loadMap(const char* iFileName) {
101  TFile* file = findFile(iFileName);
102  if (!file) {
103  throw std::runtime_error("ERROR: failed to find geometry file. Initialization failed.");
104  return;
105  }
106  m_fileName = iFileName;
107  TTree* tree = static_cast<TTree*>(file->Get("idToGeo"));
108  if (!tree) {
109  throw std::runtime_error("ERROR: cannot find detector id map in the file. Initialization failed.");
110  return;
111  }
112 
113  unsigned int id;
114  Float_t points[24];
115  Float_t topology[9];
116  Float_t shape[5];
117  Float_t translation[3];
118  Float_t matrix[9];
119  bool loadPoints = tree->GetBranch("points") != nullptr;
120  bool loadParameters = tree->GetBranch("topology") != nullptr;
121  bool loadShape = tree->GetBranch("shape") != nullptr;
122  bool loadTranslation = tree->GetBranch("translation") != nullptr;
123  bool loadMatrix = tree->GetBranch("matrix") != nullptr;
124  tree->SetBranchAddress("id", &id);
125  if (loadPoints)
126  tree->SetBranchAddress("points", &points);
127  if (loadParameters)
128  tree->SetBranchAddress("topology", &topology);
129  if (loadShape)
130  tree->SetBranchAddress("shape", &shape);
131  if (loadTranslation)
132  tree->SetBranchAddress("translation", &translation);
133  if (loadMatrix)
134  tree->SetBranchAddress("matrix", &matrix);
135 
136  // reset previous values
137  m_idToInfo.clear();
138  for (const auto& p : m_idToMatrix)
139  delete p.second;
140  m_trackerTopology.reset();
141 
142  unsigned int treeSize = tree->GetEntries();
143  if (m_idToInfo.size() != treeSize)
144  m_idToInfo.resize(treeSize);
145  for (unsigned int i = 0; i < treeSize; ++i) {
146  tree->GetEntry(i);
147 
148  m_idToInfo[i].id = id;
149  if (loadPoints) {
150  for (unsigned int j = 0; j < 24; ++j)
151  m_idToInfo[i].points[j] = points[j];
152  }
153  if (loadParameters) {
154  for (unsigned int j = 0; j < 9; ++j)
156  }
157  if (loadShape) {
158  for (unsigned int j = 0; j < 5; ++j)
159  m_idToInfo[i].shape[j] = shape[j];
160  }
161  if (loadTranslation) {
162  for (unsigned int j = 0; j < 3; ++j)
163  m_idToInfo[i].translation[j] = translation[j];
164  }
165  if (loadMatrix) {
166  for (unsigned int j = 0; j < 9; ++j)
167  m_idToInfo[i].matrix[j] = matrix[j];
168  }
169  }
170 
171  m_versionInfo.productionTag = static_cast<TNamed*>(file->Get("tag"));
172  m_versionInfo.cmsswVersion = static_cast<TNamed*>(file->Get("CMSSW_VERSION"));
173  m_versionInfo.extraDetectors = static_cast<TObjArray*>(file->Get("ExtraDetectors"));
174 
175  TString path = file->GetPath();
176  if (path.EndsWith(":/"))
177  path.Resize(path.Length() - 2);
178 
180  fwLog(fwlog::kInfo) << Form(
181  "Load %s %s from %s\n", tree->GetName(), m_versionInfo.productionTag->GetTitle(), path.Data());
182  else
183  fwLog(fwlog::kInfo) << Form("Load %s from %s\n", tree->GetName(), path.Data());
184 
185  TNamed* producerInfo = static_cast<TNamed*>(file->Get("PRODUCER_VERSION"));
186  if (producerInfo) {
187  m_producerVersion = atoi(producerInfo->GetTitle());
188  }
189 
190  TNamed* ttopology = static_cast<TNamed*>(file->Get("TrackerTopology"));
191  if (ttopology) {
192  std::string xml = ttopology->GetTitle();
193  m_trackerTopology = std::unique_ptr<TrackerTopology>(
195  }
196 
197  file->Close();
198 }
199 
201  FWRecoGeom::InfoMapItr begin = map.begin();
203  unsigned int mapSize = map.size();
204  if (m_idToInfo.size() != mapSize)
205  m_idToInfo.resize(mapSize);
206  unsigned int i = 0;
207  for (FWRecoGeom::InfoMapItr it = begin; it != end; ++it, ++i) {
208  m_idToInfo[i].id = it->id;
209  for (unsigned int j = 0; j < 24; ++j)
210  m_idToInfo[i].points[j] = it->points[j];
211  for (unsigned int j = 0; j < 9; ++j)
212  m_idToInfo[i].parameters[j] = it->topology[j];
213  for (unsigned int j = 0; j < 5; ++j)
214  m_idToInfo[i].shape[j] = it->shape[j];
215  for (unsigned int j = 0; j < 3; ++j)
216  m_idToInfo[i].translation[j] = it->translation[j];
217  for (unsigned int j = 0; j < 9; ++j)
218  m_idToInfo[i].matrix[j] = it->matrix[j];
219  }
220 }
221 
222 const TGeoMatrix* FWGeometry::getMatrix(unsigned int id) const {
223  std::map<unsigned int, TGeoMatrix*>::iterator mit = m_idToMatrix.find(id);
224  if (mit != m_idToMatrix.end())
225  return mit->second;
226 
227  IdToInfoItr it = FWGeometry::find(id);
228  if (it == m_idToInfo.end()) {
229  fwLog(fwlog::kWarning) << "no reco geometry found for id " << id << std::endl;
230  return nullptr;
231  } else {
232  const GeomDetInfo& info = *it;
233  TGeoTranslation trans(info.translation[0], info.translation[1], info.translation[2]);
234  TGeoRotation rotation;
235  const Double_t matrix[9] = {info.matrix[0],
236  info.matrix[1],
237  info.matrix[2],
238  info.matrix[3],
239  info.matrix[4],
240  info.matrix[5],
241  info.matrix[6],
242  info.matrix[7],
243  info.matrix[8]};
244  rotation.SetMatrix(matrix);
245 
246  m_idToMatrix[id] = new TGeoCombiTrans(trans, rotation);
247  return m_idToMatrix[id];
248  }
249 }
250 
251 std::vector<unsigned int> FWGeometry::getMatchedIds(Detector det, SubDetector subdet) const {
252  std::vector<unsigned int> ids;
253  unsigned int mask = (det << 4) | (subdet);
254  for (IdToInfoItr it = m_idToInfo.begin(), itEnd = m_idToInfo.end(); it != itEnd; ++it) {
255  if (FWGeometry::match_id(*it, mask))
256  ids.push_back((*it).id);
257  }
258 
259  return ids;
260 }
261 
262 std::vector<unsigned int> FWGeometry::getMatchedIds(Detector det) const {
263  std::vector<unsigned int> ids;
264 
265  for (const auto& it : m_idToInfo) {
266  if (((it.id >> kDetOffset) & 0xF) != det)
267  continue;
268  // select only the 1st layer
269  // if(((it->id>>17)&0x1F) != 12) continue;
270 
271  // select only the first cell of each wafer
272  if (det != HGCalHSc) {
273  bool flag(false);
274 
275  for (const auto& id_it : ids) {
276  flag = (~0x3FF & it.id) == (~0x3FF & id_it);
277  if (flag)
278  break;
279  }
280 
281  if (flag)
282  continue;
283  }
284 
285  ids.push_back(it.id);
286  }
287  return ids;
288 }
289 
290 TGeoShape* FWGeometry::getShape(unsigned int id) const {
291  IdToInfoItr it = FWGeometry::find(id);
292  if (it == m_idToInfo.end()) {
293  fwLog(fwlog::kWarning) << "no reco geoemtry found for id " << id << std::endl;
294  return nullptr;
295  } else {
296  return getShape(*it);
297  }
298 }
299 
300 TGeoShape* FWGeometry::getShape(const GeomDetInfo& info) const {
301  TEveGeoManagerHolder gmgr(TEveGeoShape::GetGeoMangeur());
302  TGeoShape* geoShape = nullptr;
303  if (info.shape[0] == 1) {
304  geoShape = new TGeoTrap(info.shape[3], //dz
305  0, //theta
306  0, //phi
307  info.shape[4], //dy1
308  info.shape[1], //dx1
309  info.shape[2], //dx2
310  0, //alpha1
311  info.shape[4], //dy2
312  info.shape[1], //dx3
313  info.shape[2], //dx4
314  0); //alpha2
315  } else
316  geoShape = new TGeoBBox(info.shape[1], info.shape[2], info.shape[3]);
317 
318  return geoShape;
319 }
320 
321 TEveGeoShape* FWGeometry::getEveShape(unsigned int id) const {
322  IdToInfoItr it = FWGeometry::find(id);
323  if (it == m_idToInfo.end()) {
324  fwLog(fwlog::kWarning) << "no reco geoemtry found for id " << id << std::endl;
325  return nullptr;
326  } else {
327  const GeomDetInfo& info = *it;
328  double array[16] = {info.matrix[0],
329  info.matrix[3],
330  info.matrix[6],
331  0.,
332  info.matrix[1],
333  info.matrix[4],
334  info.matrix[7],
335  0.,
336  info.matrix[2],
337  info.matrix[5],
338  info.matrix[8],
339  0.,
340  info.translation[0],
341  info.translation[1],
342  info.translation[2],
343  1.};
344  TEveGeoManagerHolder gmgr(TEveGeoShape::GetGeoMangeur());
345  TEveGeoShape* shape = new TEveGeoShape(TString::Format("RecoGeom Id=%u", id));
346  TGeoShape* geoShape = getShape(info);
347  shape->SetShape(geoShape);
348  // Set transformation matrix from a column-major array
349  shape->SetTransMatrix(array);
350  return shape;
351  }
352 }
353 
354 TEveGeoShape* FWGeometry::getHGCSiliconEveShape(unsigned int id) const {
355 #if 0
356  const unsigned int type = (id>>26)&0x3;
357  // select the middle cell of each waifer
358  id &= ~0x3FF;
359  id |= (type == 0) ? 0x16B : 0xE7;
360 #else
361  float sideToSideWaferSize = 16.7441f;
362  float dx = sideToSideWaferSize / 2;
363  float sidey = dx / sqrt(3);
364  float dy = 2 * sidey;
365 
366  int waferUint = (id >> 10) & 0xF;
367  int waferVint = (id >> 15) & 0xF;
368  float waferU = ((id >> 14) & 0x1) ? -sideToSideWaferSize * waferUint : sideToSideWaferSize * waferUint;
369  float waferV = ((id >> 19) & 0x1) ? -sideToSideWaferSize * waferVint : sideToSideWaferSize * waferVint;
370 
371  float waferX = (-2 * waferU + waferV) / 2;
372  float waferY = waferV * sqrt(3) / 2;
373 #endif
374  IdToInfoItr it = FWGeometry::find(id);
375  if (it == m_idToInfo.end()) {
376  fwLog(fwlog::kWarning) << "no reco geometry found for id " << id << std::endl;
377  return nullptr;
378  }
379 
380  GeomDetInfo info = *it;
381 
382  TEveGeoManagerHolder gmgr(TEveGeoShape::GetGeoMangeur());
383  TEveGeoShape* shape = new TEveGeoShape(TString::Format("RecoGeom Id=%u", id));
384 
385  float dz = fabs(info.points[14] - info.points[2]) * 0.5;
386 
387  info.translation[2] = (info.points[14] + info.points[2]) / 2.0f;
388  info.translation[0] = waferX * ((0 < info.translation[2]) - (info.translation[2] < 0));
389  info.translation[1] = waferY;
390 
391  TGeoXtru* geoShape = new TGeoXtru(2);
392  Double_t x[6] = {-dx, -dx, 0.0, dx, dx, 0.0};
393  Double_t y[6] = {-sidey, sidey, dy, sidey, -sidey, -dy};
394  geoShape->DefinePolygon(6, x, y);
395  geoShape->DefineSection(0, -dz);
396  geoShape->DefineSection(1, dz);
397 
398  shape->SetShape(geoShape);
399  double array[16] = {info.matrix[0],
400  info.matrix[3],
401  info.matrix[6],
402  0.,
403  info.matrix[1],
404  info.matrix[4],
405  info.matrix[7],
406  0.,
407  info.matrix[2],
408  info.matrix[5],
409  info.matrix[8],
410  0.,
411  info.translation[0],
412  info.translation[1],
413  info.translation[2],
414  1.};
415  // Set transformation matrix from a column-major array
416  shape->SetTransMatrix(array);
417  return shape;
418 }
419 
420 TEveGeoShape* FWGeometry::getHGCScintillatorEveShape(unsigned int id) const {
421  IdToInfoItr it = FWGeometry::find(id);
422  if (it == m_idToInfo.end()) {
423  fwLog(fwlog::kWarning) << "no reco geometry found for id " << id << std::endl;
424  return nullptr;
425  }
426 
427  GeomDetInfo info = *it;
428 
429  TEveGeoManagerHolder gmgr(TEveGeoShape::GetGeoMangeur());
430  TEveGeoShape* shape = new TEveGeoShape(TString::Format("RecoGeom Id=%u", id));
431 
432  TGeoXtru* geoShape = new TGeoXtru(2);
433  Double_t x[4] = {info.points[0], info.points[3], info.points[6], info.points[9]};
434  Double_t y[4] = {info.points[1], info.points[4], info.points[7], info.points[10]};
435 
436  bool isNeg = info.shape[3] < 0;
437  geoShape->DefinePolygon(4, x, y);
438  geoShape->DefineSection(0, isNeg * info.shape[3]);
439  geoShape->DefineSection(1, !isNeg * info.shape[3]);
440  info.translation[2] = info.points[2];
441 
442  shape->SetShape(geoShape);
443  double array[16] = {info.matrix[0],
444  info.matrix[3],
445  info.matrix[6],
446  0.,
447  info.matrix[1],
448  info.matrix[4],
449  info.matrix[7],
450  0.,
451  info.matrix[2],
452  info.matrix[5],
453  info.matrix[8],
454  0.,
455  info.translation[0],
456  info.translation[1],
457  info.translation[2],
458  1.};
459  // Set transformation matrix from a column-major array
460  shape->SetTransMatrix(array);
461  return shape;
462 }
463 
464 const float* FWGeometry::getCorners(unsigned int id) const {
465  // reco geometry points
466  IdToInfoItr it = FWGeometry::find(id);
467  if (it == m_idToInfo.end()) {
468  fwLog(fwlog::kWarning) << "no reco geometry found for id " << id << std::endl;
469  return nullptr;
470  } else {
471  return (*it).points;
472  }
473 }
474 
475 const float* FWGeometry::getParameters(unsigned int id) const {
476  // reco geometry parameters
477  IdToInfoItr it = FWGeometry::find(id);
478  if (it == m_idToInfo.end()) {
479  fwLog(fwlog::kWarning) << "no reco geometry found for id " << id << std::endl;
480  return nullptr;
481  } else {
482  return (*it).parameters;
483  }
484 }
485 
486 const float* FWGeometry::getShapePars(unsigned int id) const {
487  // reco geometry parameters
488  IdToInfoItr it = FWGeometry::find(id);
489  if (it == m_idToInfo.end()) {
490  fwLog(fwlog::kWarning) << "no reco geometry found for id " << id << std::endl;
491  return nullptr;
492  } else {
493  return (*it).shape;
494  }
495 }
496 
497 void FWGeometry::localToGlobal(unsigned int id, const float* local, float* global, bool translatep) const {
498  IdToInfoItr it = FWGeometry::find(id);
499  if (it == m_idToInfo.end()) {
500  fwLog(fwlog::kWarning) << "no reco geometry found for id " << id << std::endl;
501  } else {
502  localToGlobal(*it, local, global, translatep);
503  }
504 }
505 
507  unsigned int id, const float* local1, float* global1, const float* local2, float* global2, bool translatep) const {
508  IdToInfoItr it = FWGeometry::find(id);
509  if (it == m_idToInfo.end()) {
510  fwLog(fwlog::kWarning) << "no reco geometry found for id " << id << std::endl;
511  } else {
512  localToGlobal(*it, local1, global1, translatep);
513  localToGlobal(*it, local2, global2, translatep);
514  }
515 }
516 
520  return std::lower_bound(begin, end, id);
521 }
522 
523 void FWGeometry::localToGlobal(const GeomDetInfo& info, const float* local, float* global, bool translatep) const {
524  for (int i = 0; i < 3; ++i) {
525  global[i] = translatep ? info.translation[i] : 0;
526  global[i] += local[0] * info.matrix[3 * i] + local[1] * info.matrix[3 * i + 1] + local[2] * info.matrix[3 * i + 2];
527  }
528 }
529 
530 //______________________________________________________________________________
531 
532 bool FWGeometry::VersionInfo::haveExtraDet(const char* det) const {
533  return (extraDetectors && extraDetectors->FindObject(det)) ? true : false;
534 }
HLT_2018_cff.points
points
Definition: HLT_2018_cff.py:20125
FWGeometry::getHGCScintillatorEveShape
TEveGeoShape * getHGCScintillatorEveShape(unsigned int id) const
Definition: FWGeometry.cc:420
FWGeometry::GeomDetInfo
Definition: FWGeometry.h:119
DDAxes::y
fwLog
#define fwLog(_level_)
Definition: fwLog.h:45
mps_fire.i
i
Definition: mps_fire.py:355
FWGeometry::getCorners
const float * getCorners(unsigned int id) const
Definition: FWGeometry.cc:464
FWGeometry::match_id
bool match_id(const GeomDetInfo &o, unsigned int mask) const
Definition: FWGeometry.h:131
makeMuonMisalignmentScenario.matrix
list matrix
Definition: makeMuonMisalignmentScenario.py:141
FWGeometry::loadMap
void loadMap(const char *fileName)
Definition: FWGeometry.cc:100
f
double f[11][100]
Definition: MuScleFitUtils.cc:78
FWGeometry::VersionInfo::productionTag
TNamed * productionTag
Definition: FWGeometry.h:68
TrackerTopology
Definition: TrackerTopology.h:16
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
tree
Definition: tree.py:1
FWGeometry::localToGlobal
void localToGlobal(unsigned int id, const float *local, float *global, bool translatep=true) const
Definition: FWGeometry.cc:497
FWGeometry::IdToInfoItr
std::vector< FWGeometry::GeomDetInfo >::const_iterator IdToInfoItr
Definition: FWGeometry.h:137
FWGeometry::getShapePars
const float * getShapePars(unsigned int id) const
Definition: FWGeometry.cc:486
FWGeometry::applyGlobalTag
void applyGlobalTag(const std::string &gt)
Definition: FWGeometry.cc:56
info
static const TGPicture * info(bool iBackgroundIsBlack)
Definition: FWCollectionSummaryWidget.cc:152
personalPlayback.fp
fp
Definition: personalPlayback.py:523
mps_check.array
array
Definition: mps_check.py:216
DDAxes::x
MillePedeFileConverter_cfg.fileName
fileName
Definition: MillePedeFileConverter_cfg.py:32
FWGeometry::getHGCSiliconEveShape
TEveGeoShape * getHGCSiliconEveShape(unsigned int id) const
Definition: FWGeometry.cc:354
FWGeometry::m_versionInfo
VersionInfo m_versionInfo
Definition: FWGeometry.h:169
end
#define end
Definition: vmac.h:39
parameters
parameters
Definition: BeamSpot_PayloadInspector.cc:14
FWGeometry::kDetOffset
static const int kDetOffset
Definition: FWGeometry.h:29
StandaloneTrackerTopology::fromTrackerParametersXMLString
TrackerTopology fromTrackerParametersXMLString(const std::string &xmlContent)
Definition: StandaloneTrackerTopology.cc:180
FWGeometry::getParameters
const float * getParameters(unsigned int id) const
Definition: FWGeometry.cc:475
testProducerWithPsetDescEmpty_cfi.x1
x1
Definition: testProducerWithPsetDescEmpty_cfi.py:33
FWGeometry::getMatrix
const TGeoMatrix * getMatrix(unsigned int id) const
Definition: FWGeometry.cc:222
test
Definition: SmallWORMDict.h:13
StandaloneTrackerTopology.h
ecaldqm::topology
const CaloTopology * topology(nullptr)
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
FWGeometry::FWGeometry
FWGeometry(void)
Definition: FWGeometry.cc:24
FWGeometry::VersionInfo::haveExtraDet
bool haveExtraDet(const char *) const
Definition: FWGeometry.cc:532
cuda_std::lower_bound
__host__ constexpr __device__ RandomIt lower_bound(RandomIt first, RandomIt last, const T &value, Compare comp={})
Definition: cudastdAlgorithm.h:27
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
FWGeometry::isEmpty
bool isEmpty() const
Definition: FWGeometry.cc:28
FWGeometry.h
idealTransformation.rotation
dictionary rotation
Definition: idealTransformation.py:1
FWGeometry::VersionInfo::extraDetectors
TObjArray * extraDetectors
Definition: FWGeometry.h:70
FrontierConditions_GlobalTag_cff.file
file
Definition: FrontierConditions_GlobalTag_cff.py:13
FWGeometry::m_idToInfo
IdToInfo m_idToInfo
Definition: FWGeometry.h:165
FWGeometry::m_producerVersion
int m_producerVersion
Definition: FWGeometry.h:171
fwlog::kWarning
Definition: fwLog.h:35
PVValHelper::dy
Definition: PVValidationHelpers.h:49
FWGeometry::Detector
Detector
Definition: FWGeometry.h:32
FWGeometry::initMap
void initMap(const FWRecoGeom::InfoMap &map)
Definition: FWGeometry.cc:200
fwLog.h
FWGeometry::m_trackerTopology
std::unique_ptr< TrackerTopology > m_trackerTopology
Definition: FWGeometry.h:175
FWRecoGeom::InfoMapItr
std::vector< FWRecoGeom::Info >::const_iterator InfoMapItr
Definition: FWRecoGeom.h:24
cms::cuda::for
for(int i=first, nt=offsets[nh];i< nt;i+=gridDim.x *blockDim.x)
Definition: HistoContainer.h:27
FWGeometry::HGCalHSc
Definition: FWGeometry.h:40
FWGeometry::m_idToMatrix
std::map< unsigned int, TGeoMatrix * > m_idToMatrix
Definition: FWGeometry.h:163
alignCSCRings.r
r
Definition: alignCSCRings.py:93
fwlog::kInfo
Definition: fwLog.h:35
FWGeometry::VersionInfo::cmsswVersion
TNamed * cmsswVersion
Definition: FWGeometry.h:69
type
type
Definition: HCALResponse.h:21
FWGeometry::~FWGeometry
~FWGeometry(void)
Definition: FWGeometry.cc:26
FWGeometry::findFile
static TFile * findFile(const char *fileName)
Definition: FWGeometry.cc:35
download_sqlite_cfg.globalTag
globalTag
Definition: download_sqlite_cfg.py:4
FWGeometry::getMatchedIds
std::vector< unsigned int > getMatchedIds(Detector det, SubDetector subdet) const
Definition: FWGeometry.cc:251
DetId.h
PVValHelper::dz
Definition: PVValidationHelpers.h:50
triggerObjects_cff.id
id
Definition: triggerObjects_cff.py:31
FWGeometry::SubDetector
SubDetector
Definition: FWGeometry.h:43
personalPlayback.fn
fn
Definition: personalPlayback.py:515
Skims_PA_cff.paths
paths
Definition: Skims_PA_cff.py:18
FWGeometry::getShape
TGeoShape * getShape(unsigned int id) const
Definition: FWGeometry.cc:290
castor_dqm_sourceclient_file_cfg.path
path
Definition: castor_dqm_sourceclient_file_cfg.py:37
DTRecHitClients_cfi.local
local
Definition: DTRecHitClients_cfi.py:10
FWGeometry::m_fileName
std::string m_fileName
Definition: FWGeometry.h:173
genParticles_cff.map
map
Definition: genParticles_cff.py:11
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
FWGeometry::getEveShape
TEveGeoShape * getEveShape(unsigned int id) const
Definition: FWGeometry.cc:321
FWRecoGeom::InfoMap
std::vector< FWRecoGeom::Info > InfoMap
Definition: FWRecoGeom.h:23
begin
#define begin
Definition: vmac.h:32
PVValHelper::dx
Definition: PVValidationHelpers.h:48
RemoveAddSevLevel.flag
flag
Definition: RemoveAddSevLevel.py:116
FWGeometry::find
IdToInfoItr find(unsigned int) const
Definition: FWGeometry.cc:517