CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
MuonGeometrySanityCheck_cfi.py
Go to the documentation of this file.
1 from builtins import range
2 import FWCore.ParameterSet.Config as cms
3 
4 MuonGeometrySanityCheck = cms.EDAnalyzer(
5  "MuonGeometrySanityCheck",
6  printout = cms.string("all"),
7  tolerance = cms.double(1e-6),
8  prefix = cms.string("CHECK"),
9  frames = cms.VPSet(),
10  points = cms.VPSet(),
11  )
12 
13 def detectors(dt=True, csc=True, me42=False, chambers=True, superlayers=False, layers=False):
14  output = []
15  if dt:
16  for wheelName in "-2", "-1", "0", "+1", "+2":
17  for stationName in "1", "2", "3", "4":
18  numSectors = 12
19  if stationName == "4": numSectors = 14
20  for sectorName in map(str, list(range(1, numSectors+1))):
21  name = "MB" + wheelName + "/" + stationName + "/" + sectorName
22  if chambers: output.append(name)
23 
24  superlayerNames = "1", "2", "3"
25  if stationName == "4": superlayerNames = "1", "3"
26  for superlayerName in superlayerNames:
27  name = "MB" + wheelName + "/" + stationName + "/" + sectorName + "/" + superlayerName
28  if superlayers: output.append(name)
29 
30  for layerName in "1", "2", "3", "4":
31  name = "MB" + wheelName + "/" + stationName + "/" + sectorName + "/" + superlayerName + "/" + layerName
32  if layers: output.append(name)
33 
34  if csc:
35  for stationName in "-4", "-3", "-2", "-1", "+1", "+2", "+3", "+4":
36  ringNames = "1", "2"
37  if stationName in ("-1", "+1"): ringNames = "1", "2", "3", "4"
38  for ringName in ringNames:
39  numChambers = 36
40  if stationName + "/" + ringName in ("-4/1", "-3/1", "-2/1", "+2/1", "+3/1", "+4/1"): numChambers = 18
41  for chamberName in map(str, list(range(1, numChambers+1))):
42  name = "ME" + stationName + "/" + ringName + "/" + chamberName
43  if chambers:
44  if me42 or stationName + "/" + ringName not in ("-4/2", "+4/2"):
45  output.append(name)
46 
47  for layerName in "1", "2", "3", "4", "5", "6":
48  name = "ME" + stationName + "/" + ringName + "/" + chamberName + "/" + layerName
49  if layers:
50  if me42 or stationName + "/" + ringName not in ("-4/2", "+4/2"):
51  output.append(name)
52 
53  return output
const uint16_t range(const Frame &aFrame)