1 from __future__
import print_function
9 ROOT.gROOT.SetBatch(
True)
10 ROOT.PyConfig.IgnoreCommandLineOptions =
True 17 "CMSSW_6_2_0": {
"default":
"PRE_ST62_V8"},
18 "CMSSW_6_2_0_SLHC15": {
"UPG2019withGEM":
"DES19_62_V8",
"UPG2023SHNoTaper":
"DES23_62_V1"},
19 "CMSSW_6_2_0_SLHC17": {
"UPG2019withGEM":
"DES19_62_V8",
"UPG2023SHNoTaper":
"DES23_62_V1"},
20 "CMSSW_6_2_0_SLHC20": {
"UPG2019withGEM":
"DES19_62_V8",
"UPG2023SHNoTaper":
"DES23_62_V1_UPG2023SHNoTaper"},
21 "CMSSW_6_2_0_SLHC22": {
"UPG2023SHNoTaper":
"PH2_1K_FB_V6_UPG23SHNoTaper",
23 "2023GReco":
"PH2_1K_FB_V6_UPG23SHNoTaper",
"2023GRecoPU35":
"",
"2023GRecoPU140":
"",
"2023GRecoPU200":
"",
24 "2023tilted":
"PH2_1K_FB_V6_UPG23SHNoTaper",
"2023tiltedPU35":
"",
"2023tiltedPU140":
"",
"2023tiltedPU200":
""},
25 "CMSSW_6_2_0_SLHC26": {
"LHCCRefPU140":
"DES23_62_V1_LHCCRefPU140",
"LHCCRefPU200":
"DES23_62_V1_LHCCRefPU200",
27 "2023GReco":
"",
"2023GRecoPU35":
"",
"2023GRecoPU140":
"DES23_62_V1_LHCCRefPU140",
"2023GRecoPU200":
"DES23_62_V1_LHCCRefPU200",
28 "2023tilted":
"",
"2023tiltedPU35":
"",
"2023tiltedPU140":
"DES23_62_V1_LHCCRefPU140",
"2023tiltedPU200":
"DES23_62_V1_LHCCRefPU200"},
29 "CMSSW_6_2_0_SLHC27_phase1": {
"default":
"DES17_62_V8_UPG17"},
30 "CMSSW_7_0_0": {
"default":
"POSTLS170_V3",
"fullsim_50ns":
"POSTLS170_V4"},
31 "CMSSW_7_0_0_AlcaCSA14": {
"default":
"POSTLS170_V5_AlcaCSA14",
"fullsim_50ns":
"POSTLS170_V6_AlcaCSA14"},
32 "CMSSW_7_0_7_pmx": {
"default":
"PLS170_V7AN1",
"fullsim_50ns":
"PLS170_V6AN1"},
33 "CMSSW_7_0_9_patch3": {
"default":
"PLS170_V7AN2",
"fullsim_50ns":
"PLS170_V6AN2"},
34 "CMSSW_7_0_9_patch3_Premix": {
"default":
"PLS170_V7AN2",
"fullsim_50ns":
"PLS170_V6AN2"},
35 "CMSSW_7_1_0": {
"default":
"POSTLS171_V15",
"fullsim_50ns":
"POSTLS171_V16"},
36 "CMSSW_7_1_9": {
"default":
"POSTLS171_V17",
"fullsim_50ns":
"POSTLS171_V18"},
37 "CMSSW_7_1_9_patch2": {
"default":
"POSTLS171_V17",
"fullsim_50ns":
"POSTLS171_V18"},
38 "CMSSW_7_1_10_patch2": {
"default":
"MCRUN2_71_V1",
"fullsim_50ns":
"MCRUN2_71_V0"},
39 "CMSSW_7_2_0_pre5": {
"default":
"POSTLS172_V3",
"fullsim_50ns":
"POSTLS172_V4"},
40 "CMSSW_7_2_0_pre7": {
"default":
"PRE_LS172_V11",
"fullsim_50ns":
"PRE_LS172_V12"},
41 "CMSSW_7_2_0_pre8": {
"default":
"PRE_LS172_V15",
"fullsim_50ns":
"PRE_LS172_V16"},
42 "CMSSW_7_2_0": {
"default":
"PRE_LS172_V15",
"fullsim_50ns":
"PRE_LS172_V16"},
43 "CMSSW_7_2_0_PHYS14": {
"default":
"PHYS14_25_V1_Phys14"},
44 "CMSSW_7_2_2_patch1": {
"default":
"MCRUN2_72_V1",
"fullsim_50ns":
"MCRUN2_72_V0"},
45 "CMSSW_7_2_2_patch1_Fall14DR": {
"default":
"MCRUN2_72_V3_71XGENSIM"},
47 "CMSSW_7_3_0_pre1": {
"default":
"PRE_LS172_V15",
"fullsim_50ns":
"PRE_LS172_V16"},
49 "CMSSW_7_3_0_pre2": {
"default":
"MCRUN2_73_V1",
"fullsim_50ns":
"MCRUN2_73_V0"},
50 "CMSSW_7_3_0_pre3": {
"default":
"MCRUN2_73_V5",
"fullsim_50ns":
"MCRUN2_73_V4"},
51 "CMSSW_7_3_0": {
"default":
"MCRUN2_73_V7",
"fullsim_50ns":
"MCRUN2_73_V6"},
52 "CMSSW_7_3_0_71XGENSIM": {
"default":
"MCRUN2_73_V7_71XGENSIM"},
53 "CMSSW_7_3_0_71XGENSIM_FIXGT": {
"default":
"MCRUN2_73_V9_71XGENSIM_FIXGT"},
54 "CMSSW_7_3_1_patch1": {
"default":
"MCRUN2_73_V9",
"fastsim":
"MCRUN2_73_V7"},
55 "CMSSW_7_3_1_patch1_GenSim_7113": {
"default":
"MCRUN2_73_V9_GenSim_7113"},
56 "CMSSW_7_3_3": {
"default":
"MCRUN2_73_V11",
"fullsim_50ns":
"MCRUN2_73_V10",
"fastsim":
"MCRUN2_73_V13"},
57 "CMSSW_7_4_0_pre1": {
"default":
"MCRUN2_73_V5",
"fullsim_50ns":
"MCRUN2_73_V4"},
58 "CMSSW_7_4_0_pre2": {
"default":
"MCRUN2_73_V7",
"fullsim_50ns":
"MCRUN2_73_V6"},
59 "CMSSW_7_4_0_pre2_73XGENSIM": {
"default":
"MCRUN2_73_V7_73XGENSIM_Pythia6",
"fullsim_50ns":
"MCRUN2_73_V6_73XGENSIM_Pythia6"},
60 "CMSSW_7_4_0_pre5": {
"default":
"MCRUN2_73_V7",
"fullsim_50ns":
"MCRUN2_73_V6"},
61 "CMSSW_7_4_0_pre5_BS": {
"default":
"MCRUN2_73_V9_postLS1beamspot",
"fullsim_50ns":
"MCRUN2_73_V8_postLS1beamspot"},
62 "CMSSW_7_4_0_pre6": {
"default":
"MCRUN2_74_V1",
"fullsim_50ns":
"MCRUN2_74_V0"},
63 "CMSSW_7_4_0_pre8": {
"default":
"MCRUN2_74_V7",
"fullsim_25ns":
"MCRUN2_74_V5_AsympMinGT",
"fullsim_50ns":
"MCRUN2_74_V4_StartupMinGT"},
64 "CMSSW_7_4_0_pre8_minimal": {
"default":
"MCRUN2_74_V5_MinGT",
"fullsim_25ns":
"MCRUN2_74_V5_AsympMinGT",
"fullsim_50ns":
"MCRUN2_74_V4_StartupMinGT"},
65 "CMSSW_7_4_0_pre8_25ns_asymptotic": {
"default":
"MCRUN2_74_V7"},
66 "CMSSW_7_4_0_pre8_50ns_startup": {
"default":
"MCRUN2_74_V6"},
67 "CMSSW_7_4_0_pre8_50ns_asympref": {
"default":
"MCRUN2_74_V5A_AsympMinGT"},
68 "CMSSW_7_4_0_pre8_50ns_asymptotic": {
"default":
"MCRUN2_74_V7A_AsympGT"},
69 "CMSSW_7_4_0_pre8_ROOT6": {
"default":
"MCRUN2_74_V7"},
70 "CMSSW_7_4_0_pre8_pmx": {
"default":
"MCRUN2_74_V7",
"fullsim_50ns":
"MCRUN2_74_V6"},
71 "CMSSW_7_4_0_pre8_pmx_v2": {
"default":
"MCRUN2_74_V7_gs_pre7",
"fullsim_50ns":
"MCRUN2_74_V6_gs_pre7"},
72 "CMSSW_7_4_0_pre8_pmx_v3": {
"default":
"MCRUN2_74_V7_bis",
"fullsim_50ns":
"MCRUN2_74_V6_bis"},
73 "CMSSW_7_4_0_pre9": {
"default":
"MCRUN2_74_V7",
"fullsim_50ns":
"MCRUN2_74_V6"},
74 "CMSSW_7_4_0_pre9_ROOT6": {
"default":
"MCRUN2_74_V7",
"fullsim_50ns":
"MCRUN2_74_V6"},
75 "CMSSW_7_4_0_pre9_extended": {
"default":
"MCRUN2_74_V7_extended"},
76 "CMSSW_7_4_0": {
"default":
"MCRUN2_74_V7_gensim_740pre7",
"fullsim_50ns":
"MCRUN2_74_V6_gensim_740pre7",
"fastsim":
"MCRUN2_74_V7"},
77 "CMSSW_7_4_0_71XGENSIM": {
"default":
"MCRUN2_74_V7_GENSIM_7_1_15",
"fullsim_50ns":
"MCRUN2_74_V6_GENSIM_7_1_15"},
78 "CMSSW_7_4_0_71XGENSIM_PU": {
"default":
"MCRUN2_74_V7_gs7115_puProd",
"fullsim_50ns":
"MCRUN2_74_V6_gs7115_puProd"},
79 "CMSSW_7_4_0_71XGENSIM_PXworst": {
"default":
"MCRUN2_74_V7C_pxWorst_gs7115",
"fullsim_50ns":
"MCRUN2_74_V6A_pxWorst_gs7115"},
80 "CMSSW_7_4_0_71XGENSIM_PXbest": {
"default":
"MCRUN2_74_V7D_pxBest_gs7115",
"fullsim_50ns":
"MCRUN2_74_V6B_pxBest_gs7115"},
81 "CMSSW_7_4_0_pmx": {
"default":
"MCRUN2_74_V7",
"fullsim_50ns":
"MCRUN2_74_V6"},
82 "CMSSW_7_4_1": {
"default":
"MCRUN2_74_V9_gensim_740pre7",
"fullsim_50ns":
"MCRUN2_74_V8_gensim_740pre7",
"fastsim":
"MCRUN2_74_V9"},
83 "CMSSW_7_4_1_71XGENSIM": {
"default":
"MCRUN2_74_V9_gensim71X",
"fullsim_50ns":
"MCRUN2_74_V8_gensim71X"},
84 "CMSSW_7_4_1_extended": {
"default":
"MCRUN2_74_V9_extended"},
85 "CMSSW_7_4_3": {
"default":
"MCRUN2_74_V9",
"fullsim_50ns":
"MCRUN2_74_V8",
"fastsim":
"MCRUN2_74_V9",
"fastsim_25ns":
"MCRUN2_74_V9_fixMem"},
86 "CMSSW_7_4_3_extended": {
"default":
"MCRUN2_74_V9_ext",
"fastsim":
"MCRUN2_74_V9_fixMem"},
87 "CMSSW_7_4_3_pmx": {
"default":
"MCRUN2_74_V9_ext",
"fullsim_50ns":
"MCRUN2_74_V8",
"fastsim":
"MCRUN2_74_V9_fixMem"},
88 "CMSSW_7_4_3_patch1_unsch": {
"default":
"MCRUN2_74_V9_unsch",
"fullsim_50ns":
"MCRUN2_74_V8_unsch"},
89 "CMSSW_7_4_4": {
"default":
"MCRUN2_74_V9_38Tbis",
"fullsim_50ns":
"MCRUN2_74_V8_38Tbis"},
90 "CMSSW_7_4_4_0T": {
"default":
"MCRUN2_740TV1_0Tv2",
"fullsim_50ns":
"MCRUN2_740TV0_0TV2",
"fullsim_25ns":
"MCRUN2_740TV1_0TV2"},
91 "CMSSW_7_4_6_patch6": {
"default":
"MCRUN2_74_V9_scheduled",
"fullsim_50ns":
"MCRUN2_74_V8_scheduled"},
92 "CMSSW_7_4_6_patch6_unsch": {
"default":
"MCRUN2_74_V9",
"fullsim_50ns":
"MCRUN2_74_V8"},
93 "CMSSW_7_4_6_patch6_noCCC": {
"default":
"MCRUN2_74_V9_unsch_noCCC",
"fullsim_50ns":
"MCRUN2_74_V8_unsch_noCCC"},
94 "CMSSW_7_4_6_patch6_noCCC_v3": {
"default":
"MCRUN2_74_V9_unsch_noCCC_v3",
"fullsim_50ns":
"MCRUN2_74_V8_unsch_noCCC_v3"},
95 "CMSSW_7_4_6_patch6_BS": {
"default":
"74X_mcRun2_asymptotic_realisticBS_v0_2015Jul24",
"fullsim_50ns":
"74X_mcRun2_startup_realisticBS_v0_2015Jul24PU",
"fullsim_25ns":
"74X_mcRun2_asymptotic_realisticBS_v0_2015Jul24PU"},
96 "CMSSW_7_4_8_patch1_MT": {
"default":
"MCRUN2_74_V11_mulTrh",
"fullsim_50ns":
"MCRUN2_74_V10_mulTrh",},
97 "CMSSW_7_4_12": {
"default":
"74X_mcRun2_asymptotic_v2",
"fullsim_25ns":
"74X_mcRun2_asymptotic_v2_v2",
"fullsim_50ns":
"74X_mcRun2_startup_v2_v2"},
98 "CMSSW_7_5_0_pre1": {
"default":
"MCRUN2_74_V7",
"fullsim_50ns":
"MCRUN2_74_V6"},
99 "CMSSW_7_5_0_pre2": {
"default":
"MCRUN2_74_V7",
"fullsim_50ns":
"MCRUN2_74_V6"},
100 "CMSSW_7_5_0_pre3": {
"default":
"MCRUN2_74_V7",
"fullsim_50ns":
"MCRUN2_74_V6"},
101 "CMSSW_7_5_0_pre4": {
"default":
"MCRUN2_75_V1",
"fullsim_50ns":
"MCRUN2_75_V0"},
102 "CMSSW_7_5_0_pre5": {
"default":
"MCRUN2_75_V5",
"fullsim_50ns":
"MCRUN2_75_V4"},
103 "CMSSW_7_5_0_pre6": {
"default":
"75X_mcRun2_asymptotic_v1",
"fullsim_50ns":
"75X_mcRun2_startup_v1"},
104 "CMSSW_7_5_0": {
"default":
"75X_mcRun2_asymptotic_v1",
"fullsim_50ns":
"75X_mcRun2_startup_v1"},
105 "CMSSW_7_5_0_71XGENSIM": {
"default":
"75X_mcRun2_asymptotic_v1_gs7115",
"fullsim_50ns":
"75X_mcRun2_startup_v1_gs7115"},
106 "CMSSW_7_5_1": {
"default":
"75X_mcRun2_asymptotic_v3",
"fullsim_50ns":
"75X_mcRun2_startup_v3"},
107 "CMSSW_7_5_1_71XGENSIM": {
"default":
"75X_mcRun2_asymptotic_v3_gs7118",
"fullsim_50ns":
"75X_mcRun2_startup_v3_gs7118"},
108 "CMSSW_7_5_2": {
"default":
"75X_mcRun2_asymptotic_v5",
"fullsim_50ns":
"75X_mcRun2_startup_v4"},
109 "CMSSW_7_6_0_pre1": {
"default":
"75X_mcRun2_asymptotic_v1",
"fullsim_50ns":
"75X_mcRun2_startup_v1"},
110 "CMSSW_7_6_0_pre2": {
"default":
"75X_mcRun2_asymptotic_v2",
"fullsim_50ns":
"75X_mcRun2_startup_v2"},
111 "CMSSW_7_6_0_pre3": {
"default":
"75X_mcRun2_asymptotic_v2",
"fullsim_50ns":
"75X_mcRun2_startup_v2"},
112 "CMSSW_7_6_0_pre4": {
"default":
"76X_mcRun2_asymptotic_v1",
"fullsim_50ns":
"76X_mcRun2_startup_v1"},
113 "CMSSW_7_6_0_pre5": {
"default":
"76X_mcRun2_asymptotic_v1",
"fullsim_50ns":
"76X_mcRun2_startup_v1"},
114 "CMSSW_7_6_0_pre6": {
"default":
"76X_mcRun2_asymptotic_v4",
"fullsim_50ns":
"76X_mcRun2_startup_v4"},
115 "CMSSW_7_6_0_pre7": {
"default":
"76X_mcRun2_asymptotic_v5",
"fullsim_50ns":
"76X_mcRun2_startup_v5",
"fastsim":
"76X_mcRun2_asymptotic_v5_resub"},
116 "CMSSW_7_6_0": {
"default":
"76X_mcRun2_asymptotic_v11",
"fullsim_50ns":
"76X_mcRun2_startup_v11"},
117 "CMSSW_7_6_0_71XGENSIM": {
"default":
"76X_mcRun2_asymptotic_v11_gs7120p2rlBS",
"fullsim_50ns":
"76X_mcRun2_startup_v11_gs7120p2rlBS"},
118 "CMSSW_7_6_2": {
"default":
"76X_mcRun2_asymptotic_v12",
"fullsim_50ns":
"76X_mcRun2_startup_v11"},
119 "CMSSW_7_6_3_patch2_0T": {
"default":
"76X_mcRun2_0T_v1_0Tv1GT"},
120 "CMSSW_8_0_0_pre1": {
"default":
"76X_mcRun2_asymptotic_v11",
"fullsim_50ns":
"76X_mcRun2_startup_v11"},
121 "CMSSW_8_0_0_pre2": {
"default":
"76X_mcRun2_asymptotic_v12",
"fullsim_50ns":
"76X_mcRun2_startup_v11"},
122 "CMSSW_8_0_0_pre2_phase1": {
"default":
"76X_upgrade2017_design_v7"},
123 "CMSSW_8_0_0_pre2_phase1_rereco": {
"default":
"76X_upgrade2017_design_v7_rereco"},
124 "CMSSW_8_0_0_pre3_phase1": {
"default":
"76X_upgrade2017_design_v8"},
125 "CMSSW_8_0_0_pre3_phase1_pythia8": {
"default":
"76X_upgrade2017_design_v8_pythia8"},
126 "CMSSW_8_0_0_pre4": {
"default":
"76X_mcRun2_asymptotic_v13",
"fullsim_50ns":
"76X_mcRun2_startup_v12"},
127 "CMSSW_8_0_0_pre4_phase1": {
"default":
"76X_upgrade2017_design_v8_UPG17"},
128 "CMSSW_8_0_0_pre4_phase1_13TeV": {
"default":
"76X_upgrade2017_design_v8_UPG17"},
129 "CMSSW_8_0_0_pre4_ecal15fb": {
"default":
"80X_mcRun2_asymptotic_2016EcalTune_15fb_v0_ecal15fbm1"},
130 "CMSSW_8_0_0_pre4_ecal30fb": {
"default":
"80X_mcRun2_asymptotic_2016EcalTune_30fb_v0_ecal30fbm1"},
131 "CMSSW_8_0_0_pre5": {
"default":
"80X_mcRun2_asymptotic_v1",
"fullsim_50ns":
"80X_mcRun2_startup_v1"},
132 "CMSSW_8_0_0_pre5_phase1": {
"default":
"80X_upgrade2017_design_v1_UPG17"},
133 "CMSSW_8_0_0_pre6": {
"default":
"80X_mcRun2_asymptotic_v4"},
134 "CMSSW_8_0_0_pre6_phase1": {
"default":
"80X_upgrade2017_design_v3_UPG17"},
135 "CMSSW_8_0_0_pre6_MT": {
"default":
"80X_mcRun2_asymptotic_v4_multiCoreResub"},
136 "CMSSW_8_0_0": {
"default":
"80X_mcRun2_asymptotic_v4"},
137 "CMSSW_8_0_0_patch1_phase1": {
"default":
"80X_upgrade2017_design_v4_UPG17"},
138 "CMSSW_8_0_0_patch1_phase1_rereco": {
"default":
"80X_upgrade2017_design_v4_UPG17_rereco"},
139 "CMSSW_8_0_0_patch2": {
"default":
"80X_mcRun2_asymptotic_v5_refGT"},
140 "CMSSW_8_0_0_patch2_pixDynIneff": {
"default":
"80X_mcRun2_asymptotic_v5_2016PixDynIneff_targetGT"},
143 "CMSSW_8_0_0_patch2": {
"default":
"80X_mcRun2_asymptotic_v5_refGT_resub"},
144 "CMSSW_8_0_0_patch2_pixDynIneff": {
"default":
"80X_mcRun2_asymptotic_v5_2016PixDynIneff_targetGT_resub"},
145 "CMSSW_8_0_1": {
"default":
"80X_mcRun2_asymptotic_v6"},
146 "CMSSW_8_0_1_71XGENSIM": {
"default":
"80X_mcRun2_asymptotic_v6_gs7120p2"},
147 "CMSSW_8_0_1_gcc530": {
"default":
"80X_mcRun2_asymptotic_v6_gcc530"},
148 "CMSSW_8_0_3_71XGENSIM": {
"default":
"80X_mcRun2_asymptotic_2016_v3_gs7120p2NewGTv3"},
149 "CMSSW_8_0_3_71XGENSIM_hcal": {
"default":
"80X_mcRun2_asymptotic_2016_v3_gs71xNewGtHcalCust"},
150 "CMSSW_8_0_3_71XGENSIM_tec": {
"default":
"80X_mcRun2_asymptotic_SiStripBad_TEC_CL62_for2016_v1_mc_gs7120p2TrkCoolLoop"},
151 "CMSSW_8_0_5": {
"default":
"80X_mcRun2_asymptotic_v12_gs7120p2",
"fastsim":
"80X_mcRun2_asymptotic_v12"},
152 "CMSSW_8_0_5_pmx": {
"default":
"80X_mcRun2_asymptotic_v12_gs7120p2_resub",
"fastsim":
"80X_mcRun2_asymptotic_v12"},
153 "CMSSW_8_0_10": {
"default":
"80X_mcRun2_asymptotic_v14"},
154 "CMSSW_8_0_10_patch1_BS": {
"default":
"80X_mcRun2_asymptotic_RealisticBS_25ns_13TeV2016_v1_mc_realisticBS2016"},
155 "CMSSW_8_0_11": {
"default":
"80X_mcRun2_asymptotic_v14"},
156 "CMSSW_8_0_15": {
"default":
"80X_mcRun2_asymptotic_v16_gs7120p2",
"fastsim":
"80X_mcRun2_asymptotic_v16"},
157 "CMSSW_8_0_16": {
"default":
"80X_mcRun2_asymptotic_v16_gs7120p2",
"fastsim":
"80X_mcRun2_asymptotic_v16"},
158 "CMSSW_8_0_16_Tranche4GT": {
"default":
"80X_mcRun2_asymptotic_2016_TrancheIV_v0_gs7120p2_Tranch4GT",
159 "fastsim": {
"default":
"80X_mcRun2_asymptotic_2016_TrancheIV_v0_Tranch4GT",
"RelValTTbar":
"80X_mcRun2_asymptotic_2016_TrancheIV_v0_Tr4GT_resub"},
"fastsim_25ns":
"80X_mcRun2_asymptotic_2016_TrancheIV_v0_Tranch4GT"},
160 "CMSSW_8_0_16_Tranche4GT_v2": {
"default":
"80X_mcRun2_asymptotic_2016_TrancheIV_v2_Tr4GT_v2"},
161 "CMSSW_8_0_16_Tranche4GT_pmx": {
"default":
"80X_mcRun2_asymptotic_2016_TrancheIV_v0_gs7120p2_Tranch4GT",
"fastsim":
"80X_mcRun2_asymptotic_2016_TrancheIV_v0_resub"},
162 "CMSSW_8_0_19_Tranche4GT_v2": {
"default":
"80X_mcRun2_asymptotic_2016_TrancheIV_v2_Tr4GT_v2"},
163 "CMSSW_8_0_20_Tranche4GT": {
"default":
"80X_mcRun2_asymptotic_2016_TrancheIV_v4_Tr4GT_v4"},
164 "CMSSW_8_0_21_Tranche4GT": {
"default":
"80X_mcRun2_asymptotic_2016_TrancheIV_v6_Tr4GT_v6"},
165 "CMSSW_8_1_0_pre1": {
"default":
"80X_mcRun2_asymptotic_v6"},
166 "CMSSW_8_1_0_pre1_phase1": {
"default":
"80X_upgrade2017_design_v4_UPG17",
"fullsim_25ns":
"80X_upgrade2017_design_v4_UPG17PU35"},
167 "CMSSW_8_1_0_pre2": {
"default":
"80X_mcRun2_asymptotic_v10_gs810pre2",
"fastsim":
"80X_mcRun2_asymptotic_v10"},
168 "CMSSW_8_1_0_pre2_phase1": {
"default":
"80X_upgrade2017_design_v9_UPG17designGT",
"fullsim_25ns":
"80X_upgrade2017_design_v9_UPG17PU35designGT"},
169 "CMSSW_8_1_0_pre2_phase1_realGT": {
"default":
"80X_upgrade2017_realistic_v1_UPG17realGT",
"fullsim_25ns":
"80X_upgrade2017_realistic_v1_UPG17PU35realGT"},
170 "CMSSW_8_1_0_pre3": {
"default":
"80X_mcRun2_asymptotic_v12"},
171 "CMSSW_8_1_0_pre3_phase1": {
"default":
"80X_upgrade2017_realistic_v3_UPG17",
"fullsim_25ns":
"80X_upgrade2017_realistic_v3_UPG17PU35"},
172 "CMSSW_8_1_0_pre4": {
"default":
"80X_mcRun2_asymptotic_v13"},
173 "CMSSW_8_1_0_pre4_phase1": {
"default":
"80X_upgrade2017_realistic_v4_UPG17",
"fullsim_25ns":
"80X_upgrade2017_realistic_v4_UPG17PU35"},
174 "CMSSW_8_1_0_pre5": {
"default":
"80X_mcRun2_asymptotic_v13"},
175 "CMSSW_8_1_0_pre5_phase1": {
"default":
"80X_upgrade2017_realistic_v4_resubUPG17",
"fullsim_25ns":
"80X_upgrade2017_realistic_v4_resubUPG17PU35"},
176 "CMSSW_8_1_0_pre6": {
"default":
"80X_mcRun2_asymptotic_v14"},
177 "CMSSW_8_1_0_pre6_phase1": {
"default":
"81X_upgrade2017_realistic_v0_UPG17",
"fullsim_25ns":
"81X_upgrade2017_realistic_v0_UPG17PU35"},
178 "CMSSW_8_1_0_pre7": {
"default":
"81X_mcRun2_asymptotic_v0"},
179 "CMSSW_8_1_0_pre7_phase1": {
"default":
"81X_upgrade2017_realistic_v2_UPG17",
"fullsim_25ns":
"81X_upgrade2017_realistic_v2_UPG17PU35"},
180 "CMSSW_8_1_0_pre7_phase1_newGT": {
"default":
"81X_upgrade2017_realistic_v3_UPG17newGT",
"fullsim_25ns":
"81X_upgrade2017_realistic_v3_UPG17PU35newGTresub"},
181 "CMSSW_8_1_0_pre7_phase2": {
"2023GReco":
"81X_mcRun2_asymptotic_v0_2023GReco",
"2023GRecoPU35":
"",
"2023GRecoPU140":
"81X_mcRun2_asymptotic_v0_2023GRecoPU140resubmit2",
"2023GRecoPU200":
"81X_mcRun2_asymptotic_v0_2023GRecoPU200resubmit2",
182 "2023tilted":
"81X_mcRun2_asymptotic_v0_2023tilted",
"2023tiltedPU35":
"",
"2023tiltedPU140":
"81X_mcRun2_asymptotic_v0_2023tiltedPU140resubmit2",
"2023tiltedPU200":
"81X_mcRun2_asymptotic_v0_2023tiltedPU200resubmit2"},
183 "CMSSW_8_1_0_pre8": {
"default":
"81X_mcRun2_asymptotic_v1"},
184 "CMSSW_8_1_0_pre8_phase1": {
"default":
"81X_upgrade2017_realistic_v3_UPG17",
"fullsim_25ns":
"81X_upgrade2017_realistic_v3_UPG17PU35"},
185 "CMSSW_8_1_0_pre8_phase1_newGT": {
"default":
"81X_upgrade2017_realistic_v4_UPG17newGT",
"fullsim_25ns":
"81X_upgrade2017_realistic_v4_UPG17PU35newGT"},
186 "CMSSW_8_1_0_pre8_phase1_newGT2": {
"default":
"81X_upgrade2017_realistic_v5_UPG17newGTset2",
"fullsim_25ns":
"81X_upgrade2017_realistic_v5_UPG17PU35newGTset2"},
187 "CMSSW_8_1_0_pre8_phase2": {
"2023GReco":
"81X_mcRun2_asymptotic_v1_resub2023GReco",
"2023GRecoPU35":
"81X_mcRun2_asymptotic_v1_resub2023GRecoPU35",
"2023GRecoPU140":
"81X_mcRun2_asymptotic_v1_resub2023GRecoPU140",
"2023GRecoPU200":
"81X_mcRun2_asymptotic_v1_resub2023GRecoPU200",
188 "2023tilted":
"81X_mcRun2_asymptotic_v1_2023tilted",
"2023tiltedPU35":
"81X_mcRun2_asymptotic_v1_2023tiltedPU",
"2023tiltedPU140":
"81X_mcRun2_asymptotic_v1_2023tiltedPU140",
"2023tiltedPU200":
"81X_mcRun2_asymptotic_v1_2023tiltedPU200"},
189 "CMSSW_8_1_0_pre9": {
"default":
"81X_mcRun2_asymptotic_v2"},
190 "CMSSW_8_1_0_pre9_Geant4102": {
"default":
"81X_mcRun2_asymptotic_v2"},
191 "CMSSW_8_1_0_pre9_phase1": {
"default":
"81X_upgrade2017_realistic_v5_UPG17",
"fullsim_25ns":
"81X_upgrade2017_realistic_v5_UPG17PU35"},
192 "CMSSW_8_1_0_pre9_phase1_newGT": {
"default":
"81X_upgrade2017_realistic_v6_UPG17newGT",
"fullsim_25ns":
"81X_upgrade2017_realistic_v6_UPG17PU35newGT"},
193 "CMSSW_8_1_0_pre10": {
"default":
"81X_mcRun2_asymptotic_v5_recycle",
"fullsim_25ns":
"81X_mcRun2_asymptotic_v5_resub",
"fastsim":
"81X_mcRun2_asymptotic_v5"},
194 "CMSSW_8_1_0_pre10_pmx": {
"default":
"81X_mcRun2_asymptotic_v5"},
195 "CMSSW_8_1_0_pre10_phase1": {
"default":
"81X_upgrade2017_realistic_v9_UPG17resub",
"fullsim_25ns":
"81X_upgrade2017_realistic_v9_UPG17PU35resub"},
196 "CMSSW_8_1_0_pre11": {
"default":
"81X_mcRun2_asymptotic_Candidate_2016_08_30_11_31_55",
"fullsim_25ns":
"81X_mcRun2_asymptotic_Candidate_2016_08_30_11_31_55_resub",
"fastsim_25ns":
"81X_mcRun2_asymptotic_Candidate_2016_08_30_11_31_55_resub2"},
197 "CMSSW_8_1_0_pre11_pmx": {
"default":
"81X_mcRun2_asymptotic_Candidate_2016_08_30_11_31_55"},
198 "CMSSW_8_1_0_pre11_phase1": {
"default":
"81X_upgrade2017_realistic_v9_UPG17",
"fullsim_25ns":
"81X_upgrade2017_realistic_v9_UPG17PU35"},
199 "CMSSW_8_1_0_pre12": {
"default":
"81X_mcRun2_asymptotic_v8",
"fullsim_25ns":
"81X_mcRun2_asymptotic_v8_resub",
"fastsim":
"81X_mcRun2_asymptotic_v8_resub",
"fastsim_25ns":
"81X_mcRun2_asymptotic_v8"},
200 "CMSSW_8_1_0_pre12_pmx": {
"default":
"81X_mcRun2_asymptotic_v8_resub",
"fastsim_25ns":
"81X_mcRun2_asymptotic_v8_rsub"},
201 "CMSSW_8_1_0_pre12_phase1": {
"default":
"81X_upgrade2017_realistic_v13"},
202 "CMSSW_8_1_0_pre12_phase1_newBPix": {
"default":
"81X_upgrade2017_realistic_newBPix_wAlign_v1_BpixGeom"},
203 "CMSSW_8_1_0_pre12_phase1_newBPixFPix": {
"default":
"81X_upgrade2017_realistic_v13_BpixFpixGeom"},
204 "CMSSW_8_1_0_pre12_phase1_newBPixFPixHCAL": {
"default":
"81X_upgrade2017_HCALdev_v2_BpixFpixHcalGeom"},
205 "CMSSW_8_1_0_pre12_phase1_newHCAL": {
"default":
"81X_upgrade2017_HCALdev_v2_HcalGeom"},
206 "CMSSW_8_1_0_pre12_phase1_newBPixHCAL": {
"default":
"81X_upgrade2017_HCALdev_v2_NewBPix_BpixHcalGeom"},
207 "CMSSW_8_1_0_pre15": {
"default":
"81X_mcRun2_asymptotic_v11"},
208 "CMSSW_8_1_0_pre15_HIP": {
"default":
"81X_mcRun2_asymptotic_v11_hip"},
209 "CMSSW_8_1_0_pre15_PU": {
"default":
"81X_mcRun2_asymptotic_v11_M17"},
210 "CMSSW_8_1_0_pre15_PU_HIP": {
"default":
"81X_mcRun2_asymptotic_v11_hipM17"},
211 "CMSSW_8_1_0_pre15_phase1": {
"default":
"81X_upgrade2017_realistic_v17_BpixFpixHcalGeom",
212 "Design":
"81X_upgrade2017_design_IdealBS_v1_2017design",
"Design_fullsim_25ns":
"81X_upgrade2017_design_IdealBS_v1_design"},
213 "CMSSW_8_1_0_pre16": {
"default":
"81X_mcRun2_asymptotic_v11"},
214 "CMSSW_8_1_0_pre16_phase1": {
"default":
"81X_upgrade2017_realistic_v22",
"Design":
"81X_upgrade2017_design_IdealBS_v6"},
215 "CMSSW_8_1_0": {
"default":
"81X_mcRun2_asymptotic_v12"},
216 "CMSSW_8_1_0_phase1": {
"default":
"81X_upgrade2017_realistic_v26_HLT2017"},
217 "CMSSW_9_0_0_pre1": {
"default":
"90X_mcRun2_asymptotic_v0"},
218 "CMSSW_9_0_0_pre1_phase1": {
"default":
"90X_upgrade2017_realistic_v0",
219 "Design":
"90X_upgrade2017_design_IdealBS_v0",
"Design_fullsim_25ns":
"90X_upgrade2017_design_IdealBS_v0_resub"},
220 "CMSSW_9_0_0_pre2": {
"default":
"90X_mcRun2_asymptotic_v0"},
221 "CMSSW_9_0_0_pre2_ROOT6": {
"default":
"90X_mcRun2_asymptotic_v0"},
222 "CMSSW_9_0_0_pre2_phase1": {
"default":
"90X_upgrade2017_realistic_v0",
223 "Design":
"90X_upgrade2017_design_IdealBS_v0",
"Design_fullsim_25ns":
"90X_upgrade2017_design_IdealBS_v0_resub"},
224 "CMSSW_9_0_0_pre4": {
"default":
"90X_mcRun2_asymptotic_v1",
"fullsim_25ns":
"90X_mcRun2_asymptotic_v1_resub"},
225 "CMSSW_9_0_0_pre4_phase1": {
"default":
"90X_upgrade2017_realistic_v6",
"fullsim_25ns_PU50":
"Nonexistent",
226 "Design":
"90X_upgrade2017_design_IdealBS_v6"},
227 "CMSSW_9_0_0_pre4_GS": {
"default":
"90X_mcRun2_asymptotic_v1_GSval",
"fullsim_25ns":
"90X_mcRun2_asymptotic_v1_GSval"},
228 "CMSSW_9_0_0_pre4_phase1_ecalsrb5": {
"default":
"90X_upgrade2017_realistic_v6_B5"},
229 "CMSSW_9_0_0_pre4_phase1_ecalsrc1": {
"default":
"90X_upgrade2017_realistic_v6_C1"},
230 "CMSSW_9_0_0_pre4_phase1_ecalsrd7": {
"default":
"90X_upgrade2017_realistic_v6_D7"},
231 "CMSSW_9_0_0_pre5": {
"default":
"90X_mcRun2_asymptotic_v4"},
232 "CMSSW_9_0_0_pre5_pmx": {
"default":
"90X_mcRun2_asymptotic_v4",
"fastsim_25ns":
"90X_mcRun2_asymptotic_v4_resub"},
233 "CMSSW_9_0_0_pre5_phase1": {
"default":
"90X_upgrade2017_realistic_v15",
234 "fullsim_25ns_PU35":
"90X_upgrade2017_realistic_v15_resub",
"fullsim_25ns_PU50":
"90X_upgrade2017_realistic_v15_PU50",
235 "Design":
"90X_upgrade2017_design_IdealBS_v15"},
236 "CMSSW_9_0_0_pre6": {
"default":
"90X_mcRun2_asymptotic_v4"},
237 "CMSSW_9_0_0_pre6_phase1": {
"default":
"90X_upgrade2017_realistic_v15",
238 "fullsim_25ns_PU50":
"90X_upgrade2017_realistic_v15_PU50",
239 "Design":
"90X_upgrade2017_design_IdealBS_v15"},
240 "CMSSW_9_0_0": {
"default":
"90X_mcRun2_asymptotic_v5"},
241 "CMSSW_9_0_0_phase1": {
"default":
"90X_upgrade2017_realistic_v20_resub",
242 "fullsim_25ns_PU50":
"90X_upgrade2017_realistic_v20_PU50_resub",
243 "Design":
"90X_upgrade2017_design_IdealBS_v19_resub"},
244 "CMSSW_9_0_0_gcc630": {
"default":
"90X_mcRun2_asymptotic_v5_gcc630"},
245 "CMSSW_9_0_0_phase1_gcc630": {
"default":
"90X_upgrade2017_realistic_v20_gcc630"},
246 "CMSSW_9_0_0_cc7": {
"default":
"90X_mcRun2_asymptotic_v5_cc7"},
247 "CMSSW_9_0_0_phase1_cc7": {
"default":
"90X_upgrade2017_realistic_v20_cc7_rsb"},
248 "CMSSW_9_0_2_phase1": {
"default":
"90X_upgrade2017_realistic_v20",
249 "fullsim_25ns_PU50":
"90X_upgrade2017_realistic_v20_PU50",
250 "Design":
"90X_upgrade2017_design_IdealBS_v19"},
251 "CMSSW_9_1_0_pre1": {
"default":
"90X_mcRun2_asymptotic_v5"},
252 "CMSSW_9_1_0_pre1_phase1": {
"default":
"90X_upgrade2017_realistic_v20",
253 "fullsim_25ns_PU50":
"90X_upgrade2017_realistic_v20_PU50",
254 "Design":
"90X_upgrade2017_design_IdealBS_v19_resub"},
255 "CMSSW_9_1_0_pre2": {
"default":
"90X_mcRun2_asymptotic_v5"},
256 "CMSSW_9_1_0_pre2_phase1": {
"default":
"90X_upgrade2017_realistic_v20",
257 "fullsim_25ns_PU50":
"90X_upgrade2017_realistic_v20_PU50",
258 "Design":
"90X_upgrade2017_design_IdealBS_v19"},
259 "CMSSW_9_1_0_pre3": {
"default":
"91X_mcRun2_asymptotic_v2"},
260 "CMSSW_9_1_0_pre3_phase1": {
"default":
"91X_upgrade2017_realistic_v3",
261 "fullsim_25ns_PU50":
"91X_upgrade2017_realistic_v3_PU50_resub",
262 "Design":
"91X_upgrade2017_design_IdealBS_v3"},
263 "CMSSW_9_2_0": {
"default":
"91X_mcRun2_asymptotic_v3"},
264 "CMSSW_9_2_0_phase1": {
"default":
"91X_upgrade2017_realistic_v5",
265 "fullsim_25ns_PU50":
"91X_upgrade2017_realistic_v5_PU50",
266 "Design":
"91X_upgrade2017_design_IdealBS_v5"},
267 "CMSSW_9_2_0_phase1_PXmap": {
"default":
"91X_upgrade2017_realistic_v5_pixel_ideal_PXgeom"},
268 "CMSSW_9_2_1_phase1": {
"default":
"92X_upgrade2017_realistic_v1",
269 "fullsim_25ns_PU50":
"92X_upgrade2017_realistic_v1_PU50",
270 "Design":
"92X_upgrade2017_design_IdealBS_v1"},
271 "CMSSW_9_2_2": {
"default":
"91X_mcRun2_asymptotic_v3"},
272 "CMSSW_9_2_2_phase1": {
"default":
"92X_upgrade2017_realistic_v1",
273 "fullsim_25ns_PU50":
"92X_upgrade2017_realistic_v1_highPU_AVE50",
274 "Design":
"92X_upgrade2017_design_IdealBS_v1"},
275 "CMSSW_9_2_4_run1": {
"default":
"91X_mcRun1_realistic_v2"},
276 "CMSSW_9_2_4": {
"default":
"91X_mcRun2_asymptotic_v3"},
277 "CMSSW_9_2_7_phase1": {
"default":
"92X_upgrade2017_realistic_v7"},
278 "CMSSW_9_3_0_pre1": {
"default":
"92X_mcRun2_asymptotic_v2"},
279 "CMSSW_9_3_0_pre1_phase1": {
"default":
"92X_upgrade2017_realistic_v7",
280 "fullsim_25ns_PU50":
"92X_upgrade2017_realistic_v7_highPU_AVE50",
281 "Design":
"92X_upgrade2017_design_IdealBS_v7"},
282 "CMSSW_9_3_0_pre1_run1": {
"default":
"92X_mcRun1_realistic_v2"},
283 "CMSSW_9_3_0_pre2": {
"default":
"92X_mcRun2_asymptotic_v2"},
284 "CMSSW_9_3_0_pre2_phase1": {
"default":
"92X_upgrade2017_realistic_v7",
285 "fullsim_25ns_PU50":
"92X_upgrade2017_realistic_v7_highPU_AVE50_resub",
286 "Design":
"92X_upgrade2017_design_IdealBS_v7"},
287 "CMSSW_9_3_0_pre3": {
"default":
"92X_mcRun2_asymptotic_v2"},
288 "CMSSW_9_3_0_pre3_phase1": {
"default":
"92X_upgrade2017_realistic_v10_resub",
289 "fullsim_25ns_PU50":
"92X_upgrade2017_realistic_v10_highPU_AVE50_resub",
290 "Design":
"92X_upgrade2017_design_IdealBS_v10_resub"},
291 "CMSSW_9_3_0_pre3_phase1_pmx": {
"default":
"92X_upgrade2017_realistic_v10_resub2"},
292 "CMSSW_9_3_0_pre4": {
"default":
"93X_mcRun2_asymptotic_v0"},
293 "CMSSW_9_3_0_pre4_phase1": {
"default":
"93X_mc2017_realistic_v1",
294 "fullsim_25ns_PU50":
"93X_mc2017_realistic_v1_highPU_AVE50",
295 "Design":
"93X_mc2017_design_IdealBS_v1"},
296 "CMSSW_9_3_0_pre5": {
"default":
"93X_mcRun2_asymptotic_v0"},
297 "CMSSW_9_3_0_pre5_phase1": {
"default":
"93X_mc2017_realistic_v2",
298 "fullsim_25ns_PU50":
"93X_mc2017_realistic_v2_highPU_AVE50",
299 "Design":
"93X_mc2017_design_IdealBS_v2"},
300 "CMSSW_9_4_0_pre1": {
"default":
"93X_mcRun2_asymptotic_v1"},
301 "CMSSW_9_4_0_pre1_phase1": {
"default":
"93X_mc2017_realistic_v3",
302 "fullsim_25ns_PU50":
"93X_mc2017_realistic_v3_highPU_AVE50",
303 "Design":
"93X_mc2017_design_IdealBS_v3"},
304 "CMSSW_9_4_0_pre2": {
"default":
"93X_mcRun2_asymptotic_v2"},
305 "CMSSW_9_4_0_pre2_phase1": {
"default":
"94X_mc2017_realistic_v1",
306 "fullsim_25ns_PU50":
"94X_mc2017_realistic_v1_highPU_AVE50",
307 "Design":
"94X_mc2017_design_IdealBS_v0"},
308 "CMSSW_9_4_0_pre3": {
"default":
"94X_mcRun2_asymptotic_v0"},
309 "CMSSW_9_4_0_pre3_phase1": {
"default":
"94X_mc2017_realistic_v4",
310 "fullsim_25ns_PU50":
"94X_mc2017_realistic_v4_highPU_AVE50",
311 "Design":
"94X_mc2017_design_IdealBS_v4"},
312 "CMSSW_9_4_0": {
"default":
"94X_mcRun2_asymptotic_v0"},
313 "CMSSW_9_4_0_phase1": {
"default":
"94X_mc2017_realistic_v10",
314 "fullsim_25ns_PU50":
"94X_mc2017_realistic_v10_highPU_AVE50",
315 "Design":
"94X_mc2017_design_IdealBS_v5"},
316 "CMSSW_10_0_0_pre1": {
"default":
"94X_mcRun2_asymptotic_v0"},
317 "CMSSW_10_0_0_pre1_phase1": {
"default":
"94X_mc2017_realistic_v10",
318 "fullsim_25ns_PU50":
"94X_mc2017_realistic_v10_highPU_AVE50",
319 "Design":
"94X_mc2017_design_IdealBS_v5"},
320 "CMSSW_10_0_0_pre2": {
"default":
"100X_mcRun2_asymptotic_v2"},
321 "CMSSW_10_0_0_pre2_2017": {
"default":
"100X_mc2017_realistic_v1",
322 "fullsim_25ns":
"100X_mc2017_realistic_v1_resub",
323 "fullsim_25ns_PU50":
"100X_mc2017_realistic_v1_highPU_AVE50",
324 "Design":
"100X_mc2017_design_IdealBS_v1",
325 "Design_fullsim_25ns_PU50":
"Does_not_exist"},
326 "CMSSW_10_0_0_pre2_2017_pmx": {
"default":
"100X_mc2017_realistic_v1"},
327 "CMSSW_10_0_0_pre2_2018": {
"default":
"100X_upgrade2018_realistic_v1",
328 "fullsim_25ns":
"100X_upgrade2018_realistic_v1_resub",
329 "Design":
"100X_upgrade2018_design_IdealBS_v1",
330 "Design_fullsim_25ns":
"100X_upgrade2018_design_IdealBS_v1_resub"},
331 "CMSSW_10_0_0_pre3": {
"default":
"100X_mcRun2_asymptotic_v2"},
332 "CMSSW_10_0_0_pre3_2017": {
"default":
"100X_mc2017_realistic_v1_mahiOFF",
333 "fullsim_25ns_PU50":
"100X_mc2017_realistic_v1_highPU_AVE50_mahiOFF",
334 "Design":
"100X_mc2017_design_IdealBS_v1_mahiOFF"},
335 "CMSSW_10_0_0_pre3_2018": {
"default":
"100X_upgrade2018_realistic_v4_mahiOFF",
336 "Design":
"100X_upgrade2018_design_IdealBS_v3_mahiOFF"},
337 "CMSSW_10_0_0_pre3_2018_pmx": {
"default":
"100X_upgrade2018_realistic_v4",
338 "Design":
"100X_upgrade2018_design_IdealBS_v3"},
339 "CMSSW_10_0_0_pre3_2017_mahi": {
"default":
"100X_mc2017_realistic_v1_mahiON",
340 "fullsim_25ns_PU50":
"100X_mc2017_realistic_v1_highPU_AVE50_mahiON",
341 "Design":
"100X_mc2017_design_IdealBS_v1_mahiON"},
342 "CMSSW_10_0_0_pre3_2018_mahi": {
"default":
"100X_upgrade2018_realistic_v4_mahiON",
343 "Design":
"100X_upgrade2018_design_IdealBS_v3_mahiON"},
344 "CMSSW_10_0_0_pre3_GEANT4_2018_mahi": {
"default":
"100X_upgrade2018_realistic_v4_mahiON"},
345 "CMSSW_10_0_0_pre3_G4VecGeom2_2018": {
"default":
"100X_upgrade2018_realistic_v4"},
348 _releasePostfixes = [
"_AlcaCSA14",
"_PHYS14",
"_TEST",
"_v2",
"_v3",
"_pmx",
"_Fall14DR",
"_FIXGT",
"_PU",
"_PXbest",
"_PXworst",
"_hcal",
"_tec",
"_71XGENSIM",
"_73XGENSIM",
"_BS",
"_GenSim_7113",
"_extended",
349 "_25ns_asymptotic",
"_50ns_startup",
"_50ns_asympref",
"_50ns_asymptotic",
"_minimal",
"_0T",
"_unsch",
"_noCCC",
"_MT",
"_GS",
"_rereco",
"_pythia8",
"_13TeV",
"_realGT",
"_newGT2",
"_newGT",
"_phase1",
"_phase2",
"_2017",
"_2018",
"_ecal15fb",
"_ecal30fb",
"_ecalsrb5",
"_ecalsrc1",
"_ecalsrd7",
"_pixDynIneff",
"_PXmap",
"_gcc530",
"_gcc630",
"_cc7",
"_Tranche4GT",
"_newBPixFPixHCAL",
"_newBPixFPix",
"_newBPixHCAL",
"_newBPix",
"_newHCAL",
"_HIP",
"_run1",
"_mahi"]
351 for pf
in _releasePostfixes:
361 sample -- Sample object 362 release -- CMSSW release string 364 if not release
in _globalTags:
365 print(
"Release %s not found from globaltag map in validation.py" % release)
367 gtmap = _globalTags[release]
369 if sample.hasOverrideGlobalTag():
370 ogt = sample.overrideGlobalTag()
372 gtmap = _globalTags[ogt[release]]
374 if sample.hasScenario():
375 scenario = sample.scenario()
378 if sample.pileupEnabled():
379 sim =
"fullsim_"+sample.pileupType()
381 sim+
"_PU%d"%sample.pileupNumber(),
384 elif sample.fastsim():
386 if sample.pileupEnabled():
387 sim +=
"_"+sample.pileupType()
388 sims.append(sim+
"_PU%d"%sample.pileupNumber())
395 selectedGT = gtmap.get(scenario+
"_"+sim,
None)
396 if selectedGT
is not None:
399 if selectedGT
is None:
400 selectedGT = gtmap.get(scenario,
None)
402 if selectedGT
is None:
404 selectedGT = gtmap.get(sim,
None)
405 if selectedGT
is not None:
408 if selectedGT
is None:
409 selectedGT = gtmap[
"default"]
411 if isinstance(selectedGT, dict):
412 return selectedGT.get(sample.name(), selectedGT[
"default"])
418 "6_2_X":
"https://cmsweb.cern.ch/dqm/relval/data/browse/ROOT/RelVal/CMSSW_6_2_x/",
419 "7_0_X":
"https://cmsweb.cern.ch/dqm/relval/data/browse/ROOT/RelVal/CMSSW_7_0_x/",
420 "7_1_X":
"https://cmsweb.cern.ch/dqm/relval/data/browse/ROOT/RelVal/CMSSW_7_1_x/",
421 "7_2_X":
"https://cmsweb.cern.ch/dqm/relval/data/browse/ROOT/RelVal/CMSSW_7_2_x/",
422 "7_3_X":
"https://cmsweb.cern.ch/dqm/relval/data/browse/ROOT/RelVal/CMSSW_7_3_x/",
423 "7_4_X":
"https://cmsweb.cern.ch/dqm/relval/data/browse/ROOT/RelVal/CMSSW_7_4_x/",
424 "7_5_X":
"https://cmsweb.cern.ch/dqm/relval/data/browse/ROOT/RelVal/CMSSW_7_5_x/",
425 "7_6_X":
"https://cmsweb.cern.ch/dqm/relval/data/browse/ROOT/RelVal/CMSSW_7_6_x/",
426 "8_0_X":
"https://cmsweb.cern.ch/dqm/relval/data/browse/ROOT/RelVal/CMSSW_8_0_x/",
427 "8_1_X":
"https://cmsweb.cern.ch/dqm/relval/data/browse/ROOT/RelVal/CMSSW_8_1_x/",
428 "9_0_X":
"https://cmsweb.cern.ch/dqm/relval/data/browse/ROOT/RelVal/CMSSW_9_0_x/",
429 "9_1_X":
"https://cmsweb.cern.ch/dqm/relval/data/browse/ROOT/RelVal/CMSSW_9_1_x/",
430 "9_2_X":
"https://cmsweb.cern.ch/dqm/relval/data/browse/ROOT/RelVal/CMSSW_9_2_x/",
431 "9_3_X":
"https://cmsweb.cern.ch/dqm/relval/data/browse/ROOT/RelVal/CMSSW_9_3_x/",
432 "9_4_X":
"https://cmsweb.cern.ch/dqm/relval/data/browse/ROOT/RelVal/CMSSW_9_4_x/",
433 "10_0_X":
"https://cmsweb.cern.ch/dqm/relval/data/browse/ROOT/RelVal/CMSSW_10_0_x/",
436 _doElectronSamples = [
438 "RelValSingleElectronPt35",
439 "RelValSingleElectronPt10",
441 _doConversionSamples = [
443 "RelValH125GGgluonfusion",
445 _doBHadronSamples = [
450 """Get RelVal download URL for a given release.""" 451 version_re = re.compile(
"CMSSW_(?P<X>\d+)_(?P<Y>\d+)")
452 m = version_re.search(release)
454 raise Exception(
"Regex %s does not match to release version %s" % (version_re.pattern, release))
455 version =
"%s_%s_X" % (m.group(
"X"), m.group(
"Y"))
456 if not version
in _relvalUrls:
457 print(
"No RelVal URL for version %s, please update _relvalUrls" % version)
459 return _relvalUrls[version]
462 if plotterFolder.onlyForPileup()
and not sample.pileupEnabled():
464 if plotterFolder.onlyForElectron()
and not sample.doElectron():
466 if plotterFolder.onlyForConversion()
and not sample.doConversion():
468 if plotterFolder.onlyForBHadron()
and not sample.doBHadron():
473 """Represents a RelVal sample.""" 474 def __init__(self, sample, append=None, midfix=None, putype=None, punum=0,
475 fastsim=
False, fastsimCorrespondingFullsimPileup=
None,
476 doElectron=
None, doConversion=
None, doBHadron=
None,
477 version=
"v1", dqmVersion=
"0001", scenario=
None, overrideGlobalTag=
None, appendGlobalTag=
""):
481 sample -- String for name of the sample 484 append -- String for a variable name within the DWM file names, to be directly appended to sample name (e.g. "HS"; default None) 485 midfix -- String for a variable name within the DQM file names, to be appended after underscore to "sample name+append" (e.g. "13", "UP15"; default None) 486 putype -- String for pileup type (e.g. "25ns"/"50ns" for FullSim, "AVE20" for FastSim; default None) 487 punum -- String for amount of pileup (default None) 488 fastsim -- Bool indicating the FastSim status (default False) 489 fastsimCorrespondingFullSimPileup -- String indicating what is the FullSim pileup sample corresponding this FastSim sample. Must be set if fastsim=True and putype!=None (default None) 490 doElectron -- Bool specifying if electron-specific plots should be produced (default depends on sample) 491 doConversion -- Bool specifying if conversion-specific plots should be produced (default depends on sample) 492 doBHadron -- Bool specifying if B-hadron-specific plots should be produced (default depends on sample) 493 version -- String for dataset/DQM file version (default "v1") 494 scenario -- Geometry scenario for upgrade samples (default None) 495 overrideGlobalTag -- GlobalTag obtained from release information (in the form of {"release": "actualRelease"}; default None) 496 appendGlobalTag -- String to append to GlobalTag (intended for one-time hacks; default "") 511 if doElectron
is not None:
515 if doConversion
is not None:
519 if doBHadron
is not None:
522 self.
_doBHadron = (sample
in _doBHadronSamples)
528 """Return a tuple uniquely identifying the sample, to be used e.g. as a key to dict""" 532 """Get the sample name""" 536 """Get the sample name""" 543 """Return True if sample has pileup (for HTML generation)""" 544 return self.
_putype is not None 547 """Return True if pileup plots are enabled (for plot generation)""" 551 """Return "PU"/"noPU" corresponding the pileup status""" 558 """Return the pileup type""" 559 if isinstance(self.
_putype, dict):
560 return self._putype.get(release, self.
_putype[
"default"])
578 return self._version.get(release, self.
_version[
"default"])
595 """Return True for FastSim sample""" 599 """Return True for FullSim sample""" 605 def dirname(self, newRepository, newRelease, newSelection):
606 """Return the output directory name 609 newRepository -- String for base directory for output files 610 newRelease -- String for CMSSW release 611 newSelection -- String for histogram selection 616 return "{newRepository}/{newRelease}/{newSelection}{pileup}/{sample}".
format(
617 newRepository=newRepository, newRelease=newRelease, newSelection=newSelection,
618 pileup=pileup, sample=sample)
621 """Return the DQM file name 624 newRelease -- String for CMSSW release 649 fname =
'DQM_V{dqmVersion}_R000000001__{sample}{midfix}__{newrelease}-{pileup}{globaltag}{appendGlobalTag}{fastsim}-{version}__DQMIO.root'.
format(
650 sample=sample, midfix=midfix, newrelease=
_stripRelease(newRelease),
651 pileup=pileup, globaltag=globalTag, appendGlobalTag=self.
_appendGlobalTag, fastsim=fastsim,
658 """Return the dataset pattern 661 newRelease -- String for CMSSW release 669 fastsim =
"_FastSim-" 674 return "{sample}/{newrelease}-{pileup}{globaltag}{fastsim}{version}/GEN-SIM-{digi}RECO".
format(
675 sample=self.
_sample, newrelease=newRelease,
676 pileup=pileup, globaltag=globalTag, fastsim=fastsim, digi=digi,
677 version=self.
version(newRelease)
681 """Base class for Tracking/Vertex validation.""" 682 def __init__(self, fullsimSamples, fastsimSamples, refRelease, refRepository, newRelease, newRepository, newFileModifier=None, selectionName=""):
686 fullsimSamples -- List of Sample objects for FullSim samples (may be empty) 687 fastsimSamples -- List of Sample objects for FastSim samples (may be empty) 688 refRelease -- String for reference CMSSW release (can be None for no reference release) 689 newRepository -- String for directory whete to put new files 690 newRelease -- CMSSW release to be validated 691 refRepository -- String for directory where reference root files are 692 newFileModifier -- If given, a function to modify the names of the new files (function takes a string and returns a string) 693 selectionName -- If given, use this string as the selection name (appended to GlobalTag for directory names) 698 print(
'Error: CMSSW environment variables are not available.', file=sys.stderr)
699 print(
' Please run cmsenv', file=sys.stderr)
718 """Download DQM files. Requires grid certificate and asks your password for it.""" 722 filenames = [f
for f
in filenames
if not os.path.exists(f)]
723 if len(filenames) == 0:
724 print(
"All files already downloaded")
728 urls = [relvalUrl+f
for f
in filenames]
729 certfile = os.path.join(os.environ[
"HOME"],
".globus",
"usercert.pem")
730 if not os.path.exists(certfile):
731 print(
"Certificate file {certfile} does not exist, unable to download RelVal files from {url}".
format(certfile=certfile, url=relvalUrl))
733 keyfile = os.path.join(os.environ[
"HOME"],
".globus",
"userkey.pem")
734 if not os.path.exists(certfile):
735 print(
"Private key file {keyfile} does not exist, unable to download RelVal files from {url}".
format(keyfile=keyfile, url=relvalUrl))
739 cmd = [
"curl",
"--cert-type",
"PEM",
"--cert", certfile,
"--key", keyfile,
"-k"]
741 cmd.extend([
"-O", u])
742 print(
"Downloading %d files from RelVal URL %s:" % (len(filenames), relvalUrl))
744 print(
"Please provide your private key pass phrase when curl asks it")
745 ret = subprocess.call(cmd)
747 print(
"Downloading failed with exit code %d" % ret)
753 p = subprocess.Popen([
"file", f], stdout=subprocess.PIPE)
754 stdout = p.communicate()[0]
755 if p.returncode != 0:
756 print(
"file command failed with exit code %d" % p.returncode)
758 if not "ROOT" in stdout:
759 print(
"File {f} is not ROOT, please check the correct version, GlobalTag etc. from {url}".
format(f=f, url=relvalUrl))
761 if os.path.exists(f):
769 def doPlots(self, plotter, plotterDrawArgs={}, limitSubFoldersOnlyTo=None, htmlReport=html.HtmlReportDummy(), doFastVsFull=
True, doPhase2PU=
False):
770 """Create validation plots. 773 plotter -- plotting.Plotter object that does the plotting 776 plotterDrawArgs -- Dictionary for additional arguments to Plotter.draw() (default: {}) 777 limitSubFoldersOnlyTo -- If not None, should be a dictionary from string to an object. The string is the name of a PlotFolder, and the object is PlotFolder-type specific to limit the subfolders to be processed. In general case the object is a list of strings, but e.g. for track iteration plots it is a function taking the algo and quality as parameters. 778 htmlReport -- Object returned by createHtmlReport(), in case HTML report generation is desired 779 doFastVsFull -- Do FastSim vs. FullSim comparison? (default: True) 780 doPhase2PU -- Do Phase2 PU 200 vs. 140 comparison (default: False) 789 if not os.path.exists(harvestedFile):
790 print(
"Harvested file %s does not exist!" % harvestedFile)
793 plotterInstance = plotter.readDirs(harvestedFile)
794 htmlReport.beginSample(sample)
795 for plotterFolder, dqmSubFolder
in plotterInstance.iterFolders(limitSubFoldersOnlyTo=limitSubFoldersOnlyTo):
798 plotFiles = self.
_doPlots(sample, harvestedFile, plotterFolder, dqmSubFolder, htmlReport)
799 htmlReport.addPlots(plotterFolder, dqmSubFolder, plotFiles)
811 correspondingFull =
None 813 if fast.name() != full.name():
815 if fast.pileupEnabled():
816 if not full.pileupEnabled():
818 if fast.fastsimCorrespondingFullsimPileup() != full.pileupType():
821 if full.pileupEnabled():
824 if correspondingFull
is None:
825 correspondingFull = full
827 raise Exception(
"Got multiple compatible FullSim samples for FastSim sample %s %s" % (fast.name(), fast.pileup()))
828 if correspondingFull
is None:
829 print(
"WARNING: Did not find compatible FullSim sample for FastSim sample %s %s, omitting FastSim vs. FullSim comparison" % (fast.name(), fast.pileup()))
834 plotterInstance = self._plotter.readDirs(harvestedFile)
835 htmlReport.beginSample(fast, fastVsFull=
True)
836 for plotterFolder, dqmSubFolder
in plotterInstance.iterFolders(limitSubFoldersOnlyTo=limitSubFoldersOnlyTo):
839 plotFiles = self.
_doPlotsFastFull(fast, correspondingFull, plotterFolder, dqmSubFolder, htmlReport)
840 htmlReport.addPlots(plotterFolder, dqmSubFolder, plotFiles)
843 def _stripScenario(name):
844 puindex = name.find(
"PU")
847 return name[:puindex]
851 if sample.pileupNumber() == 140:
852 key = (sample.name(), _stripScenario(sample.scenario()))
853 if key
in pu140samples:
854 raise Exception(
"Duplicate entry for sample %s in scenario %s" % (sample.name(), sample.scenar()))
855 pu140samples[key] = sample
858 if sample.pileupNumber() != 200:
860 key = (sample.name(), _stripScenario(sample.scenario()))
861 if not key
in pu140samples:
864 sample_pu140 = pu140samples[key]
868 plotterInstance = self._plotter.readDirs(harvestedFile)
869 htmlReport.beginSample(sample, pileupComparison=
"vs. PU140")
870 for plotterFolder, dqmSubFolder
in plotterInstance.iterFolders(limitSubFoldersOnlyTo=limitSubFoldersOnlyTo):
873 plotFiles = self.
_doPlotsPileup(sample_pu140, sample, plotterFolder, dqmSubFolder, htmlReport)
874 htmlReport.addPlots(plotterFolder, dqmSubFolder, plotFiles)
882 def _createRefSelection(selectionName):
883 sel = refGlobalTag+selectionNameBase+selectionName
884 if sample.pileupEnabled():
889 refSelection = _createRefSelection(plotterFolder.getSelectionName(dqmSubFolder))
893 triedRefValFiles = []
897 for selName
in plotterFolder.getSelectionNameIterator(dqmSubFolder):
898 refSel = _createRefSelection(selName)
899 refdir = os.path.join(*(tmp+[refSel, sample.name()]))
902 refValFilePath = os.path.join(refdir, valname)
903 if os.path.exists(refValFilePath):
904 refSelection = refSel
905 refValFile = ROOT.TFile.Open(refValFilePath)
908 triedRefValFiles.append(refValFilePath)
909 if refValFile
is None:
910 if len(triedRefValFiles) == 1:
912 print(
"Reference file %s not found" % triedRefValFiles[0])
915 print(
"None of the possible reference files %s not found" %
",".
join(triedRefValFiles))
917 return (refValFile, refSelection)
919 def _doPlots(self, sample, harvestedFile, plotterFolder, dqmSubFolder, htmlReport):
920 """Do the real plotting work for a given sample and DQM subfolder""" 925 selectionNameBase =
"_"+sample.pileup()
926 newSelection = newGlobalTag+selectionNameBase+plotterFolder.getSelectionName(dqmSubFolder)
927 if sample.pileupEnabled():
930 newSelection +=
"_"+newPu
932 valname =
"val.{sample}.root".
format(sample=sample.name())
935 (refValFile, refSelection) = self.
_getRefFileAndSelection(sample, plotterFolder, dqmSubFolder, selectionNameBase, valname)
941 tmp.extend([newSelection, sample.name()])
942 newsubdir = os.path.join(*tmp)
944 if not os.path.exists(newdir):
946 valnameFullPath = os.path.join(newdir, valname)
950 newValFile =
_copySubDir(harvestedFile, valnameFullPath, plotterFolder.getPossibleDQMFolders(), dqmSubFolder.subfolder
if dqmSubFolder
is not None else None)
955 print(
"Comparing ref and new {sim} {sample} {translatedFolder}".
format(
956 sim=
"FullSim" if not sample.fastsim()
else "FastSim",
957 sample=sample.name(), translatedFolder=
str(dqmSubFolder.translated)
if dqmSubFolder
is not None else ""))
958 rootFiles = [refValFile, newValFile]
963 plotterFolder.create(rootFiles, legendLabels, dqmSubFolder, isPileupSample=sample.pileupEnabled())
964 fileList.extend(plotterFolder.draw(directory=newdir, **self.
_plotterDrawArgs))
966 if len(fileList) > 0:
967 fileList.append(valnameFullPath)
970 for tableCreator
in plotterFolder.getTableCreators():
971 htmlReport.addTable(tableCreator.create(rootFiles, legendLabels, dqmSubFolder))
974 if refValFile
is not None:
977 if len(fileList) == 0:
982 print(
"Plotter produced multiple files with names",
", ".
join(dups))
983 print(
"Typically this is a naming problem in the plotter configuration")
987 print(
"Created plots and %s in %s" % (valname, newdir))
988 return map(
lambda n: n.replace(newdir, newsubdir), fileList)
990 def _doPlotsFastFull(self, fastSample, fullSample, plotterFolder, dqmSubFolder, htmlReport):
991 """Do the real plotting work for FastSim vs. FullSim for a given algorithm, quality flag, and sample.""" 997 tmp = plotterFolder.getSelectionName(dqmSubFolder)
998 fastSelection = fastGlobalTag+
"_"+fastSample.pileup()+tmp
999 fullSelection = fullGlobalTag+
"_"+fullSample.pileup()+tmp
1000 if fullSample.pileupEnabled():
1001 fullSelection +=
"_"+fullSample.pileupType(self.
_newRelease)
1002 fastSelection +=
"_"+fastSample.pileupType(self.
_newRelease)
1006 fulldir = os.path.join(self.
_newBaseDir, fullSelection, fullSample.name())
1007 newsubdir = os.path.join(
"fastfull", self.
_newRelease, fastSelection, fastSample.name())
1008 newdir = os.path.join(self.
_newBaseDir, newsubdir)
1009 if not os.path.exists(newdir):
1013 valname =
"val.{sample}.root".
format(sample=fastSample.name())
1014 fastValFilePath = os.path.join(fastdir, valname)
1015 if not os.path.exists(fastValFilePath)
and plotting.verbose:
1016 print(
"FastSim file %s not found" % fastValFilePath)
1017 fullValFilePath = os.path.join(fulldir, valname)
1018 if not os.path.exists(fullValFilePath)
and plotting.verbose:
1019 print(
"FullSim file %s not found" % fullValFilePath)
1021 fastValFile = ROOT.TFile.Open(fastValFilePath)
1022 fullValFile = ROOT.TFile.Open(fullValFilePath)
1025 if plotting.verbose:
1026 print(
"Comparing FullSim and FastSim {sample} {translatedFolder}".
format(
1027 sample=fastSample.name(), translatedFolder=
str(dqmSubFolder.translated)
if dqmSubFolder
is not None else ""))
1028 rootFiles = [fullValFile, fastValFile]
1033 plotterFolder.create(rootFiles, legendLabels, dqmSubFolder, isPileupSample=fastSample.pileupEnabled(), requireAllHistograms=
True)
1037 for tableCreator
in plotterFolder.getTableCreators():
1038 htmlReport.addTable(tableCreator.create(rootFiles, legendLabels, dqmSubFolder))
1043 if len(fileList) == 0:
1048 print(
"Plotter produced multiple files with names",
", ".
join(dups))
1049 print(
"Typically this is a naming problem in the plotter configuration")
1053 print(
"Created plots in %s" % (newdir))
1054 return map(
lambda n: n.replace(newdir, newsubdir), fileList)
1056 def _doPlotsPileup(self, pu140Sample, pu200Sample, plotterFolder, dqmSubFolder, htmlReport):
1057 """Do the real plotting work for two pileup scenarios for a given algorithm, quality flag, and sample.""" 1063 tmp = plotterFolder.getSelectionName(dqmSubFolder)
1064 pu140Selection = pu140GlobalTag+
"_"+pu140Sample.pileup()+tmp+
"_"+pu140Sample.pileupType(self.
_newRelease)
1065 pu200Selection = pu200GlobalTag+
"_"+pu200Sample.pileup()+tmp+
"_"+pu200Sample.pileupType(self.
_newRelease)
1068 pu140dir = os.path.join(self.
_newBaseDir, pu140Selection, pu140Sample.name())
1069 pu200dir = os.path.join(self.
_newBaseDir, pu200Selection, pu200Sample.name())
1070 newsubdir = os.path.join(
"pileup", self.
_newRelease, pu200Selection, pu200Sample.name())
1071 newdir = os.path.join(self.
_newBaseDir, newsubdir)
1072 if not os.path.exists(newdir):
1076 valname =
"val.{sample}.root".
format(sample=pu140Sample.name())
1077 pu140ValFilePath = os.path.join(pu140dir, valname)
1078 if not os.path.exists(pu140ValFilePath):
1079 if plotting.verbose:
1080 print(
"PU140 file %s not found" % pu140ValFilePath)
1082 pu200ValFilePath = os.path.join(pu200dir, valname)
1083 if not os.path.exists(pu200ValFilePath):
1084 if plotting.verbose:
1085 print(
"PU200 file %s not found" % pu200ValFilePath)
1088 pu140ValFile = ROOT.TFile.Open(pu140ValFilePath)
1089 pu200ValFile = ROOT.TFile.Open(pu200ValFilePath)
1092 if plotting.verbose:
1093 print(
"Comparing PU140 and PU200 {sample} {translatedFolder}".
format(
1094 sample=pu200Sample.name(), translatedFolder=
str(dqmSubFolder.translated)
if dqmSubFolder
is not None else ""))
1095 rootFiles = [pu140ValFile, pu200ValFile]
1100 plotterFolder.create(rootFiles, legendLabels, dqmSubFolder, isPileupSample=pu140Sample.pileupEnabled(), requireAllHistograms=
True)
1104 for tableCreator
in plotterFolder.getTableCreators():
1105 htmlReport.addTable(tableCreator.create(rootFiles, legendLabels, dqmSubFolder))
1107 pu200ValFile.Close()
1108 pu140ValFile.Close()
1110 if len(fileList) == 0:
1115 print(
"Plotter produced multiple files with names",
", ".
join(dups))
1116 print(
"Typically this is a naming problem in the plotter configuration")
1120 print(
"Created plots in %s" % (newdir))
1121 return map(
lambda n: n.replace(newdir, newsubdir), fileList)
1125 """Copy a subdirectory from oldfile to newfile. 1128 oldfile -- String for source TFile 1129 newfile -- String for destination TFile 1130 basenames -- List of strings for base directories, first existing one is picked 1131 dirname -- String for directory name under the base directory 1133 oldf = ROOT.TFile.Open(oldfile)
1136 for basename
in basenames:
1137 dirold = oldf.GetDirectory(basename)
1141 raise Exception(
"Did not find any of %s directories from file %s" % (
",".
join(basenames), oldfile))
1143 d = dirold.Get(dirname)
1145 raise Exception(
"Did not find directory %s under %s" % (dirname, dirold.GetPath()))
1148 newf = ROOT.TFile.Open(newfile,
"RECREATE")
1150 for d
in basenames[0].
split(
"/"):
1151 dirnew = dirnew.mkdir(d)
1153 dirnew = dirnew.mkdir(dirname)
1160 """Copy non-TTree objects from src TDirectory to dst TDirectory.""" 1161 keys = src.GetListOfKeys()
1163 classname = key.GetClassName()
1164 cl = ROOT.TClass.GetClass(classname)
1167 if not (cl.InheritsFrom(
"TTree")
and cl.InheritsFrom(
"TDirectory")):
1184 def __init__(self, label, name, fileLegends, pileup=True, customPileupLabel=""):
1230 if not os.path.exists(newdir):
1237 raise Exception(
"HTML report object already created. There is probably some logic error in the calling code.")
1241 def doPlots(self, plotters, plotterDrawArgs={}, **kwargs):
1247 self._htmlReport.beginSample(sample)
1250 for f
in sample.files():
1251 if os.path.exists(f):
1252 self._openFiles.append(ROOT.TFile.Open(f))
1254 print(
"File %s not found (from sample %s), ignoring it" % (f, sample.name()))
1255 self._openFiles.append(
None)
1257 for plotter
in plotters:
1266 plotterInstance = plotter.readDirs(*self.
_openFiles)
1267 for plotterFolder, dqmSubFolder
in plotterInstance.iterFolders(limitSubFoldersOnlyTo=limitSubFoldersOnlyTo):
1270 plotFiles = self.
_doPlots(plotterFolder, dqmSubFolder)
1271 if len(plotFiles) > 0:
1272 self._htmlReport.addPlots(plotterFolder, dqmSubFolder, plotFiles)
1276 newsubdir = self.
_subdirprefix+plotterFolder.getSelectionName(dqmSubFolder)
1277 newdir = os.path.join(self.
_newdir, newsubdir)
1278 if not os.path.exists(newdir):
1282 for tableCreator
in plotterFolder.getTableCreators():
1283 self._htmlReport.addTable(tableCreator.create(self.
_openFiles, self.
_labels, dqmSubFolder))
1286 if len(fileList) == 0:
1291 print(
"Plotter produced multiple files with names",
", ".
join(dups))
1292 print(
"Typically this is a naming problem in the plotter configuration")
1295 print(
"Created plots in %s" % newdir)
1296 return map(
lambda n: n.replace(newdir, newsubdir), fileList)
_fastsimCorrespondingFullsimPileup
def _getGlobalTag(sample, release)
def _doPlotsPileup(self, pu140Sample, pu200Sample, plotterFolder, dqmSubFolder, htmlReport)
def createHtmlReport(self, validationName="")
def _getSelectionName(self, args, kwargs)
def customPileupLabel(self)
def dirname(self, newRepository, newRelease, newSelection)
def filename(self, newRelease)
def _getDirectoryName(self, args, kwargs)
def __init__(self, label, name, fileLegends, pileup=True, customPileupLabel="")
def datasetpattern(self, newRelease)
S & print(S &os, JobReport::InputFile const &f)
def _doPlots(self, plotterFolder, dqmSubFolder)
def pileupType(self, release=None)
def _doFastsimFastVsFullPlots(self, limitSubFoldersOnlyTo, htmlReport)
def _getRelValUrl(release)
def _stripRelease(release)
def _processPlotsForSample(plotterFolder, sample)
def hasOverrideGlobalTag(self)
def _doPlotsFastFull(self, fastSample, fullSample, plotterFolder, dqmSubFolder, htmlReport)
def version(self, release=None)
def doPlots(self, plotters, plotterDrawArgs={}, kwargs)
def __init__(self, fullsimSamples, fastsimSamples, refRelease, refRepository, newRelease, newRepository, newFileModifier=None, selectionName="")
static std::string join(char **cmd)
def _copySubDir(oldfile, newfile, basenames, dirname)
def _doPhase2PileupPlots(self, limitSubFoldersOnlyTo, htmlReport)
def doPlots(self, plotter, plotterDrawArgs={}, limitSubFoldersOnlyTo=None, htmlReport=html.HtmlReportDummy(), doFastVsFull=True, doPhase2PU=False)
def __init__(self, sample, append=None, midfix=None, putype=None, punum=0, fastsim=False, fastsimCorrespondingFullsimPileup=None, doElectron=None, doConversion=None, doBHadron=None, version="v1", dqmVersion="0001", scenario=None, overrideGlobalTag=None, appendGlobalTag="")
def fastsimCorrespondingFullsimPileup(self)
def createHtmlReport(self)
def _doPlotsForPlotter(self, plotter, sample, limitSubFoldersOnlyTo=None)
def __init__(self, samples, newdir)
def _getRefFileAndSelection(self, sample, plotterFolder, dqmSubFolder, selectionNameBase, valname)
def _doPlots(self, sample, harvestedFile, plotterFolder, dqmSubFolder, htmlReport)
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger list("!*","!HLTx*"if it matches 2 triggers or more) will accept the event if all the matching triggers are FAIL.It will reject the event if any of the triggers are PASS or EXCEPTION(this matches the behavior of"!*"before the partial wildcard feature was incorporated).Triggers which are in the READY state are completely ignored.(READY should never be returned since the trigger paths have been run
def overrideGlobalTag(self)