CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
hgcalHtml.py
Go to the documentation of this file.
1 import os
2 import collections
3 
4 _sampleName = {
5  "RelValCloseByParticleGun_CE_H_Fine_300um" : "CloseByParticleGun in CE-H Fine section with 300 um",
6  "RelValCloseByParticleGun_CE_H_Fine_200um" : "CloseByParticleGun in CE-H Fine section with 200 um",
7  "RelValCloseByParticleGun_CE_H_Fine_120um" : "CloseByParticleGun in CE-H Fine section with 120 um",
8  "RelValCloseByParticleGun_CE_H_Coarse_Scint" : "CloseByParticleGun in CE-H Coarse section with scintillator",
9  "RelValCloseByParticleGun_CE_H_Coarse_300um" : "CloseByParticleGun in CE-H Coarse section with 300 um",
10  "RelValCloseByParticleGun_CE_E_Front_300um" : "CloseByParticleGun in CE-E Front section with 300 um",
11  "RelValCloseByParticleGun_CE_E_Front_200um" : "CloseByParticleGun in CE-E Front section with 200 um",
12  "RelValCloseByPGun_CE_E_Front_120um" : "CloseByParticleGun in CE-E Front section with 120 um",
13  "RelValCloseByPGun_CE_H_Fine_300um" : "CloseByParticleGun in CE-H Fine section with 300 um",
14  "RelValCloseByPGun_CE_H_Fine_200um" : "CloseByParticleGun in CE-H Fine section with 200 um",
15  "RelValCloseByPGun_CE_H_Fine_120um" : "CloseByParticleGun in CE-H Fine section with 120 um",
16  "RelValCloseByPGun_CE_H_Coarse_Scint" : "CloseByParticleGun in CE-H Coarse section with scintillator",
17  "RelValCloseByPGun_CE_H_Coarse_300um" : "CloseByParticleGun in CE-H Coarse section with 300 um",
18  "RelValCloseByPGun_CE_E_Front_300um" : "CloseByParticleGun in CE-E Front section with 300 um",
19  "RelValCloseByPGun_CE_E_Front_200um" : "CloseByParticleGun in CE-E Front section with 200 um",
20  "RelValCloseByPGun_CE_E_Front_120um" : "CloseByParticleGun in CE-E Front section with 120 um",
21  "RelValTTbar" : "TTbar",
22  "RelValSingleGammaFlatPt8To150" : "Single Gamma Pt 8 GeV to 150 GeV ",
23  "RelValSingleMuPt10" : "Single Muon Pt 10 GeV",
24  "RelValSingleMuPt100" : "Single Muon Pt 100 GeV",
25  "RelValSingleMuPt1000" : "Single Muon Pt 1000 GeV",
26  "RelValSingleMuFlatPt2To100" : "Single Muon Pt 2 GeV to 100 GeV",
27  "RelValSingleMuFlatPt0p7To10" : "Single Muon Pt 0.7 GeV to 10 GeV",
28  "RelValSingleEFlatPt2To100" : "Single Electron Pt 2 GeV to 100 GeV",
29  "RelValSingleTauFlatPt2To150" : "Single Tau Pt 2 GeV to 150 GeV",
30  "RelValSinglePiFlatPt0p7To10" : "Single Pion Pt 0.7 GeV to 10 GeV",
31  "RelValQCD_Pt20toInfMuEnrichPt15" : "QCD Pt 20 GeV to Inf with Muon Pt 15 GeV",
32  "RelValQCD_Pt15To7000_Flat" : "QCD Pt 15 GeV to 7 TeV",
33  "RelValZTT" : "ZTauTau",
34  "RelValZMM" : "ZMuMu",
35  "RelValZEE" : "ZEleEle",
36  "RelValB0ToKstarMuMu" : "B0 To Kstar Muon Muon",
37  "RelValBsToEleEle" : "Bs To Electron Electron",
38  "RelValBsToMuMu" : "Bs To Muon Muon",
39  "RelValBsToJpsiGamma" : "Bs To Jpsi Gamma",
40  "RelValBsToJpsiPhi_mumuKK" : "Bs To JpsiPhi_mumuKK",
41  "RelValBsToPhiPhi_KKKK" : "Bs To PhiPhi_KKKK",
42  "RelValDisplacedMuPt30To100" : "Displaced Muon Pt 30 GeV to 100 GeV",
43  "RelValDisplacedMuPt2To10" : "Displaced Muon Pt 2 GeV to 10 GeV",
44  "RelValDisplacedMuPt10To30" : "Displaced Muon Pt 10 GeV to 30 GeV",
45  "RelValTauToMuMuMu" : "Tau To Muon Muon Muon",
46  "RelValMinBias" : "Min Bias",
47  "RelValH125GGgluonfusion" : "Higgs to gamma gamma",
48  "RelValNuGun" : "Neutrino gun",
49  "RelValZpTT_1500" : "Z prime with 1500 GeV nominal mass",
50  "RelValTenTau_15_500_Eta3p1" : "Ten Taus with energy from 15 GeV to 500 GeV"
51 }
52 
53 _sampleFileName = {
54  "RelValCloseByParticleGun_CE_H_Fine_300um" : "closebycehf300",
55  "RelValCloseByParticleGun_CE_H_Fine_200um" : "closebycehf200",
56  "RelValCloseByParticleGun_CE_H_Fine_120um" : "closebycehf120",
57  "RelValCloseByParticleGun_CE_H_Coarse_Scint" : "closebycehcscint",
58  "RelValCloseByParticleGun_CE_H_Coarse_300um" : "closebycehc300",
59  "RelValCloseByParticleGun_CE_E_Front_300um" : "closebyceef300",
60  "RelValCloseByParticleGun_CE_E_Front_200um" : "closebyceef200",
61  "RelValCloseByParticleGun_CE_E_Front_120um" : "closebyceef120",
62  "RelValTTbar" : "ttbar",
63  "RelValSingleGammaFlatPt8To150" : "gam8",
64  "RelValSingleMuPt10" : "m10",
65  "RelValSingleMuPt100" : "m100",
66  "RelValSingleMuPt1000" : "m1000",
67  "RelValSingleMuFlatPt2To100" : "mflat2t100",
68  "RelValSingleMuFlatPt0p7To10" : "mflat0p7t10",
69  "RelValSingleEFlatPt2To100" : "eflat2t100",
70  "RelValSingleTauFlatPt2To150" : "tauflat2t150",
71  "RelValSinglePiFlatPt0p7To10" : "piflat0p7t10",
72  "RelValQCD_Pt20toInfMuEnrichPt15" : "qcd20enmu15",
73  "RelValQCD_Pt15To7000_Flat" : "qcdflat15",
74  "RelValZTT" : "ztautau",
75  "RelValZMM" : "zmm",
76  "RelValZEE" : "zee",
77  "RelValB0ToKstarMuMu" : "b0kstmm",
78  "RelValBsToEleEle" : "bsee",
79  "RelValBsToMuMu" : "bsmm",
80  "RelValBsToJpsiGamma" : "bsjpsg",
81  "RelValBsToJpsiPhi_mumuKK" : "bsjpspmmkk",
82  "RelValBsToPhiPhi_KKKK" : "bsjpsppkkkk",
83  "RelValDisplacedMuPt30To100" : "dm30",
84  "RelValDisplacedMuPt2To10" : "dm2",
85  "RelValDisplacedMuPt10To30" : "dm10",
86  "RelValTauToMuMuMu" : "taummm",
87  "RelValMinBias" : "minbias",
88  "RelValH125GGgluonfusion" : "hgg",
89  "RelValNuGun" : "nug",
90  "RelValZpTT_1500" : "zp1500tautau",
91  "RelValTenTau_15_500" : "tentaus15to1500"
92 
93 }
94 
95 
96 _pageNameMap = {
97  "summary": "Summary",
98  "hitCalibration": "Reconstructed hits calibration",
99  "hitValidation" : "Simulated hits, digis, reconstructed hits validation" ,
100  "layerClusters": "Layer clusters",
101  "tracksters":"Tracksters",
102  "ticlMultiClustersFromTrackstersEM": "Electromagnetic multiclusters",
103  "ticlMultiClustersFromTrackstersHAD": "Hadronic multiclusters",
104  "hgcalMultiClusters" : "Old multiclusters",
105  "standalone" : "Standalone study on simulated hits, digis, reconstructed hits"
106 }
107 
108 _sectionNameMapOrder = collections.OrderedDict([
109  # These are for the summary page
110  # Will add later
111  # layerClusters
112  ("layerClusters", "Layer clusters"),
113  # ticlMultiClustersFromTrackstersEM
114  ("ticlMultiClustersFromTrackstersEM","Electromagnetic multiclusters"),
115  # ticlMultiClustersFromTrackstersHAD
116  ("ticlMultiClustersFromTrackstersHAD","Hadronic multiclusters"),
117  ("tracksters","Tracksters"),
118  # hgcalMultiClusters
119  ("hgcalMultiClusters","Old multiclusters"),
120 ])
121 
122 #This is the summary section, where we define which plots will be shown in the summary page.
123 _summary = {}
124 
125 #Objects to keep in summary
126 #_summobj = ['hitCalibration','hitValidation', 'hgcalLayerClusters','ticlMultiClustersFromTrackstersEM','ticlMultiClustersFromTrackstersHAD']
127 _summobj = ['hitCalibration','hitValidation', 'layerClusters','tracksters']
128 #_summobj = ['hitCalibration','hitValidation', 'layerClusters']
129 
130 #Plots to keep in summary from hitCalibration
131 summhitcalib=[
132  'Layer_Occupancy/LayerOccupancy/LayerOccupancy.png',
133  'ReconstructableEnergyOverCPenergy/ReconstructableEnergyOverCPenergy/h_EoP_CPene_300_calib_fraction.png',
134  'ReconstructableEnergyOverCPenergy/ReconstructableEnergyOverCPenergy/h_EoP_CPene_200_calib_fraction.png',
135  'ReconstructableEnergyOverCPenergy/ReconstructableEnergyOverCPenergy/h_EoP_CPene_100_calib_fraction.png',
136  'ReconstructableEnergyOverCPenergy/ReconstructableEnergyOverCPenergy/h_EoP_CPene_scint_calib_fraction.png'
137  ]
138 
139 #Plots to keep in summary from hitValidation
140 summhitvalid = [
141  'SimHits_Validation/HitValidation/heeEnSim.png',
142  'SimHits_Validation/HitValidation/hebEnSim.png',
143  'SimHits_Validation/HitValidation/hefEnSim.png']
144 
145 #Plots to keep in summary from layer clusters
146 summlc = [
147  'hgcalLayerClusters_Z-minus: LC_CP association/Efficiencies_vs_layer/globalEfficiencies.png' ,
148  'hgcalLayerClusters_Z-plus: LC_CP association/Efficiencies_vs_layer/globalEfficiencies.png' ,
149  'hgcalLayerClusters_Z-minus: LC_CP association/Duplicates_vs_layer/globalEfficiencies.png' ,
150  'hgcalLayerClusters_Z-plus: LC_CP association/Duplicates_vs_layer/globalEfficiencies.png' ,
151  'hgcalLayerClusters_Z-minus: LC_CP association/FakeRate_vs_layer/globalEfficiencies.png' ,
152  'hgcalLayerClusters_Z-plus: LC_CP association/FakeRate_vs_layer/globalEfficiencies.png' ,
153  'hgcalLayerClusters_Z-minus: LC_CP association/MergeRate_vs_layer/globalEfficiencies.png' ,
154  'hgcalLayerClusters_Z-plus: LC_CP association/MergeRate_vs_layer/globalEfficiencies.png',
155  'SelectedCaloParticles_Photons/SelectedCaloParticles_num_caloparticle_eta.png',
156  'SelectedCaloParticles_Photons/SelectedCaloParticles_caloparticle_pt.png',
157  'SelectedCaloParticles_Photons/SelectedCaloParticles_caloparticle_phi.png',
158  'SelectedCaloParticles_Photons/SelectedCaloParticles_caloparticle_energy.png',
159  'SelectedCaloParticles_Photons/SelectedCaloParticles_Eta vs Zorigin.png'
160  ]
161 
162 #Plots to keep in summary from ticlMultiClustersFromTrackstersEM
163 summmcEM = [
164  'ticlTrackstersEM/Purities/globalEfficiencies.png' ,
165  'ticlTrackstersEM/Duplicates/globalEfficiencies.png' ,
166  'ticlTrackstersEM/FakeRate/globalEfficiencies.png' ,
167  'ticlTrackstersEM/MergeRate/globalEfficiencies.png'
168 ]
169 
170 #Plots to keep in summary from ticlMultiClustersFromTrackstersHAD
171 summmcHAD = [
172  'ticlTrackstersHAD/Purities/globalEfficiencies.png' ,
173  'ticlTrackstersHAD/Duplicates/globalEfficiencies.png' ,
174  'ticlTrackstersHAD/FakeRate/globalEfficiencies.png' ,
175  'ticlTrackstersHAD/MergeRate/globalEfficiencies.png'
176 ]
177 
178 summmcTICL = summmcEM + summmcHAD
179 
180 #Plots to keep in summary from standalone analysis
181 summstandalone = [
182  'hgcalSimHitStudy/RZ_AllDetectors.png'
183 ]
184 
185 #Let's save the above for later
186 for obj in _summobj:
187  _summary[obj] = {}
188 _summary['hitCalibration'] = summhitcalib
189 _summary['hitValidation'] = summhitvalid
190 _summary['layerClusters'] = summlc
191 _summary['tracksters'] = summmcTICL
192 #_summary['allTiclMultiClusters'] = summmcTICL
193 #_summary['ticlMultiClustersFromTrackstersEM'] = summmcEM
194 #_summary['ticlMultiClustersFromTrackstersHAD'] = summmcHAD
195 
196 #Entering the geometry section
197 #_MatBudSections = ["allhgcal","zminus","zplus","indimat","fromvertex"]
198 _MatBudSections = ["allhgcal","indimat","fromvertex"]
199 
200 _geoPageNameMap = {
201  "allhgcal": "All materials",
202 # "zminus" : "Zminus",
203 # "zplus" : "Zplus",
204  "indimat" : "Individual materials",
205  "fromvertex": "From vertex up to in front of muon stations"
206 }
207 
208 _individualmaterials =['Air','Aluminium','Cables','Copper','Epoxy','HGC_G10-FR4','Kapton','Lead','Other','Scintillator','Silicon','Stainless_Steel','WCu','Polystyrene','HGC_EEConnector','HGC_HEConnector']
209 
210 _matPageNameMap = {
211  'Air': 'Air',
212  'Aluminium': 'Aluminium',
213  'Cables': 'Cables',
214  'Copper': 'Copper',
215  'Epoxy': 'Epoxy',
216  'HGC_G10-FR4': 'HGC_G10-FR4',
217  'Kapton': 'Kapton',
218  'Lead': 'Lead',
219  'Other': 'Other',
220  'Scintillator': 'Scintillator',
221  'Silicon': 'Silicon',
222  'Stainless_Steel': 'Stainless Steel',
223  'WCu': 'WCu',
224  'Polystyrene' : 'Polystyrene',
225  'HGC_EEConnector': 'CE-E Connector',
226  'HGC_HEConnector': 'CE-H Connector'
227 }
228 
229 _individualmatplots = {"HGCal_x_vs_z_vs_Rsum","HGCal_l_vs_z_vs_Rsum","HGCal_x_vs_z_vs_Rsumcos","HGCal_l_vs_z_vs_Rsumcos","HGCal_x_vs_z_vs_Rloc","HGCal_l_vs_z_vs_Rloc"}
230 
231 _allmaterialsplots = {"HGCal_x_vs_eta","HGCal_l_vs_eta","HGCal_x_vs_phi","HGCal_l_vs_phi","HGCal_x_vs_R","HGCal_l_vs_R","HGCal_x_vs_eta_vs_phi","HGCal_l_vs_eta_vs_phi","HGCal_x_vs_z_vs_Rsum","HGCal_l_vs_z_vs_Rsum","HGCal_x_vs_z_vs_Rsumcos","HGCal_l_vs_z_vs_Rsumcos","HGCal_x_vs_z_vs_Rloc","HGCal_l_vs_z_vs_Rloc"}
232 
233 _fromvertexplots = {"HGCal_l_vs_eta","HGCal_l_vs_z_vs_Rsum","HGCal_l_vs_z_vs_Rsum_Zpluszoom"}
234 
235 _individualMatPlotsDesc = {
236 "HGCal_x_vs_z_vs_Rsum" : "The plots below shows the 2D profile histogram for THEMAT in all HGCAL that displays the mean value of the material budget in units of radiation length in each R-z cell. R-z cell is 1 cm x 1 mm. The plots depict the accumulated material budget as seen by the track, as the track travels throughout the detector.",
237 "HGCal_l_vs_z_vs_Rsum" : "The plots below shows the 2D profile histogram for THEMAT in all HGCAL that displays the mean value of the material budget in units of interaction length in each R-z cell. R-z cell is 1 cm x 1 mm. The plots depict the accumulated material budget as seen by the track, as the track travels throughout the detector.",
238 "HGCal_x_vs_z_vs_Rsumcos" : "The plots below shows the 2D profile histogram for THEMAT in all HGCAL that displays the mean value of the material budget in units of radiation length in each R-z cell. R-z cell is 1 cm x 1 mm. The plots depict the orthogonal accumulated material budget, that is cos(theta) what the track sees. ",
239 "HGCal_l_vs_z_vs_Rsumcos" : "The plots below shows the 2D profile histogram for THEMAT in all HGCAL that displays the mean value of the material budget in units of interaction length in each R-z cell. R-z cell is 1 cm x 1 mm. The plots depict the orthogonal accumulated material budget, that is cos(theta) what the track sees. ",
240 "HGCal_x_vs_z_vs_Rloc" : "The plots below shows the 2D profile histogram for THEMAT in all HGCAL that displays the local mean value of the material budget in units of radiation length in each R-z cell. R-z cell is 1 cm x 1 mm. The plots depict the local material budget as seen by the track, as the track travels throughout the detector. ",
241 "HGCal_l_vs_z_vs_Rloc" : "The plots below shows the 2D profile histogram for THEMAT in all HGCAL that displays the local mean value of the material budget in units of interaction length in each R-z cell. R-z cell is 1 cm x 1 mm. The plots depict the local material budget as seen by the track, as the track travels throughout the detector. "
242 }
243 
244 _allmaterialsPlotsDesc= {
245  "HGCal_x_vs_eta" : "The plot on the left shows the stacked profile histograms of all materials in HGCal geometry. These profile histograms display the mean value of the material budget in units of radiation length in each eta bin. 250 bins in eta (-5,5), so eta is divided in 0.04 width bins. ",
246 
247  "HGCal_l_vs_eta" : "The plot on the left shows the stacked profile histograms of all materials in HGCal geometry. These profile histograms display the mean value of the material budget in units of interaction length in each eta bin. 250 bins in eta (-5,5), so eta is divided in 0.04 width bins. ",
248 
249  "HGCal_x_vs_phi" : "The plot on the left shows the stacked profile histograms of all materials in HGCal geometry. These profile histograms display the mean value of the material budget in units of radiation length in each phi bin. 180 bins in phi (-3.2,3.2), so phi is divided in 0.036 rad width bins or 2.038 degrees width bins. ",
250 
251  "HGCal_l_vs_phi" : "The plot on the left shows the stacked profile histograms of all materials in HGCal geometry. These profile histograms display the mean value of the material budget in units of interaction length in each phi bin. 180 bins in phi -3.2,3.2), so phi is divided in 0.036 rad width bins or 2.038 degrees width bins. ",
252 
253  "HGCal_x_vs_R" : "The plot on the left shows the stacked profile histograms of all materials in HGCal geometry. These profile histograms display the mean value of the material budget in units of radiation length in each radius bin. 300 bins in radius (0,3000 mm), so radius is defined in 1 cm width bins. Both endcaps are in this histogram. Entries are huge since the radius is filled for each step of the track. Statistics in the HEB part above 1565 mm is smaller (although non visible, error is small), since in most part nothing is infront to keep account of the step. ",
254 
255  "HGCal_l_vs_R" : "The plot on the left shows the stacked profile histograms of all materials in HGCal geometry. These profile histograms display the mean value of the material budget in units of interaction length in each radius bin. 300 bins in radius (0,3000 mm), so radius is defined in 1 cm width bins. Both endcaps are in this histogram. Entries are huge since the radius is filled for each step of the track. Statistics in the HEB part above 1565 mm is smaller (although non visible, error is small), since in most part nothing is in front to keep account of the step. ",
256 
257  "HGCal_x_vs_eta_vs_phi" : "The plot on the left shows the 2D profile histogram that displays the mean value of the material budget in units of radiation length in each eta-phi cell. 180 bins in phi (-3.2,3.2), so phi is divided in 0.036 rad width bins or 2.038 degrees width bins. 250 bins in eta -5., 5., so eta is divided in 0.04 width bins. Therefore, eta-phi cell is 2.038 degrees x 0.04 . ",
258 
259  "HGCal_l_vs_eta_vs_phi" : "The plot on the left shows the 2D profile histogram that displays the mean value of the material budget in units of interaction length in each eta-phi cell. 180 bins in phi (-3.2,3.2), so phi is divided in 0.036 rad width bins or 2.038 degrees width bins. 250 bins in eta -5., 5., so eta is divided in 0.04 width bins. Therefore, eta-phi cell is 2.038 degrees x 0.04 . ",
260 
261  "HGCal_x_vs_z_vs_Rsum" : "The plots below shows the 2D profile histogram that displays the mean value of the material budget in units of radiation length in each R-z cell. R-z cell is 1 cm x 1 mm. The plots depict the accumulated material budget as seen by the track, as the track travels throughout the detector.",
262 
263  "HGCal_l_vs_z_vs_Rsum" : "The plots below shows the 2D profile histogram that displays the mean value of the material budget in units of interaction length in each R-z cell. R-z cell is 1 cm x 1 mm. The plots depict the accumulated material budget as seen by the track, as the track travels throughout the detector.",
264 
265  "HGCal_x_vs_z_vs_Rsumcos" : "The plots below shows the 2D profile histogram that displays the mean value of the material budget in units of radiation length in each R-z cell. R-z cell is 1 cm x 1 mm. The plots depict the orthogonal accumulated material budget, that is cos(theta) what the track sees. ",
266 
267  "HGCal_l_vs_z_vs_Rsumcos" : "The plots below shows the 2D profile histogram that displays the mean value of the material budget in units of interaction length in each R-z cell. R-z cell is 1 cm x 1 mm. The plots depict the orthogonal accumulated material budget, that is cos(theta) what the track sees. " ,
268 
269  "HGCal_x_vs_z_vs_Rloc" : "The plots below shows the 2D profile histogram that displays the local mean value of the material budget in units of radiation length in each R-z cell. R-z cell is 1 cm x 1 mm. The plots depict the local material budget as seen by the track, as the track travels throughout the detector. ",
270 
271  "HGCal_l_vs_z_vs_Rloc" : "The plots below shows the 2D profile histogram that displays the local mean value of the material budget in units of interaction length in each R-z cell. R-z cell is 1 cm x 1 mm. The plots depict the local material budget as seen by the track, as the track travels throughout the detector. "
272 
273 
274 }
275 
276 _fromVertexPlotsDesc = {
277  "HGCal_x_vs_eta" : "The plot below shows the stacked profile histogram of all sub detectors in front of muon stations. This profile histogram displays the mean value of the material budget in units of radiation length in each eta bin. 250 bins in eta (-5,5), so eta is divided in 0.04 width bins. ",
278 
279  "HGCal_l_vs_eta" : "The plots below shows the stacked profile histogram of all sub detectors in front of muon stations. This profile histogram displays the mean value of the material budget in units of interaction length in each eta bin. 250 bins in eta (-5,5), so eta is divided in 0.04 width bins. ",
280 
281  "HGCal_l_vs_z_vs_Rsum" : "The plots below shows the detectors that are taken into account in the calculation of the material budget. Keep in mind that coloured regions that depicts each sub-detector area may contain Air as material.",
282 
283  "HGCal_l_vs_z_vs_Rsum_Zpluszoom" : "The zoomed plots below shows the detectors that are taken into account in the calculation of the material budget. Keep in mind that coloured regions that depicts each sub-detector area may contain Air as material."
284 
285 
286 
287 }
288 
289 _hideShowFun = {
290  "thestyle" : "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"> \n <style> \n body {font-family: Arial;} \n.tab { \n overflow: hidden; \n border: 1px solid #ccc; \n background-color: #f1f1f1;} \n .tab button { background-color: inherit; \n float: left; \n border: none; \n outline: none; \n cursor: pointer; \n padding: 14px 16px; \n transition: 0.3s; \n font-size: 17px; } \n .tab button:hover { background-color: #ddd; } \n .tab button.active { background-color: #ccc; } \n .tabcontent { display: none; \n padding: 6px 12px; \n border: 1px solid #ccc; \n border-top: none; \n} \n </style>",
291  "buttonandFunction" : "<script> \n function openRegion(evt, regionName) { \n var i, tabcontent, tablinks;\n tabcontent = document.getElementsByClassName(\"tabcontent\"); \n for (i = 0; i < tabcontent.length; i++) {\n tabcontent[i].style.display = \"none\";\n }\n tablinks = document.getElementsByClassName(\"tablinks\"); \n for (i = 0; i < tablinks.length; i++) {\n tablinks[i].className = tablinks[i].className.replace(\" active\", \"\"); \n }\n document.getElementById(regionName).style.display = \"block\";\n evt.currentTarget.className += \" active\"; \n}\n</script>\n",
292  "divTabs" : "<div class=\"tab\">\n <button class=\"tablinks\" onclick=\"openRegion(event, \'_AllHGCAL\')\">All HGCAL</button>\n <button class=\"tablinks\" onclick=\"openRegion(event, \'_ZminusZoom\')\">Zminus</button>\n <button class=\"tablinks\" onclick=\"openRegion(event, \'_ZplusZoom\')\">Zplus</button>\n </div>\n "
293 }
294 
295 
296 
297 
298 
299 
300