CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_3/src/HLTriggerOffline/Top/interface/TopValidation.h

Go to the documentation of this file.
00001 
00002 #ifndef HLTriggerOffline_TopValidation_H
00003 #define HLTriggerOffline_TopValidation_H 
00004 
00005 
00006 // system include files
00007 #include <memory>
00008 #include <string>
00009 
00010 // user include files
00011 #include "FWCore/Framework/interface/Frameworkfwd.h"
00012 #include "FWCore/Framework/interface/EDAnalyzer.h"
00013 #include "FWCore/Framework/interface/Event.h"
00014 #include "FWCore/Framework/interface/MakerMacros.h"
00015 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00016 
00017 #include "DataFormats/Common/interface/Ref.h"
00018 #include "DataFormats/Common/interface/DetSetVector.h"
00019 #include "DataFormats/Candidate/interface/Candidate.h"
00020 #include "DataFormats/JetReco/interface/Jet.h"
00021 #include "DataFormats/JetReco/interface/CaloJetCollection.h"
00022 #include "DataFormats/TrackReco/interface/Track.h"
00023 #include "DataFormats/TrackReco/interface/TrackExtra.h"
00024 //#include "DataFormats/CaloTowers/interface/CaloTowerCollection.h"
00025 
00026 #include "DataFormats/MuonReco/interface/MuonFwd.h"
00027 #include "DataFormats/MuonReco/interface/Muon.h"
00028 /*#include "DataFormats/METReco/interface/MET.h"
00029 #include "DataFormats/METReco/interface/CaloMETCollection.h" 
00030 #include "DataFormats/METReco/interface/GenMET.h"
00031 #include "DataFormats/METReco/interface/GenMETCollection.h" */
00032 
00033 //#include "SimDataFormats/HepMCProduct/interface/HepMCProduct.h"
00034 
00035 #include <DataFormats/HepMCCandidate/interface/GenParticle.h>
00036 #include "DataFormats/Candidate/interface/Candidate.h"
00037 #include "DataFormats/RecoCandidate/interface/RecoCandidate.h"
00038 
00039 
00040 
00041 //#include "DataFormats/VertexReco/interface/Vertex.h"
00042 //#include "RecoVertex/PrimaryVertexProducer/interface/PrimaryVertexSorter.h"
00043 #include "DataFormats/Common/interface/Handle.h"
00044 #include "DataFormats/Common/interface/TriggerResults.h"
00045 #include "DataFormats/Common/interface/RefToBase.h"
00046 #include "HLTrigger/HLTfilters/interface/HLTHighLevel.h"
00047 #include "DataFormats/EgammaCandidates/interface/GsfElectron.h"
00048 #include "DataFormats/EgammaCandidates/interface/GsfElectronFwd.h"
00049 
00050 #include "DataFormats/EgammaCandidates/interface/Electron.h"
00051 #include "DataFormats/EgammaCandidates/interface/ElectronFwd.h"
00052 #include "DataFormats/EgammaReco/interface/SuperCluster.h"
00053 #include "DataFormats/EgammaReco/interface/BasicCluster.h"
00054 #include "DataFormats/EgammaReco/interface/BasicClusterFwd.h"
00055 
00056 #include "FWCore/ServiceRegistry/interface/Service.h"
00057 //#include "PhysicsTools/UtilAlgos/interface/TFileService.h"
00058 
00059 
00060 //Include DQM core
00061 #include "DQMServices/Core/interface/DQMStore.h"
00062 #include "DQMServices/Core/interface/MonitorElement.h"
00063 
00064 
00065 #include "TH1F.h"
00066 #include "TVector3.h"
00067 #include "TLorentzVector.h"
00068 #include <string>
00069 #include <sstream>
00070 #include <cstdlib>
00071 #include <cmath> 
00072 #include <TMath.h>
00073 #include "TFile.h"
00074 
00075 
00076 
00077 class TH1F;
00078 
00079 //
00080 // class decleration
00081 //
00082 
00083 class TopValidation : public edm::EDAnalyzer {
00084 public:
00085   explicit TopValidation(const edm::ParameterSet&);
00086   ~TopValidation();
00087   
00088   
00089 private:
00090   virtual void beginJob() ;
00091   virtual void analyze(const edm::Event&, const edm::EventSetup&);
00092   virtual void endJob() ;
00093  
00094  // edm::Service<TFileService> fs;
00095   
00096   
00097   // ----------member data ---------------------------
00098   
00099   std::string fOutputFileName ;
00100   
00101   std::string outFile_, outputFileName;
00102   
00103   bool outputMEsInRootFile;
00104 
00105 
00106 
00107  edm::ParameterSet parameters;
00108 
00109  DQMStore* dbe;
00110  
00112  
00113  //  semimu events
00114  
00115   MonitorElement*     eta_off_mu;
00116   MonitorElement*     pt_off_mu;
00117  
00118 
00119   //  dimu events
00120  
00121   MonitorElement*     eta_off_dimu1;
00122   MonitorElement*     pt_off_dimu1;
00123   MonitorElement*     eta_off_dimu2;
00124   MonitorElement*     pt_off_dimu2;
00125 
00126 //  semiel events 
00127   
00128   MonitorElement*     eta_off_el;
00129   MonitorElement*     pt_off_el;
00130  
00131 
00132   //diel events 
00133  
00134   MonitorElement*     eta_off_diel1;
00135   MonitorElement*     pt_off_diel1;
00136   MonitorElement*     eta_off_diel2;
00137   MonitorElement*     pt_off_diel2;
00138  
00139   //  emu events
00140  
00141   MonitorElement*     eta_off_emu_muon;
00142   MonitorElement*     pt_off_emu_muon;
00143   MonitorElement*     eta_off_emu_electron;
00144   MonitorElement*     pt_off_emu_electron;
00145   
00146   
00148   MonitorElement*      ptmuon_4jet1muSel;
00149   MonitorElement*      etamuon_4jet1muSel;
00150   MonitorElement*      Njets_4jet1muSel;
00151   MonitorElement*      ptmuon_4jet1muSel_hltmu9;
00152   MonitorElement*      etamuon_4jet1muSel_hltmu9;
00153   MonitorElement*      Njets_4jet1muSel_hltmu9;
00154   
00156   
00157   MonitorElement*  h_ptmu1_trig[100];
00158   MonitorElement*  h_etamu1_trig[100];
00159   MonitorElement*  h_ptel1_trig[100];
00160   MonitorElement*  h_etael1_trig[100];
00161   
00162   MonitorElement*  h_ptmu1_trig_dimu[100];
00163   MonitorElement*  h_etamu1_trig_dimu[100];
00164   MonitorElement*  h_ptel1_trig_diel[100];
00165   MonitorElement*  h_etael1_trig_diel[100];
00166   
00167   MonitorElement*  h_ptmu1_trig_em[100];
00168   MonitorElement*  h_etamu1_trig_em[100];
00169   MonitorElement*  h_ptel1_trig_em[100];
00170   MonitorElement*  h_etael1_trig_em[100];
00171   
00172  /***********/
00173  
00174   MonitorElement* hlt_bitmu_hist_reco ;
00175   MonitorElement* h_mu_reco;
00176   MonitorElement* hlt_bitmu_hist_gen ;
00177   MonitorElement* h_mu_gen;
00178   
00179   MonitorElement* h_jet_reco;
00180   MonitorElement* hlt_bitjet_hist_reco;
00181   
00182   MonitorElement* h_jet_reco_el;
00183   MonitorElement* hlt_bitjet_hist_reco_el;
00184   
00185   MonitorElement* h_jet_gen;
00186   MonitorElement* hlt_bitjet_hist_gen;
00187   
00188   MonitorElement* h_jet_gen_el;
00189   MonitorElement* hlt_bitjet_hist_gen_el;
00190   
00191   MonitorElement* hlt_bitel_hist_reco;
00192   MonitorElement* h_el_reco;
00193   MonitorElement* hlt_bitel_hist_gen;
00194   MonitorElement* h_el_gen;
00195   
00196   MonitorElement* et_off_jet_mu;
00197   MonitorElement* eta_off_jet_mu;
00198   MonitorElement* njets_off_mu;
00199   MonitorElement* et_off_jet_el;
00200   MonitorElement* eta_off_jet_el;
00201   MonitorElement* njets_off_el;
00202   MonitorElement*  h_etjet1_trig_mu[100];
00203   MonitorElement*  h_etajet1_trig_mu[100];
00204   MonitorElement*  h_etjet1_trig_el[100];
00205   MonitorElement*  h_etajet1_trig_el[100];
00206   
00207   MonitorElement* events_acc_off_electron;
00208   MonitorElement* events_acc_off_muon;
00209   
00210   
00211  
00212  
00213   edm::InputTag inputTag_;
00214   std::vector<std::string> hlt_bitnames;
00215   std::vector<std::string> hlt_bitnamesMu;
00216   std::vector<std::string> hlt_bitnamesEg;
00217   std::vector<std::string> hlt_bitnamesJet;
00218   
00219   
00220   //Just a tag for better file organization
00221   std::string triggerTag_;
00222 
00223 
00224          // Top folder in root file
00225     std::string FolderName_;
00226     std::stringstream topFolder;
00227             
00228  
00229   
00230 };
00231 
00232 
00233 #endif