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