CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch13/src/DQM/RPCMonitorClient/interface/RPCEfficiencySecond.h

Go to the documentation of this file.
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