CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_5/src/Validation/EventGenerator/interface/VVVValidation.h

Go to the documentation of this file.
00001 #ifndef VVVVALIDATION_H
00002 #define VVVVALIDATION_H
00003 
00004 
00005 // framework & common header files
00006 #include "TLorentzVector.h" 
00007 #include "FWCore/Framework/interface/EDAnalyzer.h"
00008 #include "FWCore/Framework/interface/Event.h"
00009 #include "FWCore/Framework/interface/EventSetup.h"
00010 #include "FWCore/Framework/interface/Run.h"
00011 #include "DataFormats/Math/interface/deltaR.h"
00012 #include "DataFormats/Common/interface/Handle.h"
00013 #include "FWCore/Framework/interface/ESHandle.h"
00014 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00015 #include "FWCore/Utilities/interface/InputTag.h"
00016 
00017 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00018 
00019 //DQM services
00020 #include "DQMServices/Core/interface/DQMStore.h"
00021 #include "FWCore/ServiceRegistry/interface/Service.h"
00022 #include "DQMServices/Core/interface/MonitorElement.h"
00023 
00024 #include "SimDataFormats/GeneratorProducts/interface/HepMCProduct.h"
00025 #include "HepMC/GenParticle.h"
00026 #include "DataFormats/HepMCCandidate/interface/GenParticle.h"
00027 #include "DataFormats/JetReco/interface/GenJetCollection.h"
00028 
00029 #include "SimGeneral/HepPDTRecord/interface/ParticleDataTable.h"
00030 
00031 #include "Validation/EventGenerator/interface/WeightManager.h"
00032 class VVVValidation : public edm::EDAnalyzer
00033 {
00034     public:
00035         explicit VVVValidation(const edm::ParameterSet&);
00036         virtual ~VVVValidation();
00037         virtual void beginJob();
00038         virtual void endJob();  
00039         virtual void analyze(const edm::Event&, const edm::EventSetup&);
00040         virtual void beginRun(const edm::Run&, const edm::EventSetup&);
00041         virtual void endRun(const edm::Run&, const edm::EventSetup&);
00042 
00043     bool matchParticles(const HepMC::GenParticle*&, const reco::GenParticle*&); 
00044     int getParentBarcode(HepMC::GenParticle* it);
00045 
00046     private:
00047 
00048     WeightManager _wmanager;
00049 
00050     edm::InputTag hepmcCollection_;
00051     edm::InputTag genparticleCollection_;
00052     edm::InputTag genjetCollection_;
00053     double matchPr_;
00054     double _lepStatus;
00055     double _motherStatus;       
00056 
00057     unsigned int verbosity_;
00058 
00060         edm::ESHandle<HepPDT::ParticleDataTable> fPDGTable ;
00061         
00063         DQMStore *dbe;
00064 
00065     MonitorElement *nEvt;
00066 
00067     // Basic reco::GenParticle test
00068   
00069     // Basci GenJets analysis
00070     MonitorElement * mll;
00071     MonitorElement * ptll;
00072     MonitorElement * mlll;
00073     MonitorElement * ptlll;
00074     MonitorElement * mlllnununu;
00075     MonitorElement * mtlllnununu;
00076     MonitorElement * ptlllnununu;
00077     MonitorElement * leading_l_pt ;
00078     MonitorElement * subleading_l_pt ;
00079     MonitorElement * subsubleading_l_pt; 
00080     MonitorElement * leading_l_eta ;
00081     MonitorElement * subleading_l_eta ;
00082     MonitorElement * subsubleading_l_eta; 
00083     MonitorElement *genJetMult;
00084     MonitorElement *genJetEnergy;
00085     MonitorElement *genJetPt;
00086     MonitorElement *genJetEta;
00087     MonitorElement *genJetPhi;
00088     MonitorElement *genJetDeltaEtaMin;
00089     MonitorElement *h_dr;
00090     MonitorElement *genJetPto1;
00091     MonitorElement *genJetPto30;
00092     MonitorElement *genJetPto50;
00093     MonitorElement *genJetPto100;
00094     MonitorElement *genJetCentral;
00095 
00096     MonitorElement *genJetTotPt;
00097     MonitorElement *WW_TwoJEt_JetsM;
00098 
00099     MonitorElement *h_l_jet_eta;
00100     MonitorElement *h_l_jet_pt;
00101     MonitorElement *h_sl_jet_eta;
00102     MonitorElement *h_sl_jet_pt;
00103     MonitorElement *h_ssl_jet_eta;
00104     MonitorElement *h_ssl_jet_pt;
00105 
00106     MonitorElement *h_mWplus ;
00107     MonitorElement *h_phiWplus;
00108     MonitorElement *h_ptWplus ;
00109     MonitorElement *h_yWplus;
00110 
00111     MonitorElement *h_mWminus;
00112     MonitorElement *h_phiWminus;
00113     MonitorElement *h_ptWminus;
00114     MonitorElement *h_yWminus;
00115 
00116     MonitorElement *h_mZ;
00117     MonitorElement *h_phiZ;
00118     MonitorElement *h_ptZ;
00119     MonitorElement *h_yZ;
00120     MonitorElement *h_mWplus_3b ;
00121     MonitorElement *h_phiWplus_3b;
00122     MonitorElement *h_ptWplus_3b ;
00123     MonitorElement *h_yWplus_3b;
00124 
00125     MonitorElement *h_mWminus_3b;
00126     MonitorElement *h_phiWminus_3b;
00127     MonitorElement *h_ptWminus_3b;
00128     MonitorElement *h_yWminus_3b;
00129 
00130     MonitorElement *h_mZ_3b;
00131     MonitorElement *h_phiZ_3b;
00132     MonitorElement *h_ptZ_3b;
00133     MonitorElement *h_yZ_3b;
00134 
00135     MonitorElement *h_mWW;
00136     MonitorElement *h_phiWW;
00137     MonitorElement *h_ptWW;
00138     MonitorElement *h_yWW;
00139 
00140     MonitorElement *h_mWZ;
00141     MonitorElement *h_phiWZ;
00142     MonitorElement *h_ptWZ;
00143     MonitorElement *h_yWZ;
00144 
00145     MonitorElement *h_mZZ;
00146     MonitorElement *h_phiZZ;
00147     MonitorElement *h_ptZZ;
00148     MonitorElement *h_yZZ;
00149 
00150     MonitorElement *h_mWWW;
00151     MonitorElement *h_phiWWW;
00152     MonitorElement *h_ptWWW;
00153     MonitorElement *h_yWWW;
00154 
00155     MonitorElement *h_mWWZ;
00156     MonitorElement *h_phiWWZ;
00157     MonitorElement *h_ptWWZ;
00158     MonitorElement *h_yWWZ;
00159 
00160     MonitorElement *h_mWZZ;
00161     MonitorElement *h_phiWZZ;
00162     MonitorElement *h_ptWZZ;
00163     MonitorElement *h_yWZZ;
00164 
00165     MonitorElement *h_mZZZ;
00166     MonitorElement *h_phiZZZ;
00167     MonitorElement *h_ptZZZ;
00168     MonitorElement *h_yZZZ;
00169 
00170 
00171 };
00172 
00173 #endif