![]() |
![]() |
00001 00012 #include <FWCore/Framework/interface/Frameworkfwd.h> 00013 #include <FWCore/Framework/interface/EDAnalyzer.h> 00014 #include <FWCore/Framework/interface/Event.h> 00015 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00016 #include "FWCore/ServiceRegistry/interface/Service.h" 00017 00018 #include "DQMServices/Core/interface/DQMStore.h" 00019 #include "DQMServices/Core/interface/MonitorElement.h" 00020 00021 #include <DataFormats/MuonDetId/interface/RPCDetId.h> 00022 00023 00024 #include<string> 00025 #include<vector> 00026 #include<map> 00027 #include<fstream> 00028 00029 class RPCDetId; 00030 class TFile; 00031 class TH1F; 00032 class TFile; 00033 class TCanvas; 00034 class TH2F; 00035 class TString; 00036 class TGaxis; 00037 00038 00039 class RPCEfficiencySecond : public edm::EDAnalyzer { 00040 public: 00041 explicit RPCEfficiencySecond(const edm::ParameterSet&); 00042 ~RPCEfficiencySecond(); 00043 int rollY(std::string shortname,std::vector<std::string> rollNames); 00044 00045 TFile * theFile; 00046 TFile * theFileout; 00047 00048 MonitorElement * statistics; 00049 MonitorElement * statistics2; 00050 00051 MonitorElement * hGlobalResClu1La1; 00052 MonitorElement * hGlobalResClu1La2; 00053 MonitorElement * hGlobalResClu1La3; 00054 MonitorElement * hGlobalResClu1La4; 00055 MonitorElement * hGlobalResClu1La5; 00056 MonitorElement * hGlobalResClu1La6; 00057 00058 MonitorElement * hGlobalResClu2La1; 00059 MonitorElement * hGlobalResClu2La2; 00060 MonitorElement * hGlobalResClu2La3; 00061 MonitorElement * hGlobalResClu2La4; 00062 MonitorElement * hGlobalResClu2La5; 00063 MonitorElement * hGlobalResClu2La6; 00064 00065 MonitorElement * hGlobalResClu3La1; 00066 MonitorElement * hGlobalResClu3La2; 00067 MonitorElement * hGlobalResClu3La3; 00068 MonitorElement * hGlobalResClu3La4; 00069 MonitorElement * hGlobalResClu3La5; 00070 MonitorElement * hGlobalResClu3La6; 00071 00072 //Endcap 00073 MonitorElement * hGlobalResClu1R3C; 00074 MonitorElement * hGlobalResClu1R3B; 00075 MonitorElement * hGlobalResClu1R3A; 00076 MonitorElement * hGlobalResClu1R2C; 00077 MonitorElement * hGlobalResClu1R2B; 00078 MonitorElement * hGlobalResClu1R2A; 00079 00080 MonitorElement * hGlobalResClu2R3C; 00081 MonitorElement * hGlobalResClu2R3B; 00082 MonitorElement * hGlobalResClu2R3A; 00083 MonitorElement * hGlobalResClu2R2C; 00084 MonitorElement * hGlobalResClu2R2B; 00085 MonitorElement * hGlobalResClu2R2A; 00086 00087 MonitorElement * hGlobalResClu3R3C; 00088 MonitorElement * hGlobalResClu3R3B; 00089 MonitorElement * hGlobalResClu3R3A; 00090 MonitorElement * hGlobalResClu3R2C; 00091 MonitorElement * hGlobalResClu3R2B; 00092 MonitorElement * hGlobalResClu3R2A; 00093 00094 MonitorElement * hGlobal2ResClu1La1; 00095 MonitorElement * hGlobal2ResClu1La2; 00096 MonitorElement * hGlobal2ResClu1La3; 00097 MonitorElement * hGlobal2ResClu1La4; 00098 MonitorElement * hGlobal2ResClu1La5; 00099 MonitorElement * hGlobal2ResClu1La6; 00100 00101 //SecondHistograms 00102 00103 MonitorElement * hGlobal2ResClu2La1; 00104 MonitorElement * hGlobal2ResClu2La2; 00105 MonitorElement * hGlobal2ResClu2La3; 00106 MonitorElement * hGlobal2ResClu2La4; 00107 MonitorElement * hGlobal2ResClu2La5; 00108 MonitorElement * hGlobal2ResClu2La6; 00109 00110 MonitorElement * hGlobal2ResClu3La1; 00111 MonitorElement * hGlobal2ResClu3La2; 00112 MonitorElement * hGlobal2ResClu3La3; 00113 MonitorElement * hGlobal2ResClu3La4; 00114 MonitorElement * hGlobal2ResClu3La5; 00115 MonitorElement * hGlobal2ResClu3La6; 00116 00117 //Endcap 00118 MonitorElement * hGlobal2ResClu1R3C; 00119 MonitorElement * hGlobal2ResClu1R3B; 00120 MonitorElement * hGlobal2ResClu1R3A; 00121 MonitorElement * hGlobal2ResClu1R2C; 00122 MonitorElement * hGlobal2ResClu1R2B; 00123 MonitorElement * hGlobal2ResClu1R2A; 00124 00125 MonitorElement * hGlobal2ResClu2R3C; 00126 MonitorElement * hGlobal2ResClu2R3B; 00127 MonitorElement * hGlobal2ResClu2R3A; 00128 MonitorElement * hGlobal2ResClu2R2C; 00129 MonitorElement * hGlobal2ResClu2R2B; 00130 MonitorElement * hGlobal2ResClu2R2A; 00131 00132 MonitorElement * hGlobal2ResClu3R3C; 00133 MonitorElement * hGlobal2ResClu3R3B; 00134 MonitorElement * hGlobal2ResClu3R3A; 00135 MonitorElement * hGlobal2ResClu3R2C; 00136 MonitorElement * hGlobal2ResClu3R2B; 00137 MonitorElement * hGlobal2ResClu3R2A; 00138 00139 //Histograms to use 00140 MonitorElement * histoRPC; 00141 MonitorElement * histoDT; 00142 MonitorElement * histoRealRPC; 00143 MonitorElement * histoCSC; 00144 MonitorElement * BXDistribution; 00145 00146 MonitorElement * histoPRO; 00147 MonitorElement * histoeffIdRPC_DT; 00148 MonitorElement * histoeffIdRPC_CSC; 00149 00150 //For Duplication 00151 MonitorElement * histoRPC2; 00152 MonitorElement * histoDT2; 00153 MonitorElement * histoRealRPC2; 00154 MonitorElement * histoCSC2; 00155 MonitorElement * BXDistribution2; 00156 00157 00158 //Eff Global Barrel 00159 MonitorElement * EffGlobWm2; 00160 MonitorElement * EffGlobWm1; 00161 MonitorElement * EffGlobW0; 00162 MonitorElement * EffGlobW1; 00163 MonitorElement * EffGlobW2; 00164 00165 MonitorElement * EffGlobWm2far; 00166 MonitorElement * EffGlobWm1far; 00167 MonitorElement * EffGlobW0far; 00168 MonitorElement * EffGlobW1far; 00169 MonitorElement * EffGlobW2far; 00170 00171 //BX Barrel 00172 MonitorElement * BXGlobWm2; 00173 MonitorElement * BXGlobWm1; 00174 MonitorElement * BXGlobW0; 00175 MonitorElement * BXGlobW1; 00176 MonitorElement * BXGlobW2; 00177 00178 MonitorElement * BXGlobWm2far; 00179 MonitorElement * BXGlobWm1far; 00180 MonitorElement * BXGlobW0far; 00181 MonitorElement * BXGlobW1far; 00182 MonitorElement * BXGlobW2far; 00183 00184 //Masked Barrel 00185 MonitorElement * MaskedGlobWm2; 00186 MonitorElement * MaskedGlobWm1; 00187 MonitorElement * MaskedGlobW0; 00188 MonitorElement * MaskedGlobW1; 00189 MonitorElement * MaskedGlobW2; 00190 00191 MonitorElement * MaskedGlobWm2far; 00192 MonitorElement * MaskedGlobWm1far; 00193 MonitorElement * MaskedGlobW0far; 00194 MonitorElement * MaskedGlobW1far; 00195 MonitorElement * MaskedGlobW2far; 00196 00197 //Average Eff Barrel 00198 MonitorElement * AverageEffWm2; 00199 MonitorElement * AverageEffWm1; 00200 MonitorElement * AverageEffW0; 00201 MonitorElement * AverageEffW1; 00202 MonitorElement * AverageEffW2; 00203 00204 MonitorElement * AverageEffWm2far; 00205 MonitorElement * AverageEffWm1far; 00206 MonitorElement * AverageEffW0far; 00207 MonitorElement * AverageEffW1far; 00208 MonitorElement * AverageEffW2far; 00209 00210 //No Prediction Barrel 00211 MonitorElement * NoPredictionWm2; 00212 MonitorElement * NoPredictionWm1; 00213 MonitorElement * NoPredictionW0; 00214 MonitorElement * NoPredictionW1; 00215 MonitorElement * NoPredictionW2; 00216 00217 MonitorElement * NoPredictionWm2far; 00218 MonitorElement * NoPredictionWm1far; 00219 MonitorElement * NoPredictionW0far; 00220 MonitorElement * NoPredictionW1far; 00221 MonitorElement * NoPredictionW2far; 00222 00223 //Eff Distro Barrel 00224 MonitorElement * EffDistroWm2; 00225 MonitorElement * EffDistroWm1; 00226 MonitorElement * EffDistroW0; 00227 MonitorElement * EffDistroW1; 00228 MonitorElement * EffDistroW2; 00229 00230 MonitorElement * EffDistroWm2far; 00231 MonitorElement * EffDistroWm1far; 00232 MonitorElement * EffDistroW0far; 00233 MonitorElement * EffDistroW1far; 00234 MonitorElement * EffDistroW2far; 00235 00236 00237 //Eff Global EndCap 00238 00239 MonitorElement * EffGlobDm3; 00240 MonitorElement * EffGlobDm2; 00241 MonitorElement * EffGlobDm1; 00242 MonitorElement * EffGlobD1; 00243 MonitorElement * EffGlobD2; 00244 MonitorElement * EffGlobD3; 00245 00246 MonitorElement * EffGlobDm3far; 00247 MonitorElement * EffGlobDm2far; 00248 MonitorElement * EffGlobDm1far; 00249 MonitorElement * EffGlobD1far; 00250 MonitorElement * EffGlobD2far; 00251 MonitorElement * EffGlobD3far; 00252 00253 //BX EndCap 00254 MonitorElement * BXGlobDm3; 00255 MonitorElement * BXGlobDm2; 00256 MonitorElement * BXGlobDm1; 00257 MonitorElement * BXGlobD1; 00258 MonitorElement * BXGlobD2; 00259 MonitorElement * BXGlobD3; 00260 00261 MonitorElement * BXGlobDm3far; 00262 MonitorElement * BXGlobDm2far; 00263 MonitorElement * BXGlobDm1far; 00264 MonitorElement * BXGlobD1far; 00265 MonitorElement * BXGlobD2far; 00266 MonitorElement * BXGlobD3far; 00267 00268 //Masked EndCap 00269 MonitorElement * MaskedGlobDm3; 00270 MonitorElement * MaskedGlobDm2; 00271 MonitorElement * MaskedGlobDm1; 00272 MonitorElement * MaskedGlobD1; 00273 MonitorElement * MaskedGlobD2; 00274 MonitorElement * MaskedGlobD3; 00275 00276 MonitorElement * MaskedGlobDm3far; 00277 MonitorElement * MaskedGlobDm2far; 00278 MonitorElement * MaskedGlobDm1far; 00279 MonitorElement * MaskedGlobD1far; 00280 MonitorElement * MaskedGlobD2far; 00281 MonitorElement * MaskedGlobD3far; 00282 00283 //Average Eff EndCap 00284 MonitorElement * AverageEffDm3; 00285 MonitorElement * AverageEffDm2; 00286 MonitorElement * AverageEffDm1; 00287 MonitorElement * AverageEffD1; 00288 MonitorElement * AverageEffD2; 00289 MonitorElement * AverageEffD3; 00290 00291 MonitorElement * AverageEffDm3far; 00292 MonitorElement * AverageEffDm2far; 00293 MonitorElement * AverageEffDm1far; 00294 MonitorElement * AverageEffD1far; 00295 MonitorElement * AverageEffD2far; 00296 MonitorElement * AverageEffD3far; 00297 00298 //No Prediction EndCap 00299 MonitorElement * NoPredictionDm3; 00300 MonitorElement * NoPredictionDm2; 00301 MonitorElement * NoPredictionDm1; 00302 MonitorElement * NoPredictionD1; 00303 MonitorElement * NoPredictionD2; 00304 MonitorElement * NoPredictionD3; 00305 00306 MonitorElement * NoPredictionDm3far; 00307 MonitorElement * NoPredictionDm2far; 00308 MonitorElement * NoPredictionDm1far; 00309 MonitorElement * NoPredictionD1far; 00310 MonitorElement * NoPredictionD2far; 00311 MonitorElement * NoPredictionD3far; 00312 00313 //EffDistro EndCap 00314 MonitorElement * EffDistroDm3; 00315 MonitorElement * EffDistroDm2; 00316 MonitorElement * EffDistroDm1; 00317 MonitorElement * EffDistroD1; 00318 MonitorElement * EffDistroD2; 00319 MonitorElement * EffDistroD3; 00320 00321 MonitorElement * EffDistroDm3far; 00322 MonitorElement * EffDistroDm2far; 00323 MonitorElement * EffDistroDm1far; 00324 MonitorElement * EffDistroD1far; 00325 MonitorElement * EffDistroD2far; 00326 MonitorElement * EffDistroD3far; 00327 00328 //Summary Histograms. 00329 MonitorElement * Wheelm2Summary; 00330 MonitorElement * Wheelm1Summary; 00331 MonitorElement * Wheel0Summary; 00332 MonitorElement * Wheel1Summary; 00333 MonitorElement * Wheel2Summary; 00334 00335 MonitorElement * Diskm3Summary; 00336 MonitorElement * Diskm2Summary; 00337 MonitorElement * Diskm1Summary; 00338 MonitorElement * Disk1Summary; 00339 MonitorElement * Disk2Summary; 00340 MonitorElement * Disk3Summary; 00341 00342 //Azimultal Plots 00343 00344 MonitorElement * sectorEffWm2; 00345 MonitorElement * sectorEffWm1; 00346 MonitorElement * sectorEffW0; 00347 MonitorElement * sectorEffW1; 00348 MonitorElement * sectorEffW2; 00349 00350 MonitorElement * OcsectorEffWm2; 00351 MonitorElement * OcsectorEffWm1; 00352 MonitorElement * OcsectorEffW0; 00353 MonitorElement * OcsectorEffW1; 00354 MonitorElement * OcsectorEffW2; 00355 00356 MonitorElement * ExsectorEffWm2; 00357 MonitorElement * ExsectorEffWm1; 00358 MonitorElement * ExsectorEffW0; 00359 MonitorElement * ExsectorEffW1; 00360 MonitorElement * ExsectorEffW2; 00361 00362 MonitorElement * GregD1R2; 00363 MonitorElement * GregD1R3; 00364 MonitorElement * GregD2R2; 00365 MonitorElement * GregD2R3; 00366 MonitorElement * GregD3R2; 00367 MonitorElement * GregD3R3; 00368 00369 MonitorElement * OcGregD1R2; 00370 MonitorElement * OcGregD1R3; 00371 MonitorElement * OcGregD2R2; 00372 MonitorElement * OcGregD2R3; 00373 MonitorElement * OcGregD3R2; 00374 MonitorElement * OcGregD3R3; 00375 00376 MonitorElement * ExGregD1R2; 00377 MonitorElement * ExGregD1R3; 00378 MonitorElement * ExGregD2R2; 00379 MonitorElement * ExGregD2R3; 00380 MonitorElement * ExGregD3R2; 00381 MonitorElement * ExGregD3R3; 00382 00383 00384 00385 private: 00386 virtual void beginRun(const edm::Run&, const edm::EventSetup& iSetup) ; 00387 virtual void analyze(const edm::Event&, const edm::EventSetup&); 00388 virtual void endJob() ; 00389 virtual void endRun(const edm::Run& , const edm::EventSetup& ); 00390 00391 std::map<std::string, MonitorElement*> bookDetUnitSeg(RPCDetId & detId,int nstrips,std::string folder); 00392 std::map<int, std::map<std::string, MonitorElement*> > meCollection; 00393 00394 bool debug; 00395 bool endcap; 00396 bool barrel; 00397 bool SaveFile; 00398 std::string NameFile; 00399 std::string folderPath; 00400 00401 DQMStore * dbe; 00402 00403 }; 00404