diff --git a/GeneratorInterface/LHEInterface/python/lhe2HepMCConverter_cff.py b/GeneratorInterface/LHEInterface/python/lhe2HepMCConverter_cff.py
new file mode 100644
index 0000000000000..6d05f9a1f7a61
--- /dev/null
+++ b/GeneratorInterface/LHEInterface/python/lhe2HepMCConverter_cff.py
@@ -0,0 +1,6 @@
+import FWCore.ParameterSet.Config as cms
+
+generator = cms.EDProducer("LHE2HepMCConverter",
+ LHEEventProduct = cms.InputTag("source"),
+ LHERunInfoProduct = cms.InputTag("source")
+ )
diff --git a/GeneratorInterface/LHEInterface/python/lheCOMWeightProducer.py b/GeneratorInterface/LHEInterface/python/lheCOMWeightProducer.py
new file mode 100644
index 0000000000000..bf7471718bdb7
--- /dev/null
+++ b/GeneratorInterface/LHEInterface/python/lheCOMWeightProducer.py
@@ -0,0 +1,6 @@
+import FWCore.ParameterSet.Config as cms
+
+lheCOMWeightProducer = cms.EDProducer("LHECOMWeightProducer",
+ lheSrc = cms.InputTag("source"),
+ NewECMS = cms.double(7000)
+ )
diff --git a/Validation/EventGenerator/BuildFile.xml b/Validation/EventGenerator/BuildFile.xml
index 07be7b94331d7..2e2ced026f0be 100644
--- a/Validation/EventGenerator/BuildFile.xml
+++ b/Validation/EventGenerator/BuildFile.xml
@@ -1,5 +1,8 @@
+
+
+
diff --git a/Validation/EventGenerator/interface/BasicGenParticleValidation.h b/Validation/EventGenerator/interface/BasicGenParticleValidation.h
index 9c17e41a1d4fa..e58e9f0a661f4 100644
--- a/Validation/EventGenerator/interface/BasicGenParticleValidation.h
+++ b/Validation/EventGenerator/interface/BasicGenParticleValidation.h
@@ -34,6 +34,7 @@
#include "SimGeneral/HepPDTRecord/interface/ParticleDataTable.h"
+#include "Validation/EventGenerator/interface/WeightManager.h"
class BasicGenParticleValidation : public edm::EDAnalyzer
{
@@ -50,6 +51,8 @@ class BasicGenParticleValidation : public edm::EDAnalyzer
private:
+ WeightManager _wmanager;
+
edm::InputTag hepmcCollection_;
edm::InputTag genparticleCollection_;
edm::InputTag genjetCollection_;
diff --git a/Validation/EventGenerator/interface/BasicHepMCHeavyIonValidation.h b/Validation/EventGenerator/interface/BasicHepMCHeavyIonValidation.h
new file mode 100644
index 0000000000000..7b4d82914e8c5
--- /dev/null
+++ b/Validation/EventGenerator/interface/BasicHepMCHeavyIonValidation.h
@@ -0,0 +1,80 @@
+#ifndef BASICHEPMCHEAVYIONVALIDATION_H
+#define BASICHEPMCHEAVYIONVALIDATION_H
+
+/*class BasicHepMCHeavyIonValidation
+ *
+ * Class to fill Event Generator dqm monitor elements; works on HepMCProduct HepMC::HeavyIon
+ * Quan Wang - 04/2013
+ *
+ */
+
+// framework & common header files
+#include "FWCore/Framework/interface/EDAnalyzer.h"
+#include "FWCore/Framework/interface/Event.h"
+#include "FWCore/Framework/interface/EventSetup.h"
+#include "FWCore/Framework/interface/Run.h"
+
+#include "DataFormats/Common/interface/Handle.h"
+#include "FWCore/Framework/interface/ESHandle.h"
+#include "FWCore/ParameterSet/interface/ParameterSet.h"
+#include "FWCore/Utilities/interface/InputTag.h"
+
+//DQM services
+#include "DQMServices/Core/interface/DQMStore.h"
+#include "FWCore/ServiceRegistry/interface/Service.h"
+#include "DQMServices/Core/interface/MonitorElement.h"
+
+#include "SimDataFormats/GeneratorProducts/interface/HepMCProduct.h"
+
+#include "SimGeneral/HepPDTRecord/interface/ParticleDataTable.h"
+
+#include "Validation/EventGenerator/interface/WeightManager.h"
+
+class BasicHepMCHeavyIonValidation : public edm::EDAnalyzer
+{
+ public:
+ explicit BasicHepMCHeavyIonValidation(const edm::ParameterSet&);
+ virtual ~BasicHepMCHeavyIonValidation();
+ virtual void beginJob();
+ virtual void endJob();
+ virtual void analyze(const edm::Event&, const edm::EventSetup&);
+ virtual void beginRun(const edm::Run&, const edm::EventSetup&);
+ virtual void endRun(const edm::Run&, const edm::EventSetup&);
+
+ private:
+
+ WeightManager _wmanager;
+
+ edm::InputTag hepmcCollection_;
+ bool QWdebug_;
+
+ /// PDT table
+ //edm::ESHandle fPDGTable ;
+
+ ///ME's "container"
+ DQMStore *dbe;
+
+ MonitorElement* nEvt;
+
+ // Additional information stored in HeavyIon structure
+ MonitorElement* Ncoll_hard; // Number of hard scatterings
+ MonitorElement* Npart_proj; // Number of projectile participants
+ MonitorElement* Npart_targ; // Number of target participants
+ MonitorElement* Ncoll; // Number of NN (nucleon-nucleon) collisions
+ MonitorElement* N_Nwounded_collisions; // Number of N-Nwounded collisions
+ MonitorElement* Nwounded_N_collisions; // Number of Nwounded-N collisons
+ MonitorElement* Nwounded_Nwounded_collisions; // Number of Nwounded-Nwounded collisions
+ MonitorElement* spectator_neutrons; // Number of spectator neutrons
+ MonitorElement* spectator_protons; // Number of spectator protons
+ MonitorElement* impact_parameter; // Impact Parameter(fm) of collision
+ MonitorElement* event_plane_angle; // Azimuthal angle of event plane
+ MonitorElement* eccentricity; // eccentricity of participating nucleons
+ // in the transverse plane
+ // (as in phobos nucl-ex/0510031)
+ MonitorElement* sigma_inel_NN; // nucleon-nucleon inelastic
+ // (including diffractive) cross-section
+
+
+};
+
+#endif
diff --git a/Validation/EventGenerator/interface/BasicHepMCValidation.h b/Validation/EventGenerator/interface/BasicHepMCValidation.h
index 9f534f9c0aeea..9a67d84da2c45 100644
--- a/Validation/EventGenerator/interface/BasicHepMCValidation.h
+++ b/Validation/EventGenerator/interface/BasicHepMCValidation.h
@@ -30,6 +30,7 @@
#include "SimGeneral/HepPDTRecord/interface/ParticleDataTable.h"
+#include "Validation/EventGenerator/interface/WeightManager.h"
class BasicHepMCValidation : public edm::EDAnalyzer
{
@@ -44,6 +45,8 @@ class BasicHepMCValidation : public edm::EDAnalyzer
private:
+ WeightManager _wmanager;
+
edm::InputTag hepmcCollection_;
/// PDT table
@@ -101,6 +104,8 @@ class BasicHepMCValidation : public edm::EDAnalyzer
MonitorElement *stablePtclCharge;
MonitorElement *stablePtclp;
MonitorElement *stablePtclpT;
+ MonitorElement *partonNumber;
+ MonitorElement *partonpT;
MonitorElement *outVrtxStablePtclNumber;
//
MonitorElement *vrtxZ;
@@ -108,6 +113,13 @@ class BasicHepMCValidation : public edm::EDAnalyzer
//
MonitorElement *Bjorken_x;
+ MonitorElement *status1ShortLived;
+
+ MonitorElement *DeltaEcms;
+ MonitorElement *DeltaPx;
+ MonitorElement *DeltaPy;
+ MonitorElement *DeltaPz;
+
};
#endif
diff --git a/Validation/EventGenerator/interface/DrellYanValidation.h b/Validation/EventGenerator/interface/DrellYanValidation.h
index 4775fcb02fa41..4be25f25f61fd 100644
--- a/Validation/EventGenerator/interface/DrellYanValidation.h
+++ b/Validation/EventGenerator/interface/DrellYanValidation.h
@@ -30,6 +30,7 @@
#include "SimGeneral/HepPDTRecord/interface/ParticleDataTable.h"
+#include "Validation/EventGenerator/interface/WeightManager.h"
class DrellYanValidation : public edm::EDAnalyzer
{
@@ -44,6 +45,8 @@ class DrellYanValidation : public edm::EDAnalyzer
private:
+ WeightManager _wmanager;
+
edm::InputTag hepmcCollection_;
/// PDT table
diff --git a/Validation/EventGenerator/interface/DuplicationChecker.h b/Validation/EventGenerator/interface/DuplicationChecker.h
index 953d6c9c2cfa3..019bd5cdde6d5 100644
--- a/Validation/EventGenerator/interface/DuplicationChecker.h
+++ b/Validation/EventGenerator/interface/DuplicationChecker.h
@@ -35,6 +35,8 @@
#include "SimDataFormats/GeneratorProducts/interface/LHEEventProduct.h"
#include "DataFormats/Provenance/interface/EventID.h"
+#include "Validation/EventGenerator/interface/WeightManager.h"
+
class DuplicationChecker : public edm::EDAnalyzer
{
@@ -53,8 +55,10 @@ class DuplicationChecker : public edm::EDAnalyzer
void findValuesAssociatedWithKey(associationMap &mMap, double &key, itemList &theObjects);
private:
+ WeightManager _wmanager;
edm::InputTag generatedCollection_;
+ edm::InputTag lheEventProduct_;
bool searchForLHE_;
diff --git a/Validation/EventGenerator/interface/HiggsValidation.h b/Validation/EventGenerator/interface/HiggsValidation.h
new file mode 100644
index 0000000000000..5cb1862d47331
--- /dev/null
+++ b/Validation/EventGenerator/interface/HiggsValidation.h
@@ -0,0 +1,187 @@
+#ifndef HiggsValidation_H
+#define HiggsValidation_H
+
+/*class HiggsValidation
+ *
+ * Class to fill Event Generator dqm monitor elements; works on HepMCProduct
+ *
+ * $Date: 2012/08/12 16:13:28 $
+ * $Revision: 1.1 $
+ *
+ */
+#include
+
+// framework & common header files
+#include "FWCore/Framework/interface/EDAnalyzer.h"
+#include "FWCore/Framework/interface/Event.h"
+#include "FWCore/Framework/interface/EventSetup.h"
+#include "FWCore/Framework/interface/Run.h"
+
+#include "DataFormats/Common/interface/Handle.h"
+#include "FWCore/Framework/interface/ESHandle.h"
+#include "FWCore/ParameterSet/interface/ParameterSet.h"
+#include "FWCore/Utilities/interface/InputTag.h"
+
+//DQM services
+#include "DQMServices/Core/interface/DQMStore.h"
+#include "FWCore/ServiceRegistry/interface/Service.h"
+#include "DQMServices/Core/interface/MonitorElement.h"
+
+#include "SimDataFormats/GeneratorProducts/interface/HepMCProduct.h"
+//#include "DataFormats/HepMCCandidate/interface/GenParticle.h"
+
+#include "SimGeneral/HepPDTRecord/interface/ParticleDataTable.h"
+#include "TLorentzVector.h"
+
+#include "Validation/EventGenerator/interface/WeightManager.h"
+
+class HiggsValidation : public edm::EDAnalyzer {
+ public:
+ explicit HiggsValidation(const edm::ParameterSet&);
+ virtual ~HiggsValidation();
+ virtual void beginJob();
+ virtual void endJob();
+ virtual void analyze(const edm::Event&, const edm::EventSetup&);
+ virtual void beginRun(const edm::Run&, const edm::EventSetup&);
+ virtual void endRun(const edm::Run&, const edm::EventSetup&);
+
+ private:
+
+
+ class MonitoredDecays {
+ public:
+
+ MonitoredDecays(const edm::ParameterSet& iConfig){
+ fillMap();
+ std::vector input = iConfig.getParameter >("monitorDecays");
+ for(std::vector::const_iterator i = input.begin(); i!= input.end(); ++i){
+ fill(*i);
+ }
+ }
+
+ ~MonitoredDecays(){};
+
+ size_t position(int pid1,int pid2){
+ if(abs(pid1) == 14 || abs(pid1) == 16) pid1 = 12;
+ if(abs(pid2) == 14 || abs(pid2) == 16) pid2 = 12;
+ for(size_t i = 0; i < channels.size(); ++i){
+ if((channels[i].first == abs(pid1) && channels[i].second == abs(pid2)) ||
+ (channels[i].first == abs(pid2) && channels[i].second == abs(pid1))) return i+1;
+ }
+ return channels.size()+1;
+ }
+
+ size_t size(){return channels.size() + 2;}
+ size_t undetermined(){return 0;}
+ size_t stable(){return size();}
+ std::string channel(size_t i){
+ if(i == 0) return "?";
+ if(i == channels.size()+1) return "Stable";
+ return convert(channels[i-1].first)+convert(channels[i-1].second);
+ }
+
+ int convert(std::string s){
+ if( namePidMap.count(s)){
+ return namePidMap[s];
+ }
+ return 0;
+ }
+
+ std::string convert(int pid){
+ pid = abs(pid);
+ if(pid == 14 || pid == 16) pid = 12;
+ for(std::map::const_iterator i = namePidMap.begin(); i!= namePidMap.end(); ++i) {
+ if(i->second == pid) return i->first;
+ }
+ return "not found";
+ }
+
+ unsigned int NDecayParticles(){return nparticles_;}
+
+ int isDecayParticle(int pid){
+ int idx=0;
+ for(std::map::const_iterator i = namePidMap.begin(); i!= namePidMap.end(); ++i) {
+ if(i->second == pid) return idx;
+ idx++;
+ }
+ return -1;
+ }
+
+ std::string ConvertIndex(int index){
+ int idx=0;
+ for(std::map::const_iterator i = namePidMap.begin(); i!= namePidMap.end(); ++i) {
+ if(idx==index) return i->first;
+ idx++;
+ }
+ return "unknown";
+ }
+
+ private:
+ void fill(std::string s){
+ size_t pos = s.find("+");
+ std::string particle1 = s.substr(0,pos);
+ std::string particle2 = s.substr(pos+1,s.length()-pos);
+ std::pair decay;
+ decay.first = convert(particle1);
+ decay.second = convert(particle2);
+ channels.push_back(decay);
+ }
+
+ void fillMap(){
+ namePidMap["d"] = 1;
+ namePidMap["u"] = 2;
+ namePidMap["s"] = 3;
+ namePidMap["c"] = 4;
+ namePidMap["b"] = 5;
+ namePidMap["t"] = 6;
+ namePidMap["e"] = 11;
+ namePidMap["nu"] = 12;
+ namePidMap["mu"] = 13;
+ namePidMap["tau"] = 15;
+ namePidMap["gamma"] = 22;
+ namePidMap["Z"] = 23;
+ namePidMap["W"] = 24;
+ nparticles_=0;
+ for(std::map::const_iterator i = namePidMap.begin(); i!= namePidMap.end(); ++i){
+ nparticles_++;
+ }
+ }
+
+ std::map namePidMap;
+
+ std::vector > channels;
+ unsigned int nparticles_;
+
+ };
+
+ int findHiggsDecayChannel(const HepMC::GenParticle*,std::vector &decayprod);
+ std::string convert(int);
+
+ WeightManager _wmanager;
+
+ edm::InputTag hepmcCollection_;
+
+ int particle_id;
+ std::string particle_name;
+
+ MonitoredDecays* monitoredDecays;
+
+ /// PDT table
+ edm::ESHandle fPDGTable ;
+
+ ///ME's "container"
+ DQMStore *dbe;
+
+ MonitorElement *nEvt;
+ MonitorElement *HiggsDecayChannels;
+
+ MonitorElement *Higgs_pt;
+ MonitorElement *Higgs_eta;
+ MonitorElement *Higgs_mass;
+
+ std::vector HiggsDecayProd_pt;
+ std::vector HiggsDecayProd_eta;
+
+};
+
+#endif
diff --git a/Validation/EventGenerator/interface/MBUEandQCDValidation.h b/Validation/EventGenerator/interface/MBUEandQCDValidation.h
index 23da5b6764700..7aa849cba3ad0 100644
--- a/Validation/EventGenerator/interface/MBUEandQCDValidation.h
+++ b/Validation/EventGenerator/interface/MBUEandQCDValidation.h
@@ -33,6 +33,7 @@
#include "SimGeneral/HepPDTRecord/interface/ParticleDataTable.h"
#include "Validation/EventGenerator/interface/CaloCellManager.h"
+#include "Validation/EventGenerator/interface/WeightManager.h"
#include
@@ -49,6 +50,8 @@ class MBUEandQCDValidation : public edm::EDAnalyzer
private:
+ WeightManager _wmanager;
+
edm::InputTag hepmcCollection_;
edm::InputTag genchjetCollection_;
edm::InputTag genjetCollection_;
diff --git a/Validation/EventGenerator/interface/PdtPdgMini.h b/Validation/EventGenerator/interface/PdtPdgMini.h
new file mode 100755
index 0000000000000..70d54624fb0f5
--- /dev/null
+++ b/Validation/EventGenerator/interface/PdtPdgMini.h
@@ -0,0 +1,127 @@
+#ifndef PdtPDGMini_h
+#define PdtPDGMini_h
+
+class PdtPdgMini{
+ public:
+ enum PdgPDTMini
+ {
+ d = 1 ,
+ anti_d = -1 ,
+ u = 2 ,
+ anti_u = -2 ,
+ s = 3 ,
+ anti_s = -3 ,
+ c = 4 ,
+ anti_c = -4 ,
+ b = 5 ,
+ anti_b = -5 ,
+ t = 6 ,
+ anti_t = -6 ,
+ l = 7 ,
+ anti_l = -7 ,
+ h = 8 ,
+ anti_h = -8 ,
+ g = 21 ,
+ e_minus = 11 ,
+ e_plus = -11 ,
+ nu_e = 12 ,
+ anti_nu_e = -12 ,
+ mu_minus = 13 ,
+ mu_plus = -13 ,
+ nu_mu = 14 ,
+ anti_nu_mu = -14 ,
+ tau_minus = 15 ,
+ tau_plus = -15 ,
+ nu_tau = 16 ,
+ anti_nu_tau = -16 ,
+ L_minus = 17 ,
+ L_plus = -17 ,
+ nu_L = 18 ,
+ anti_nu_L = -18 ,
+ gamma = 22 ,
+ Z0 = 23 ,
+ W_plus = 24 ,
+ W_minus = -24 ,
+ Higgs0 = 25 ,
+ reggeon = 28 ,
+ pomeron = 29 ,
+ Z_prime0 = 32 ,
+ Z_prime_prime0 = 33 ,
+ W_prime_plus = 34 ,
+ W_prime_minus = -34 ,
+ Higgs_prime0 = 35 ,
+ A0 = 36 ,
+ Higgs_plus = 37 ,
+ Higgs_minus = -37 ,
+ pi0 = 111 ,
+ pi_plus = 211 ,
+ pi_minus = -211 ,
+ pi_diffr_plus = 210 ,
+ pi_diffr_minus = -210 ,
+ pi_2S0 = 20111 ,
+ pi_2S_plus = 20211 ,
+ pi_2S_minus = -20211 ,
+ eta = 221 ,
+ eta_2S = 20221 ,
+ eta_prime = 331 ,
+ rho0 = 113 ,
+ rho_plus = 213 ,
+ rho_minus = -213 ,
+ rho_2S0 = 30113 ,
+ rho_2S_plus = 30213 ,
+ rho_2S_minus = -30213 ,
+ rho_3S0 = 40113 ,
+ rho_3S_plus = 40213 ,
+ rho_3S_minus = -40213 ,
+ omega = 223 ,
+ omega_2S = 30223 ,
+ phi = 333 ,
+ a_00 = 10111 ,
+ a_0_plus = 10211 ,
+ a_0_minus = -10211 ,
+ f_0 = 10221 ,
+ f_prime_0 = 10331 ,
+ b_10 = 10113 ,
+ b_1_plus = 10213 ,
+ b_1_minus = -10213 ,
+ h_1 = 10223 ,
+ h_prime_1 = 10333 ,
+ a_10 = 20113 ,
+ a_1_plus = 20213 ,
+ a_1_minus = -20213 ,
+ f_1 = 20223 ,
+ f_prime_1 = 20333 ,
+ a_20 = 115 ,
+ a_2_plus = 215 ,
+ a_2_minus = -215 ,
+ f_2 = 225 ,
+ f_prime_2 = 335 ,
+ K0 = 311 ,
+ anti_K0 = -311 ,
+ K_S0 = 310 ,
+ K_L0 = 130 ,
+ K_plus = 321 ,
+ K_minus = -321 ,
+ K_star0 = 313 ,
+ anti_K_star0 = -313 ,
+ K_star_plus = 323 ,
+ K_star_minus = -323 ,
+ K_0_star0 = 10311 ,
+ anti_K_0_star0 = -10311 ,
+ K_0_star_plus = 10321 ,
+ K_0_star_minus = -10321 ,
+ K_10 = 10313 ,
+ anti_K_10 = -10313 ,
+ K_1_plus = 10323 ,
+ K_1_minus = -10323 ,
+ K_2_star0 = 315 ,
+ anti_K_2_star0 = -315 ,
+ K_2_star_plus = 325 ,
+ K_2_star_minus = -325 ,
+ K_prime_10 = 20313 ,
+ anti_K_prime_10 = -20313 ,
+ K_prime_1_plus = 20323 ,
+ K_prime_1_minus = -20323
+ };
+};
+#endif
diff --git a/Validation/EventGenerator/interface/TTbarSpinCorrHepMCAnalyzer.h b/Validation/EventGenerator/interface/TTbarSpinCorrHepMCAnalyzer.h
new file mode 100644
index 0000000000000..78b50821f96c4
--- /dev/null
+++ b/Validation/EventGenerator/interface/TTbarSpinCorrHepMCAnalyzer.h
@@ -0,0 +1,83 @@
+// -*- C++ -*-
+//
+// Package: TTbarSpinCorrHepMCAnalyzer
+// Class: TTbarSpinCorrHepMCAnalyzer
+//
+/**\class TTbarSpinCorrHepMCAnalyzer TTbarAnalyzer.cc MCstuff/TTbarAnalyzer/src/TTbarAnalyzer.cc
+
+ Description: [one line class summary]
+
+ Implementation:
+ [Notes on implementation]
+*/
+//
+// Original Author: Martijn Gosselink,,,
+// Created: Thu Jan 19 18:40:35 CET 2012
+// $Id: TTbarSpinCorrHepMCAnalyzer.h,v 1.3 2012/10/16 15:08:10 inugent Exp $
+//
+//
+// Added to: Validation/EventGenerator by Ian M. Nugent Oct 9, 2012
+
+
+// system include files
+#include
+
+// user include files
+#include "FWCore/Framework/interface/Frameworkfwd.h"
+#include "FWCore/Framework/interface/EDAnalyzer.h"
+#include "DQMServices/Core/interface/DQMStore.h"
+#include "FWCore/ServiceRegistry/interface/Service.h"
+#include "DQMServices/Core/interface/MonitorElement.h"
+
+#include "FWCore/Framework/interface/Event.h"
+#include "FWCore/Framework/interface/MakerMacros.h"
+
+#include "FWCore/ParameterSet/interface/ParameterSet.h"
+
+#include "FWCore/ServiceRegistry/interface/Service.h"
+#include "FWCore/Utilities/interface/InputTag.h"
+#include "CommonTools/UtilAlgos/interface/TFileService.h"
+
+#include "SimDataFormats/GeneratorProducts/interface/GenEventInfoProduct.h"
+#include "SimDataFormats/GeneratorProducts/interface/HepMCProduct.h"
+
+#include "AnalysisDataFormats/TopObjects/interface/TtGenEvent.h"
+
+#include "CLHEP/Units/GlobalPhysicalConstants.h"
+
+#include "TFile.h"
+#include "TH1D.h"
+#include "TLorentzVector.h"
+
+//
+// class declaration
+//
+
+class TTbarSpinCorrHepMCAnalyzer : public edm::EDAnalyzer {
+public:
+ explicit TTbarSpinCorrHepMCAnalyzer(const edm::ParameterSet&);
+ ~TTbarSpinCorrHepMCAnalyzer();
+
+private:
+ virtual void beginJob() ;
+ virtual void analyze(const edm::Event&, const edm::EventSetup&);
+ virtual void endJob() ;
+
+ virtual void beginRun(edm::Run const&, edm::EventSetup const&);
+ virtual void endRun(edm::Run const&, edm::EventSetup const&);
+ virtual void beginLuminosityBlock(edm::LuminosityBlock const&, edm::EventSetup const&);
+ virtual void endLuminosityBlock(edm::LuminosityBlock const&, edm::EventSetup const&);
+
+ // ----------member data ---------------------------
+ DQMStore *dbe;
+ double weight ;
+
+ MonitorElement* nEvt;
+ MonitorElement* _h_asym ;
+ MonitorElement* _h_deltaPhi ;
+
+ MonitorElement* _h_llpairPt ;
+ MonitorElement* _h_llpairM ;
+
+ edm::InputTag genEventInfoProductTag_,genParticlesTag_;
+};
diff --git a/Validation/EventGenerator/interface/TTbar_GenJetAnalyzer.h b/Validation/EventGenerator/interface/TTbar_GenJetAnalyzer.h
new file mode 100644
index 0000000000000..47512ed9d77b8
--- /dev/null
+++ b/Validation/EventGenerator/interface/TTbar_GenJetAnalyzer.h
@@ -0,0 +1,85 @@
+// -*- C++ -*-
+//
+// Package: ObjectAnalyzer
+// Class: TTbar_GenJetAnalyzer
+//
+/**\class TTbar_GenJetAnalyzer
+
+ Description: [one line class summary]
+
+ Implementation:
+ [Notes on implementation]
+*/
+//
+// Original Author: Martijn Gosselink,,,
+// Created: Thu May 10 17:15:16 CEST 2012
+// $Id: TTbar_GenJetAnalyzer.h,v 1.2 2012/08/24 21:47:01 wdd Exp $
+//
+//
+// Added to: Validation/EventGenerator by Ian M. Nugent June 28, 2012
+
+// system include files
+#include
+
+// user include files
+#include "FWCore/Framework/interface/Frameworkfwd.h"
+#include "FWCore/Framework/interface/EDAnalyzer.h"
+#include "DQMServices/Core/interface/DQMStore.h"
+#include "FWCore/ServiceRegistry/interface/Service.h"
+#include "DQMServices/Core/interface/MonitorElement.h"
+
+
+#include "FWCore/Framework/interface/Event.h"
+#include "FWCore/Framework/interface/MakerMacros.h"
+
+#include "FWCore/ParameterSet/interface/ParameterSet.h"
+
+#include "FWCore/ServiceRegistry/interface/Service.h"
+#include "FWCore/Utilities/interface/InputTag.h"
+
+#include "CommonTools/UtilAlgos/interface/TFileService.h"
+
+#include "SimDataFormats/GeneratorProducts/interface/GenEventInfoProduct.h"
+
+#include "DataFormats/Common/interface/Handle.h"
+#include "DataFormats/JetReco/interface/Jet.h"
+#include "DataFormats/PatCandidates/interface/Jet.h"
+
+
+#include