9 __slots__ = (
'PartitionLayers',
'Sides',
'PartLayerNames',
'PartitionNames',
'etaRange',
'phiRange',
'phiNbin',
'etaNbin',
'etaMin',
'etaCellSize',
'energyscale',
'timescale',
'logEnergyBins',
'cosmicEneBinning',
'defaultEnergyBins',
'larCellSummary')
16 LayersEM=[
"P",
"1",
"2",
"3"]
17 LayersHEC=[
"0",
"1",
"2",
"3"]
18 LayersFCAL=[
"1",
"2",
"3"]
19 lArCellBinningScheme.PartitionLayers={
"EMB":LayersEM,
"EMEC":LayersEM,
"HEC":LayersHEC,
"FCAL":LayersFCAL}
20 lArCellBinningScheme.Sides=[
"A",
"C"]
22 lArCellBinningScheme.PartLayerNames=[]
23 lArCellBinningScheme.PartitionNames=[]
25 for Partition
in lArCellBinningScheme.PartitionLayers :
26 for Side
in lArCellBinningScheme.Sides :
27 lArCellBinningScheme.PartitionNames.append(Partition+Side)
29 for Layer
in lArCellBinningScheme.PartitionLayers[Partition]:
30 for Side
in lArCellBinningScheme.Sides :
31 lArCellBinningScheme.PartLayerNames.append(Partition+Layer+Side)
36 lArCellBinningScheme.phiNbin={}
40 lArCellBinningScheme.phiNbin[
"EMB"]= {
"P":[64],
"1":[64],
"2":[256],
"3":[256]}
41 phiSteps[
"EMB"]= {
"P":[-M_PI,M_PI],
"1":[-M_PI,M_PI],
"2":[-M_PI,M_PI],
"3":[-M_PI,M_PI]}
42 lArCellBinningScheme.phiNbin[
"EMEC"]= {
"P":[64],
"1":[64],
"2":[256],
"3":[256]}
43 phiSteps[
"EMEC"]= {
"P":[-M_PI,M_PI],
"1":[-M_PI,M_PI],
"2":[-M_PI,M_PI],
"3":[-M_PI,M_PI]}
44 lArCellBinningScheme.phiNbin[
"HEC"]= {
"0":[64],
"1":[64],
"2":[64],
"3":[64]}
45 phiSteps[
"HEC"]= {
"0":[-M_PI,M_PI],
"1":[-M_PI,M_PI],
"2":[-M_PI,M_PI],
"3":[-M_PI,M_PI]}
46 lArCellBinningScheme.phiNbin[
"FCAL"]= {
"1":[2,1,1,1,1,1,1,2,6,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,3,1,1,2,1,2,1,2,4,3,1,1,2,1,1,3,1,2,2,1,2,3,1,1,1,1,1,1,2,6,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,3,1,1,2,1,2,1,2,4,3,1,1,2,1,1,3,1,2,2,1,2,1],
47 "2":[1,1,1,1,1,1,1,1,1,8,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,8,1,3,1,1,1,1],
48 "3":[10,1,1,4,2,1,2,2,1,1,2,10,1,1,4,2,1,2,2,1,1,2]}
49 phiSteps[
"FCAL"]= {
"1":[-M_PI,(-250.0/256)*M_PI,(-248.0/256)*M_PI,(-243.0/256)*M_PI,(-240.0/256)*M_PI,(-234.0/256)*M_PI,
50 (-230.0/256)*M_PI,(-225.0/256)*M_PI,(-219.0/256)*M_PI,(-195.0/256)*M_PI,(-190.0/256)*M_PI,(-186.0/256)*M_PI,
51 (-183.0/256)*M_PI,(-178.0/256)*M_PI,(-175.0/256)*M_PI,(-173.0/256)*M_PI,(-167.0/256)*M_PI,(-161.0/256)*M_PI,
52 (-159.0/256)*M_PI,(-156.0/256)*M_PI,(-151.0/256)*M_PI,(-148.0/256)*M_PI,(-146.0/256)*M_PI,(-141.0/256)*M_PI,
53 (-139.0/256)*M_PI,(-135.0/256)*M_PI,(-132.0/256)*M_PI,(-120.0/256)*M_PI,(-117.0/256)*M_PI,(-114.0/256)*M_PI,
54 (-110.0/256)*M_PI,(-105.0/256)*M_PI,(-97.0/256)*M_PI,(-94.0/256)*M_PI,(-86.0/256)*M_PI,(-78.0/256)*M_PI,
55 (-63.0/256)*M_PI,(-60.0/256)*M_PI,(-56.0/256)*M_PI,(-46.0/256)*M_PI,(-44.0/256)*M_PI,(-41.0/256)*M_PI,
56 (-32.0/256)*M_PI,(-28.0/256)*M_PI,(-22.0/256)*M_PI,(-10.0/256)*M_PI,(-7.0/256)*M_PI,(-3.0/256)*M_PI,
57 (6.0/256)*M_PI,(8.0/256)*M_PI,(13.0/256)*M_PI,(16.0/256)*M_PI,(22.0/256)*M_PI,(26.0/256)*M_PI,(31.0/256)*M_PI,
58 (37.0/256)*M_PI,(61.0/256)*M_PI,(66.0/256)*M_PI,(70.0/256)*M_PI,(73.0/256)*M_PI,(78.0/256)*M_PI,(81.0/256)*M_PI,
59 (83.0/256)*M_PI,(89.0/256)*M_PI,(95.0/256)*M_PI,(97.0/256)*M_PI,(100.0/256)*M_PI,(105.0/256)*M_PI,
60 (108.0/256)*M_PI,(110.0/256)*M_PI,(115.0/256)*M_PI,(117.0/256)*M_PI,(121.0/256)*M_PI,(124.0/256)*M_PI,
61 (136.0/256)*M_PI,(139.0/256)*M_PI,(142.0/256)*M_PI,(146.0/256)*M_PI,(151.0/256)*M_PI,(159.0/256)*M_PI,
62 (162.0/256)*M_PI,(170.0/256)*M_PI,(178.0/256)*M_PI,(193.0/256)*M_PI,(196.0/256)*M_PI,(200.0/256)*M_PI,
63 (210.0/256)*M_PI,(212.0/256)*M_PI,(215.0/256)*M_PI,(224.0/256)*M_PI,(228.0/256)*M_PI,(234.0/256)*M_PI,
64 (246.0/256)*M_PI,(249.0/256)*M_PI,(253.0/256)*M_PI,M_PI],
65 "2":[-M_PI,(-62.0/64)*M_PI,(-59.0/64)*M_PI,(-55.0/64)*M_PI,(-52.0/64)*M_PI,(-50.0/64)*M_PI,(-48.0/64)*M_PI,
66 (-45.0/64)*M_PI,(-41.0/64)*M_PI,(-38.0/64)*M_PI,(-22.0/64)*M_PI,(-18.0/64)*M_PI,(-12.0/64)*M_PI,
67 (-8.0/64)*M_PI,(-5.0/64)*M_PI,(-1.0/64)*M_PI,0,(2.0/64)*M_PI,(5.0/64)*M_PI,(9.0/64)*M_PI,(12.0/64)*M_PI,
68 (14.0/64)*M_PI,(16.0/64)*M_PI,(19.0/64)*M_PI,(23.0/64)*M_PI,(26.0/64)*M_PI,(42.0/64)*M_PI,(46.0/64)*M_PI,
69 (52.0/64)*M_PI,(56.0/64)*M_PI,(59.0/64)*M_PI,(63.0/64)*M_PI,M_PI],
70 "3":[-M_PI,(-40.0/64)*M_PI,(-39.0/64)*M_PI,(-35.0/64)*M_PI,(-29.0/64)*M_PI,(-24.0/64)*M_PI,(-22.0/64)*M_PI,
71 (-16.0/64)*M_PI,(-11.0/64)*M_PI,(-9.0/64)*M_PI,(-6.0/64)*M_PI,0,(24.0/64)*M_PI,(25.0/64)*M_PI,
72 (29.0/64)*M_PI,(35.0/64)*M_PI,(40.0/64)*M_PI,(42.0/64)*M_PI,(48.0/64)*M_PI,(53.0/64)*M_PI,(55.0/64)*M_PI,
83 lArCellBinningScheme.etaNbin = {}
84 lArCellBinningScheme.etaMin = {}
85 lArCellBinningScheme.etaCellSize = {}
87 lArCellBinningScheme.etaNbin[
"EMB"]= {
"P":[0,61],
"1":[0,1,447,451],
"2":[0,58,60],
"3":[0, 27, 28]}
88 lArCellBinningScheme.etaMin[
"EMB"]= {
"P":0.0,
"1":0.0,
"2":0.0,
"3":0.0}
89 lArCellBinningScheme.etaCellSize[
"EMB"]={
"P":[0.025],
"1":[0.025/4,0.025/8,0.025],
"2":[0.025,0.05],
"3":[0.05, 0.125]}
91 lArCellBinningScheme.etaNbin[
"EMEC"]= {
"P":[0,12],
"1":[0,1,3,107,155,219,223,230],
"2":[0,1,47,54],
"3":[0,20]}
92 lArCellBinningScheme.etaMin[
"EMEC"]= {
"P":1.5,
"1":1.375,
"2":1.375,
"3":1.5}
93 lArCellBinningScheme.etaCellSize[
"EMEC"]={
"P":[0.025],
"1":[0.05,0.025,0.025/8,0.025/6,0.025/4,0.025,0.1],
"2":[0.05,0.025,0.1],
"3":[0.05]}
95 lArCellBinningScheme.etaNbin[
"HEC"]= {
"0":[0,10,14],
"1":[0,10,13],
"2":[0,9,12],
"3":[0,8,12]}
96 lArCellBinningScheme.etaMin[
"HEC"]= {
"0":1.5,
"1":1.5,
"2":1.6,
"3":1.7}
97 lArCellBinningScheme.etaCellSize[
"HEC"]={
"0":[0.1,0.2],
"1":[0.1,0.2],
"2":[0.1,0.2],
"3":[0.1,0.2]}
99 lArCellBinningScheme.etaNbin[
"FCAL"]= {
"1":[0, 3, 9, 13, 15],
"2":[0, 1, 4, 5, 6, 7, 10, 12, 13, 14, 17, 21, 25, 27, 28, 29, 30, 31],
"3":[0,2,4,5,6,8]}
101 lArCellBinningScheme.etaMin[
"FCAL"]= {
"1":3.08,
"2":3.192,
"3":3.27}
102 lArCellBinningScheme.etaCellSize[
"FCAL"] ={
"1":[0.04, 0.1, 0.2, 0.11],
"2":[0.007, 0.0035, 0.008, 0.0005, 0.012, 0.01, 0.04, 0.03, 0.02, 0.043, 0.0125, 0.066, 0.132, 0.265, 0.135, 0.15, 0.16],
"3":[0.08, 0.135, 0.21, 0.42, 0.21]}
107 lArCellBinningScheme.phiRange={}
108 for Part
in lArCellBinningScheme.PartitionLayers:
109 for Layer
in lArCellBinningScheme.PartitionLayers[Part]:
113 lArCellBinningScheme.phiRange[Part+Layer+
"A"]=[]
114 for istep
in range(1,len(phiSteps[Part][Layer])):
115 lArCellBinningScheme.phiRange[Part+Layer+
"A"].
extend([phiSteps[Part][Layer][istep-1]+ x*(phiSteps[Part][Layer][istep]-phiSteps[Part][Layer][istep-1])/lArCellBinningScheme.phiNbin[Part][Layer][istep-1]
for x
in range(lArCellBinningScheme.phiNbin[Part][Layer][istep-1])])
117 lArCellBinningScheme.phiRange[Part+Layer+
"A"].
append(phiSteps[Part][Layer][-1])
118 lArCellBinningScheme.phiRange[Part+Layer+
"C"]=lArCellBinningScheme.phiRange[Part+Layer+
"A"]
128 lArCellBinningScheme.etaRange = {}
129 for Part
in lArCellBinningScheme.PartitionLayers:
130 for Lay
in lArCellBinningScheme.PartitionLayers[Part]:
131 Ranges=lArCellBinningScheme.etaNbin[Part][Lay]
132 Sizes=lArCellBinningScheme.etaCellSize[Part][Lay]
133 if not len(Ranges)-len(Sizes)==1 :
134 print(
"Bad list of ranges and size please check", Part,Lay, len(Ranges), len(Sizes))
137 etamin=lArCellBinningScheme.etaMin[Part][Lay]
140 for k
in range(len(Ranges)-1) :
141 currange+=[
round(currange[-1] + x * Sizes[k],5)
for x
in range(1,Ranges[k+1]-Ranges[k]+1)]
144 lArCellBinningScheme.etaRange[Part+Lay+
"A"]=currange
149 lArCellBinningScheme.etaRange[Part+Lay+
"C"] =
list(map(
lambda x: x*-1,lArCellBinningScheme.etaRange[Part+Lay+
"A"]))[::-1]
153 lArCellBinningScheme.timescale = [-200,-195,-190,-185,-180,-175,-170,-165,-160,-155,-150,-145,-140,-135,-130,-125,-120,-115,-110,-105,-100,-95,-90,-85,-80,-75,-70,-65,-60,-55,-50,-45,-40,-35,-30,-25,-20,-15,-10,-8,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,8,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100,105,110,115,120,125,130,135,140,145,150,155,160,165,170,175,180,185,190,195,200]
154 lArCellBinningScheme.energyscale = [250,500,1000,2500,5000,10000,25000,50000,100000,250000,500000,1000000]
156 lArCellBinningScheme.logEnergyBins=[
None]*55
157 lArCellBinningScheme.logEnergyBins[0]=10
159 for i
in range(1,len(lArCellBinningScheme.logEnergyBins)):
160 lArCellBinningScheme.logEnergyBins[i] = step * lArCellBinningScheme.logEnergyBins[i-1]
164 lArCellBinningScheme.cosmicEneBinning={}
165 for side
in lArCellBinningScheme.Sides:
166 for Lay
in lArCellBinningScheme.PartitionLayers[
"EMB"]:
167 lArCellBinningScheme.cosmicEneBinning[
"EMB"+Lay+side]=[xbins,-318.5,1088.5]
169 for Lay
in lArCellBinningScheme.PartitionLayers[
"EMEC"]:
170 lArCellBinningScheme.cosmicEneBinning[
"EMEC"+Lay+side]=[xbins,-591.5,2021.5]
172 for Lay
in lArCellBinningScheme.PartitionLayers[
"HEC"]:
173 lArCellBinningScheme.cosmicEneBinning[
"HEC"+Lay+side]=[xbins,-2047.5,6997.5]
175 for Lay
in lArCellBinningScheme.PartitionLayers[
"FCAL"]:
176 lArCellBinningScheme.cosmicEneBinning[
"FCAL"+Lay+side]=[xbins,-1865.5,6375.5]
180 lArCellBinningScheme.defaultEnergyBins=[401,-1912.5,28162.5]
182 lArCellBinningScheme.larCellSummary={
"xbins":[7, 1., 8.],
183 "xlabels":[
"Total Events",
"RNDM Trigger",
"Calo Trigger",
"MinBias Trigger",
"MET Trigger",
"Misc Trigger",
"Events Sele\
184 cted for Noise Plots"]}
188 if __name__ ==
"__main__":
190 print (lArCellBinningScheme.PartLayerNames)
191 print (lArCellBinningScheme.etaRange)
192 for k
in lArCellBinningScheme.etaRange: