import FWCore.ParameterSet.Config as cms
from DQMServices.Core.DQMEDHarvester import DQMEDHarvester

postProcessorBasicHepMCValidation = DQMEDHarvester(
    "DQMGenericClient",
    subDirs = cms.untracked.vstring("Generator/Particles*"),
    efficiency = cms.vstring(""),
    resolution = cms.vstring(""),
    normalization = cms.untracked.vstring("Bjorken_x nEvt")
    )
postProcessorBasicHepMCValidation.normalization.extend(["BminusEta nEvt",
                                                        "BminusLifeTime nEvt",
                                                        "BminusLifeTimeFinal nEvt",
                                                        "BminusMomentum nEvt",
                                                        "BminusMomentumFinal nEvt",
                                                        "BminusNumber nEvt",
                                                        "BplusEta nEvt",
                                                        "BplusLifeTime nEvt",
                                                        "BplusLifeTimeFinal nEvt",
                                                        "BplusMomentum nEvt",
                                                        "BplusMomentumFinal nEvt",
                                                        "BplusNumber nEvt",
                                                        "BszeroEta nEvt",
                                                        "BszeroLifeTime nEvt",
                                                        "BszeroLifeTimeFinal nEvt",
                                                        "BszeroMomentum nEvt",
                                                        "BszeroMomentumFinal nEvt",
                                                        "BszeroNumber nEvt",
                                                        "BszerobarEta nEvt",
                                                        "BszerobarLifeTime nEvt",
                                                        "BszerobarLifeTimeFinal nEvt",
                                                        "BszerobarMomentum nEvt",
                                                        "BszerobarMomentumFinal nEvt",
                                                        "BszerobarNumber nEvt",
                                                        "BzeroEta nEvt",
                                                        "BzeroLifeTime nEvt",
                                                        "BzeroLifeTimeFinal nEvt",
                                                        "BzeroMomentum nEvt",
                                                        "BzeroMomentumFinal nEvt",
                                                        "BzeroNumber nEvt",
                                                        "BzerobarEta nEvt",
                                                        "BzerobarLifeTime nEvt",
                                                        "BzerobarLifeTimeFinal nEvt",
                                                        "BzerobarMomentum nEvt",
                                                        "BzerobarMomentumFinal nEvt",
                                                        "BzerobarNumber nEvt",
                                                        "DeltaEcms1 nEvt",
                                                        "DeltaEcms1log10 nEvt",
                                                        "DeltaPx1 nEvt",
                                                        "DeltaPy1 nEvt",
                                                        "DeltaPz1 nEvt",
                                                        "DminusEta nEvt",
                                                        "DminusLifeTime nEvt",
                                                        "DminusLifeTimeFinal nEvt",
                                                        "DminusMomentum nEvt",
                                                        "DminusMomentumFinal nEvt",
                                                        "DminusNumber nEvt",
                                                        "DplusEta nEvt",
                                                        "DplusLifeTime nEvt",
                                                        "DplusLifeTimeFinal nEvt",
                                                        "DplusMomentum nEvt",
                                                        "DplusMomentumFinal nEvt",
                                                        "DplusNumber nEvt",
                                                        "DzeroEta nEvt",
                                                        "DzeroLifeTime nEvt",
                                                        "DzeroLifeTimeFinal nEvt",
                                                        "DzeroMomentum nEvt",
                                                        "DzeroMomentumFinal nEvt",
                                                        "DzeroNumber nEvt",
                                                        "DzerobarEta nEvt",
                                                        "DzerobarLifeTime nEvt",
                                                        "DzerobarLifeTimeFinal nEvt",
                                                        "DzerobarMomentum nEvt",
                                                        "DzerobarMomentumFinal nEvt",
                                                        "DzerobarNumber nEvt",
                                                        "KlzeroEta nEvt",
                                                        "KlzeroLifeTime nEvt",
                                                        "KlzeroLifeTimeFinal nEvt",
                                                        "KlzeroMomentum nEvt",
                                                        "KlzeroMomentumFinal nEvt",
                                                        "KlzeroNumber nEvt",
                                                        "KminusEta nEvt",
                                                        "KminusLifeTime nEvt",
                                                        "KminusLifeTimeFinal nEvt",
                                                        "KminusMomentum nEvt",
                                                        "KminusMomentumFinal nEvt",
                                                        "KminusNumber nEvt",
                                                        "KplusEta nEvt",
                                                        "KplusLifeTime nEvt",
                                                        "KplusLifeTimeFinal nEvt",
                                                        "KplusMomentum nEvt",
                                                        "KplusMomentumFinal nEvt",
                                                        "KplusNumber nEvt",
                                                        "KszeroEta nEvt",
                                                        "KszeroLifeTime nEvt",
                                                        "KszeroLifeTimeFinal nEvt",
                                                        "KszeroMomentum nEvt",
                                                        "KszeroMomentumFinal nEvt",
                                                        "KszeroNumber nEvt",
                                                        "VrtxZ nEvt",
                                                        "WminusEta nEvt",
                                                        "WminusLifeTime nEvt",
                                                        "WminusLifeTimeFinal nEvt",
                                                        "WminusMomentum nEvt",
                                                        "WminusMomentumFinal nEvt",
                                                        "WminusNumber nEvt",
                                                        "WplusEta nEvt",
                                                        "WplusLifeTime nEvt",
                                                        "WplusLifeTimeFinal nEvt",
                                                        "WplusMomentum nEvt",
                                                        "WplusMomentumFinal nEvt",
                                                        "WplusNumber nEvt",
                                                        "ZEta nEvt",
                                                        "ZLifeTime nEvt",
                                                        "ZLifeTimeFinal nEvt",
                                                        "ZMomentum nEvt",
                                                        "ZMomentumFinal nEvt",
                                                        "ZNumber nEvt",
                                                        "bEta nEvt",
                                                        "bLifeTime nEvt",
                                                        "bLifeTimeFinal nEvt",
                                                        "bMomentum nEvt",
                                                        "bMomentumFinal nEvt",
                                                        "bNumber nEvt",
                                                        "bbarEta nEvt",
                                                        "bbarLifeTime nEvt",
                                                        "bbarLifeTimeFinal nEvt",
                                                        "bbarMomentum nEvt",
                                                        "bbarMomentumFinal nEvt",
                                                        "bbarNumber nEvt",
                                                        "cEta nEvt",
                                                        "cLifeTime nEvt",
                                                        "cLifeTimeFinal nEvt",
                                                        "cMomentum nEvt",
                                                        "cMomentumFinal nEvt",
                                                        "cNumber nEvt",
                                                        "cbarEta nEvt",
                                                        "cbarLifeTime nEvt",
                                                        "cbarLifeTimeFinal nEvt",
                                                        "cbarMomentum nEvt",
                                                        "cbarMomentumFinal nEvt",
                                                        "cbarNumber nEvt",
                                                        "dEta nEvt",
                                                        "dLifeTime nEvt",
                                                        "dLifeTimeFinal nEvt",
                                                        "dMomentum nEvt",
                                                        "dMomentumFinal nEvt",
                                                        "dNumber nEvt",
                                                        "dbarEta nEvt",
                                                        "dbarLifeTime nEvt",
                                                        "dbarLifeTimeFinal nEvt",
                                                        "dbarMomentum nEvt",
                                                        "dbarMomentumFinal nEvt",
                                                        "dbarNumber nEvt",
                                                        "eminusEta nEvt",
                                                        "eminusLifeTime nEvt",
                                                        "eminusLifeTimeFinal nEvt",
                                                        "eminusMomentum nEvt",
                                                        "eminusMomentumFinal nEvt",
                                                        "eminusNumber nEvt",
                                                        "eplusEta nEvt",
                                                        "eplusLifeTime nEvt",
                                                        "eplusLifeTimeFinal nEvt",
                                                        "eplusMomentum nEvt",
                                                        "eplusMomentumFinal nEvt",
                                                        "eplusNumber nEvt",
                                                        "gammaEta nEvt",
                                                        "gammaLifeTime nEvt",
                                                        "gammaLifeTimeFinal nEvt",
                                                        "gammaMomentum nEvt",
                                                        "gammaMomentumFinal nEvt",
                                                        "gammaNumber nEvt",
                                                        "genPtclNumber nEvt",
                                                        "genPtclStatus nEvt",
                                                        "genVrtxNumber nEvt",
                                                        "gluonEta nEvt"])
postProcessorBasicHepMCValidation.normalization.extend(["gluonLifeTime nEvt",
                                                        "gluonLifeTimeFinal nEvt",
                                                        "gluonMomentum nEvt",
                                                        "gluonMomentumFinal nEvt",
                                                        "gluonNumber nEvt",
                                                        "lambda0Eta nEvt",
                                                        "lambda0LifeTime nEvt",
                                                        "lambda0LifeTimeFinal nEvt",
                                                        "lambda0Momentum nEvt",
                                                        "lambda0MomentumFinal nEvt",
                                                        "lambda0Number nEvt",
                                                        "lambda0barEta nEvt",
                                                        "lambda0barLifeTime nEvt",
                                                        "lambda0barLifeTimeFinal nEvt",
                                                        "lambda0barMomentum nEvt",
                                                        "lambda0barMomentumFinal nEvt",
                                                        "lambda0barNumber nEvt",
                                                        "muminusEta nEvt",
                                                        "muminusLifeTime nEvt",
                                                        "muminusLifeTimeFinal nEvt",
                                                        "muminusMomentum nEvt",
                                                        "muminusMomentumFinal nEvt",
                                                        "muminusNumber nEvt",
                                                        "muplusEta nEvt",
                                                        "muplusLifeTime nEvt",
                                                        "muplusLifeTimeFinal nEvt",
                                                        "muplusMomentum nEvt",
                                                        "muplusMomentumFinal nEvt",
                                                        "muplusNumber nEvt",
                                                        "nEta nEvt",
                                                        "nLifeTime nEvt",
                                                        "nLifeTimeFinal nEvt",
                                                        "nMomentum nEvt",
                                                        "nMomentumFinal nEvt",
                                                        "nNumber nEvt",
                                                        "nbarEta nEvt",
                                                        "nbarLifeTime nEvt",
                                                        "nbarLifeTimeFinal nEvt",
                                                        "nbarMomentum nEvt",
                                                        "nbarMomentumFinal nEvt",
                                                        "nbarNumber nEvt",
                                                        "nueEta nEvt",
                                                        "nueLifeTime nEvt",
                                                        "nueLifeTimeFinal nEvt",
                                                        "nueMomentum nEvt",
                                                        "nueMomentumFinal nEvt",
                                                        "nueNumber nEvt",
                                                        "nuebarEta nEvt",
                                                        "nuebarLifeTime nEvt",
                                                        "nuebarLifeTimeFinal nEvt",
                                                        "nuebarMomentum nEvt",
                                                        "nuebarMomentumFinal nEvt",
                                                        "nuebarNumber nEvt",
                                                        "numuEta nEvt",
                                                        "numuLifeTime nEvt",
                                                        "numuLifeTimeFinal nEvt",
                                                        "numuMomentum nEvt",
                                                        "numuMomentumFinal nEvt",
                                                        "numuNumber nEvt",
                                                        "numubarEta nEvt",
                                                        "numubarLifeTime nEvt",
                                                        "numubarLifeTimeFinal nEvt",
                                                        "numubarMomentum nEvt",
                                                        "numubarMomentumFinal nEvt",
                                                        "numubarNumber nEvt",
                                                        "nutauEta nEvt",
                                                        "nutauLifeTime nEvt",
                                                        "nutauLifeTimeFinal nEvt",
                                                        "nutauMomentum nEvt",
                                                        "nutauMomentumFinal nEvt",
                                                        "nutauNumber nEvt",
                                                        "nutaubarEta nEvt",
                                                        "nutaubarLifeTime nEvt",
                                                        "nutaubarLifeTimeFinal nEvt",
                                                        "nutaubarMomentum nEvt",
                                                        "nutaubarMomentumFinal nEvt",
                                                        "nutaubarNumber nEvt",
                                                        "otherPtclMomentum nEvt",
                                                        "otherPtclNumber nEvt",
                                                        "outVrtxPtclNumber nEvt",
                                                        "outVrtxStablePtclNumber nEvt",
                                                        "pEta nEvt",
                                                        "pLifeTime nEvt",
                                                        "pLifeTimeFinal nEvt",
                                                        "pMomentum nEvt",
                                                        "pMomentumFinal nEvt",
                                                        "pNumber nEvt",
                                                        "partonNumber nEvt",
                                                        "partonpT nEvt",
                                                        "pbarEta nEvt",
                                                        "pbarLifeTime nEvt",
                                                        "pbarLifeTimeFinal nEvt",
                                                        "pbarMomentum nEvt",
                                                        "pbarMomentumFinal nEvt",
                                                        "pbarNumber nEvt",
                                                        "piminusEta nEvt",
                                                        "piminusLifeTime nEvt",
                                                        "piminusLifeTimeFinal nEvt",
                                                        "piminusMomentum nEvt",
                                                        "piminusMomentumFinal nEvt",
                                                        "piminusNumber nEvt",
                                                        "piplusEta nEvt",
                                                        "piplusLifeTime nEvt",
                                                        "piplusLifeTimeFinal nEvt",
                                                        "piplusMomentum nEvt",
                                                        "piplusMomentumFinal nEvt",
                                                        "piplusNumber nEvt",
                                                        "pizeroEta nEvt",
                                                        "pizeroLifeTime nEvt",
                                                        "pizeroLifeTimeFinal nEvt",
                                                        "pizeroMomentum nEvt",
                                                        "pizeroMomentumFinal nEvt",
                                                        "pizeroNumber nEvt",
                                                        "sEta nEvt",
                                                        "sLifeTime nEvt",
                                                        "sLifeTimeFinal nEvt",
                                                        "sMomentum nEvt",
                                                        "sMomentumFinal nEvt",
                                                        "sNumber nEvt",
                                                        "sbarEta nEvt",
                                                        "sbarLifeTime nEvt",
                                                        "sbarLifeTimeFinal nEvt",
                                                        "sbarMomentum nEvt",
                                                        "sbarMomentumFinal nEvt",
                                                        "sbarNumber nEvt",
                                                        "stableChaNumber nEvt",
                                                        "stablePtclCharge nEvt",
                                                        "stablePtclEta nEvt",
                                                        "stablePtclNumber nEvt",
                                                        "stablePtclPhi nEvt",
                                                        "stablePtclp nEvt",
                                                        "stablePtclpT nEvt",
                                                        "status1ShortLived nEvt",
                                                        "tEta nEvt",
                                                        "tLifeTime nEvt",
                                                        "tLifeTimeFinal nEvt",
                                                        "tMomentum nEvt",
                                                        "tMomentumFinal nEvt",
                                                        "tNumber nEvt",
                                                        "tauminusEta nEvt",
                                                        "tauminusLifeTime nEvt",
                                                        "tauminusLifeTimeFinal nEvt",
                                                        "tauminusMomentum nEvt",
                                                        "tauminusMomentumFinal nEvt",
                                                        "tauminusNumber nEvt",
                                                        "tauplusEta nEvt",
                                                        "tauplusLifeTime nEvt",
                                                        "tauplusLifeTimeFinal nEvt",
                                                        "tauplusMomentum nEvt",
                                                        "tauplusMomentumFinal nEvt",
                                                        "tauplusNumber nEvt",
                                                        "tbarEta nEvt",
                                                        "tbarLifeTime nEvt",
                                                        "tbarLifeTimeFinal nEvt",
                                                        "tbarMomentum nEvt",
                                                        "tbarMomentumFinal nEvt",
                                                        "tbarNumber nEvt",
                                                        "uEta nEvt",
                                                        "uLifeTime nEvt",
                                                        "uLifeTimeFinal nEvt",
                                                        "uMomentum nEvt",
                                                        "uMomentumFinal nEvt",
                                                        "uNumber nEvt",
                                                        "ubarEta nEvt",
                                                        "ubarLifeTime nEvt",
                                                        "ubarLifeTimeFinal nEvt",
                                                        "ubarMomentum nEvt",
                                                        "ubarMomentumFinal nEvt",
                                                        "ubarNumber nEvt",
                                                        "unknownPDTNumber nEvt",
                                                        "vrtxRadius nEvt"])

postProcessorBasicGenParticleValidation = DQMEDHarvester(
    "DQMGenericClient",
    subDirs = cms.untracked.vstring("Generator/GenParticles*"),
    efficiency = cms.vstring(""),
    resolution = cms.vstring(""),
    normalization = cms.untracked.vstring("genPMultiplicity nEvt",
	                                  "genMatched nEvt",
                                          "multipleMatching nEvt",
                                          "matchedResolution nEvt",
                                          "genJetMult nEvt",
                                          "genJetEnergy nEvt",
                                          "genJetPt nEvt",
                                          "genJetEta nEvt",
                                          "genJetPhi nEvt",
                                          "genJetDeltaEtaMin nEvt",
                                          "genJetPto1 nEvt",
                                          "genJetPto10 nEvt",
                                          "genJetPto100 nEvt",
                                          "genJetCentral nEvt",
                                          "genJetTotPt nEvt")
)

postProcessorMBUEandQCDValidation = DQMEDHarvester(
    "DQMGenericClient",
    subDirs = cms.untracked.vstring("Generator/MBUEandQCD*"),
    efficiency = cms.vstring(""),
    resolution = cms.vstring(""),
    normalization = cms.untracked.vstring("nNoFwdTrig nEvt",
                                          "nSaFwdTrig nEvt",
                                          "nbquark nEvt",
                                          "ncandbquark nEvt",
                                          "ncnobquark nEvt",
                                          "dNchdpt1 nEvt1",
                                          "dnChdeta1 nEvt1",
                                          "leadTrackpt nEvt2",
                                          "leadTracketa nEvt2",
                                          "dNchdpt2 nEvt2",
                                          "dNchdeta2 nEvt2",
                                          "nCha nEvt2",
                                          "dNchdSpt nEvt2",
                                          "nChj nEvt2",
                                          "dNchjdeta nEvt2",
                                          "dNchjdpt nEvt2",
                                          "leadChjpt nEvt2",
                                          "leadChjeta nEvt2",
                                          "nPPbar nEvt2",
                                          "nKpm nEvt2",
                                          "nK0s nEvt2",
                                          "nL0 nEvt2",
                                          "nXim nEvt2",
                                          "nOmega nEvt2",
                                          "pPPbar nEvt2",
                                          "pKpm nEvt2",
                                          "pK0s nEvt2",
                                          "pL0 nEvt2",
                                          "pXim nEvt2",
                                          "pOmega nEvt2",
                                          "nNNbar nEvt2",
                                          "nGamma nEvt2",
                                          "pNNbar nEvt2",
                                          "pGamma nEvt2",
                                          "elePt nEvt2",
                                          "muoPt nEvt2",
                                          "nDijet nHFflow",
                                          "nj nHFflow",
                                          "dNjdeta nHFflow",
                                          "dNjdpt nHFflow",
                                          "pt1pt2balance nHFflow",
                                          "pt1pt2Dphi nHFflow",
                                          "pt1pt2InvM nHFflow",
                                          "pt3Frac nHFflow",
                                          "sumJEt nHFflow",
                                          "missEtosumJEt nHFflow",
                                          "sumPt nHFflow",
                                          "sumChPt nHFflow",
                                          "EmpzHFm nHFSD",
                                          "ntHFm nHFSD",
                                          "eneHFmSel nHFSD",
                                          "JM25njets nHFflow",
                                          "JM25ht nHFflow",
                                          "JM25pt1 nHFflow",
                                          "JM25pt2 nHFflow",
                                          "JM25pt3 nHFflow",
                                          "JM25pt4 nHFflow",
                                          "JM80njets nHFflow",
                                          "JM80ht nHFflow",
                                          "JM80pt1 nHFflow",
                                          "JM80pt2 nHFflow",
                                          "JM80pt3 nHFflow",
                                          "JM80pt4 nHFflow",
                                          "djr10 nEvt",
                                          "djr21 nEvt",
                                          "djr32 nEvt",
                                          "djr43 nEvt",
                                          "sumET nEvt",
                                          "sumET1 nEvt",
                                          "sumET2 nEvt",
                                          "sumET3 nEvt",
                                          "sumET4 nEvt",
                                          "sumET5 nEvt",
                                          "nEvt1 nEvt",
                                          "nEvt2 nEvt",
                                          "nHFflow nEvt",
                                          "nHFSD nEvt",
                                          "Tracketa nEvt")
)

postProcessorWValidation = DQMEDHarvester(
    "DQMGenericClient",
    subDirs = cms.untracked.vstring("Generator/W*"),
    efficiency = cms.vstring(""),
    resolution = cms.vstring(""),
    normalization = cms.untracked.vstring("Wmass nEvt",
	                                  "WmassPeak nEvt",
                                          "Wpt nEvt",
                                          "WptLog nEvt",
                                          "Wrap nEvt",
                                          "Wdaughters nEvt",
                                          "lepmet_mT nEvt",
                                          "lepmet_mTPeak nEvt",
                                          "lepmet_pt nEvt",
                                          "lepmet_ptLog nEvt",
                                          "gamma_energy nEvt",
                                          "cos_theta_gamma_lepton nEvt",
                                          "leppt nEvt",
                                          "met nEvt",
                                          "lepeta nEvt",
                                          "leadpt nEvt",
                                          "leadeta nEvt")
)

postProcessorDrellYanValidation = DQMEDHarvester(
    "DQMGenericClient",
    subDirs = cms.untracked.vstring("Generator/DrellYan*"),
    efficiency = cms.vstring(""),
    resolution = cms.vstring(""),
    normalization = cms.untracked.vstring("Zmass nEvt",
	                                  "ZmassPeak nEvt",
                                          "Zpt nEvt",
                                          "ZptLog nEvt",
                                          "Zrap nEvt",
                                          "Zdaughters nEvt",
                                          "dilep_mass nEvt",
                                          "dilep_massPeak nEvt",
                                          "dilep_pt nEvt",
                                          "dilep_ptLog nEvt",
                                          "dilep_rap nEvt",
                                          "gamma_energy nEvt",
                                          "cos_theta_gamma_lepton nEvt",
                                          "leadpt nEvt",
                                          "secpt nEvt",
                                          "leadeta nEvt",
                                          "seceta nEvt")
)

postProcessorTauValidation = DQMEDHarvester(
    "DQMGenericClient",
    subDirs = cms.untracked.vstring("Generator/Tau*"),
    efficiency = cms.vstring(""),
    resolution = cms.vstring(""),
    normalization = cms.untracked.vstring("JAKID  nTaus",
                                          "M12JAKID14  nTaus",
                                          "M12JAKID18  nTaus",
                                          "M12JAKID5  nTaus",
                                          "M13JAKID14  nTaus",
                                          "M13JAKID18  nTaus",
                                          "M13JAKID5  nTaus",
                                          "M23JAKID14  nTaus",
                                          "M23JAKID18  nTaus",
                                          "M23JAKID5  nTaus",
                                          "MJAKID0  nTaus",
                                          "MJAKID1  nTaus",
                                          "MJAKID10  nTaus",
                                          "MJAKID11  nTaus",
                                          "MJAKID12  nTaus",
                                          "MJAKID13  nTaus",
                                          "MJAKID14  nTaus",
                                          "MJAKID15  nTaus",
                                          "MJAKID16  nTaus",
                                          "MJAKID17  nTaus",
                                          "MJAKID18  nTaus",
                                          "MJAKID19  nTaus",
                                          "MJAKID2  nTaus",
                                          "MJAKID20  nTaus",
                                          "MJAKID21  nTaus",
                                          "MJAKID22  nTaus",
                                          "MJAKID3  nTaus",
                                          "MJAKID4  nTaus",
                                          "MJAKID5  nTaus",
                                          "MJAKID6  nTaus",
                                          "MJAKID7  nTaus",
                                          "MJAKID8  nTaus",
                                          "MJAKID9  nTaus",
                                          "TauDecayChannels  nTaus",
                                          "TauProngs  nTaus",
                                          "TauMothers  nTaus",
                                          "TauEta  nPrimeTaus",
                                          "TauPhi  nPrimeTaus",
                                          "TauISRPhotonsN  nPrimeTaus",
                                          "TauISRPhotonsPt  nPrimeTaus",
                                          "TauISRPhotonsPtRatio nPrimeTaus",
                                          "TauFSRPhotonsN  nPrimeTaus",
                                          "TauFSRPhotonsPt  nPrimeTaus",
                                          "TauFSRPhotonsPtRatio nPrimeTaus",
                                          "TauPt  nPrimeTaus",
                                          "TauSpinEffectsW_X  nPrimeTaus",
                                          "TauSpinEffectsW_eX  nPrimeTaus",
                                          "TauSpinEffectsW_muX  nPrimeTaus",
                                          "TauSpinEffectsW_UpsilonRho  nPrimeTaus",
                                          "TauSpinEffectsW_UpsilonA1  nPrimeTaus",
                                          "TauSpinEffectsHpm_X  nPrimeTaus",
                                          "TauSpinEffectsHpm_eX  nPrimeTaus",
                                          "TauSpinEffectsHpm_muX  nPrimeTaus",
                                          "TauSpinEffectsHpm_UpsilonRho  nPrimeTaus",
                                          "TauSpinEffectsHpm_UpsilonA1  nPrimeTaus",
                                          "TauSpinEffectsZ_MVis  nPrimeTaus",
                                          "TauSpinEffectsZ_Zs  nPrimeTaus",
                                          "TauSpinEffectsZ_X   nPrimeTaus",
                                          "TauSpinEffectsZ_X50to75   nPrimeTaus",
                                          "TauSpinEffectsZ_X75to88  nPrimeTaus",
                                          "TauSpinEffectsZ_X88to100  nPrimeTaus",
                                          "TauSpinEffectsZ_X100to120  nPrimeTaus",
                                          "TauSpinEffectsZ_X120UP  nPrimeTaus",
                                          "TauSpinEffectsZ_Xf  nPrimeTaus",
                                          "TauSpinEffectsZ_Xb  nPrimeTaus",
                                          "TauSpinEffectsZ_eX  nPrimeTaus",
                                          "TauSpinEffectsZ_muX  nPrimeTaus",
                                          "TauSpinEffectsH_MVis  nPrimeTaus",
                                          "TauSpinEffectsH_Zs  nPrimeTaus",
                                          "TauSpinEffectsH_Xf  nPrimeTaus",
                                          "TauSpinEffectsH_Xb  nPrimeTaus",
                                          "TauSpinEffectsH_eX  nPrimeTaus",
                                          "TauSpinEffectsH_muX  nPrimeTaus"
                                          )
    )

postProcessorTTbarValidation = DQMEDHarvester(
    "DQMGenericClient",
    subDirs = cms.untracked.vstring("Generator/TTbar*"),
    efficiency = cms.vstring(""),
    resolution = cms.vstring(""),
    normalization = cms.untracked.vstring("TTbar_BottomE nEvt",
                                          "TTbar_BottomEta nEvt",
                                          "TTbar_BottomMass nEvt",
                                          "TTbar_BottomPt nEvt",
                                          "TTbar_BottomPz nEvt",
                                          "TTbar_BottomY nEvt",
                                          "TTbar_TTbarMass nEvt",
                                          "TTbar_TTbarPt nEvt",
                                          "TTbar_TTbarY nEvt",
                                          "TTbar_TopMass nEvt",
                                          "TTbar_TopPt nEvt",
                                          "TTbar_TopY nEvt",
                                          "TTbar_WminPz nEvt",
                                          "TTbar_WplusPz nEvt",
                                          "TTbar_jetEta1 nEvt",
                                          "TTbar_jetEta2 nEvt",
                                          "TTbar_jetEta3 nEvt",
                                          "TTbar_jetEta4 nEvt",
                                          "TTbar_jetEtaAll nEvt",
                                          "TTbar_jetPt1 nEvt",
                                          "TTbar_jetPt2 nEvt",
                                          "TTbar_jetPt3 nEvt",
                                          "TTbar_jetPt4 nEvt",
                                          "TTbar_jetPtAll nEvt",
                                          "TTbar_lepEta1 nEvt",
                                          "TTbar_lepEta2 nEvt",
                                          "TTbar_lepEta3 nEvt",
                                          "TTbar_lepEta4 nEvt",
                                          "TTbar_lepEtaAll nEvt",
                                          "TTbar_lepN nEvt",
                                          "TTbar_lepPt1_genParticlesElectrons nEvt",
                                          "TTbar_lepPt1_genParticlesMuons nEvt",
                                          "TTbar_lepPt1_genParticlesNeutrinos nEvt",
                                          "TTbar_lepPt2_genParticlesElectrons nEvt",
                                          "TTbar_lepPt2_genParticlesMuons nEvt",
                                          "TTbar_lepPt2_genParticlesNeutrinos nEvt",
                                          "TTbar_lepPt3_genParticlesElectrons nEvt",
                                          "TTbar_lepPt3_genParticlesMuons nEvt",
                                          "TTbar_lepPt3_genParticlesNeutrinos nEvt",
                                          "TTbar_lepPt4_genParticlesElectrons nEvt",
                                          "TTbar_lepPt4_genParticlesMuons nEvt",
                                          "TTbar_lepPt4_genParticlesNeutrinos nEvt",
                                          "TTbar_lepPtAll_genParticlesElectrons nEvt",
                                          "TTbar_lepPtAll_genParticlesMuons nEvt",
                                          "TTbar_lepPtAll_genParticlesNeutrinos nEvt"
                                          )
    )

postProcessorTTbarSpinCorr = DQMEDHarvester("DQMGenericClient",
                                              subDirs = cms.untracked.vstring("Generator/TTbarSpinCorr*"),
                                              efficiency = cms.vstring(""),
                                              resolution = cms.vstring(""),
                                              normalization = cms.untracked.vstring("TTbar_asym nEvt",
                                                                                    "TTbar_deltaPhi nEvt",
                                                                                    "TTbar_llpairM nEvt",
                                                                                    "TTbar_llpairPt nEvt"
                                                                                    )
                                              )


postProcessorHiggsValidation = DQMEDHarvester(
    "DQMGenericClient",
    subDirs = cms.untracked.vstring("Generator/Higgs*"),
    efficiency = cms.vstring(""),
    resolution = cms.vstring(""),
    normalization = cms.untracked.vstring("Higgs_DecayChannels nEvt",
                                          "Higgs_eta nEvt",
                                          "Higgs_m nEvt",
                                          "Higgs_pt nEvt",
                                          "W_eta nEvt",
                                          "W_pt nEvt",
                                          "Z_eta nEvt",
                                          "Z_pt nEvt",
                                          "b_eta nEvt",
                                          "b_pt nEvt",
                                          "c_eta nEvt",
                                          "c_pt nEvt",
                                          "d_eta nEvt",
                                          "d_pt nEvt",
                                          "e_eta nEvt",
                                          "e_pt nEvt",
                                          "gamma_eta nEvt",
                                          "gamma_pt nEvt",
                                          "mu_eta nEvt",
                                          "mu_pt nEvt",
                                          "nEvt nEvt",
                                          "nu_eta nEvt",
                                          "nu_pt nEvt",
                                          "s_eta nEvt",
                                          "s_pt nEvt",
                                          "t_eta nEvt",
                                          "t_pt nEvt",
                                          "tau_eta nEvt",
                                          "tau_pt nEvt",
                                          "u_eta nEvt",
                                          "u_pt nEvt"
                                         )
    )

postProcessorHplusValidation = DQMEDHarvester(
    "DQMGenericClient",
    subDirs = cms.untracked.vstring("Generator/Hplus*"),
    efficiency = cms.vstring(""),
    resolution = cms.vstring(""),
    normalization = cms.untracked.vstring("Hplus_DecayChannels nEvt",
                                          "Hplus_eta nEvt",
                                          "Hplus_m nEvt",
                                          "Hplus_pt nEvt",
                                          "W_eta nEvt",
                                          "W_pt nEvt",
                                          "Z_eta nEvt",
                                          "Z_pt nEvt",
                                          "b_eta nEvt",
                                          "b_pt nEvt",
                                          "c_eta nEvt",
                                          "c_pt nEvt",
                                          "d_eta nEvt",
                                          "d_pt nEvt",
                                          "e_eta nEvt",
                                          "e_pt nEvt",
                                          "gamma_eta nEvt",
                                          "gamma_pt nEvt",
                                          "mu_eta nEvt",
                                          "mu_pt nEvt",
                                          "nEvt nEvt",
                                          "nu_eta nEvt",
                                          "nu_pt nEvt",
                                          "s_eta nEvt",
                                          "s_pt nEvt",
                                          "t_eta nEvt",
                                          "t_pt nEvt",
                                          "tau_eta nEvt",
                                          "tau_pt nEvt",
                                          "u_eta nEvt",
                                          "u_pt nEvt"
                                          )
    )


postProcessorBPhysicsValidation = DQMEDHarvester(
    "DQMGenericClient",
    subDirs = cms.untracked.vstring("Generator/BPhysics*"),
    efficiency = cms.vstring(""),
    resolution = cms.vstring(""),
    normalization = cms.untracked.vstring("JPsiMuMuValidationETA NJPsiMuMuValidation",
                                          "JPsiMuMuValidationMASS NJPsiMuMuValidation",
                                          "JPsiMuMuValidationPHI NJPsiMuMuValidation",
                                          "JPsiMuMuValidationPT NJPsiMuMuValidation",
                                          "JPsiMuMuValidationmuminusETA NJPsiMuMuValidation",
                                          "JPsiMuMuValidationmuminusMASS NJPsiMuMuValidation",
                                          "JPsiMuMuValidationmuminusPHI NJPsiMuMuValidation",
                                          "JPsiMuMuValidationmuminusPT NJPsiMuMuValidation",
                                          "JPsiMuMuValidationmuplusETA NJPsiMuMuValidation",
                                          "JPsiMuMuValidationmuplusMASS NJPsiMuMuValidation",
                                          "JPsiMuMuValidationmuplusPHI NJPsiMuMuValidation",
                                          "JPsiMuMuValidationmuplusPT NJPsiMuMuValidation",
                                          "JPsiSpectrumMass NSpectrumJPsiSpectrum",
                                          "LambdaSpectrumMass NSpectrumLambdaSpectrum",
                                          "LambdabPiPiMuMuValidationETA NLambdabPiPiMuMuValidation",
                                          "LambdabPiPiMuMuValidationLambdaETA NLambdabPiPiMuMuValidation",
                                          "LambdabPiPiMuMuValidationLambdaMASS NLambdabPiPiMuMuValidation",
                                          "LambdabPiPiMuMuValidationLambdaPHI NLambdabPiPiMuMuValidation",
                                          "LambdabPiPiMuMuValidationLambdaPT NLambdabPiPiMuMuValidation",
                                          "LambdabPiPiMuMuValidationLambdabarETA NLambdabPiPiMuMuValidation",
                                          "LambdabPiPiMuMuValidationLambdabarMASS NLambdabPiPiMuMuValidation",
                                          "LambdabPiPiMuMuValidationLambdabarPHI NLambdabPiPiMuMuValidation",
                                          "LambdabPiPiMuMuValidationLambdabarPT NLambdabPiPiMuMuValidation",
                                          "LambdabPiPiMuMuValidationMASS NLambdabPiPiMuMuValidation",
                                          "LambdabPiPiMuMuValidationPHI NLambdabPiPiMuMuValidation",
                                          "LambdabPiPiMuMuValidationPT NLambdabPiPiMuMuValidation",
                                          "LambdabPiPiMuMuValidationmuminusETA NLambdabPiPiMuMuValidation",
                                          "LambdabPiPiMuMuValidationmuminusMASS NLambdabPiPiMuMuValidation",
                                          "LambdabPiPiMuMuValidationmuminusPHI NLambdabPiPiMuMuValidation",
                                          "LambdabPiPiMuMuValidationmuminusPT NLambdabPiPiMuMuValidation",
                                          "LambdabPiPiMuMuValidationmuplusETA NLambdabPiPiMuMuValidation",
                                          "LambdabPiPiMuMuValidationmuplusMASS NLambdabPiPiMuMuValidation",
                                          "LambdabPiPiMuMuValidationmuplusPHI NLambdabPiPiMuMuValidation",
                                          "LambdabPiPiMuMuValidationmuplusPT NLambdabPiPiMuMuValidation",
                                          "LambdabPiPiMuMuValidationpiminusETA NLambdabPiPiMuMuValidation",
                                          "LambdabPiPiMuMuValidationpiminusMASS NLambdabPiPiMuMuValidation",
                                          "LambdabPiPiMuMuValidationpiminusPHI NLambdabPiPiMuMuValidation",
                                          "LambdabPiPiMuMuValidationpiminusPT NLambdabPiPiMuMuValidation",
                                          "LambdabPiPiMuMuValidationpiplusETA NLambdabPiPiMuMuValidation",
                                          "LambdabPiPiMuMuValidationpiplusMASS NLambdabPiPiMuMuValidation",
                                          "LambdabPiPiMuMuValidationpiplusPHI NLambdabPiPiMuMuValidation",
                                          "LambdabPiPiMuMuValidationpiplusPT NLambdabPiPiMuMuValidation",
                                          "LambdabPiPiMuMuValidationpminusETA NLambdabPiPiMuMuValidation",
                                          "LambdabPiPiMuMuValidationpminusMASS NLambdabPiPiMuMuValidation",
                                          "LambdabPiPiMuMuValidationpminusPHI NLambdabPiPiMuMuValidation",
                                          "LambdabPiPiMuMuValidationpminusPT NLambdabPiPiMuMuValidation",
                                          "LambdabPiPiMuMuValidationpplusETA NLambdabPiPiMuMuValidation",
                                          "LambdabPiPiMuMuValidationpplusMASS NLambdabPiPiMuMuValidation",
                                          "LambdabPiPiMuMuValidationpplusPHI NLambdabPiPiMuMuValidation",
                                          "LambdabPiPiMuMuValidationpplusPT NLambdabPiPiMuMuValidation"
                                          )
    )

postProcessorGenWeightValidation = DQMEDHarvester(
    "DQMGenericClient",
    subDirs = cms.untracked.vstring("Generator/GenWeight*"),
    efficiency = cms.vstring(
    "leadLepPtFSRup_ratio 'Ratio of leading lepton Pt FSR up / Nominal' leadLepPtFSRup leadLepPt simpleratio",
    "leadLepPtFSRdn_ratio 'Ratio of leading lepton Pt FSR down / Nominal' leadLepPtFSRdn leadLepPt simpleratio",
    "leadLepPtISRup_ratio 'Ratio of leading lepton Pt ISR up / Nominal' leadLepPtISRup leadLepPt simpleratio",
    "leadLepPtISRdn_ratio 'Ratio of leading lepton Pt ISR down / Nominal' leadLepPtISRdn leadLepPt simpleratio",
    "leadLepEtaFSRup_ratio 'Ratio of leading lepton #eta FSR up / Nominal' leadLepEtaFSRup leadLepEta simpleratio",
    "leadLepEtaFSRdn_ratio 'Ratio of leading lepton #eta FSR down / Nominal' leadLepEtaFSRdn leadLepEta simpleratio",
    "leadLepEtaISRup_ratio 'Ratio of leading lepton #eta ISR up / Nominal' leadLepEtaISRup leadLepEta simpleratio",
    "leadLepEtaISRdn_ratio 'Ratio of leading lepton #eta ISR down / Nominal' leadLepEtaISRdn leadLepEta simpleratio",
    "JetMultiplicityFSRup_ratio 'Ratio of Gen jet multiplicity FSR up / Nominal' JetMultiplicityFSRup JetMultiplicity simpleratio",
    "JetMultiplicityFSRdn_ratio 'Ratio of Gen jet multiplicity FSR down / Nominal' JetMultiplicityFSRdn JetMultiplicity simpleratio",
    "JetMultiplicityISRup_ratio 'Ratio of Gen jet multiplicity ISR up / Nominal' JetMultiplicityISRup JetMultiplicity simpleratio",
    "JetMultiplicityISRdn_ratio 'Ratio of Gen jet multiplicity ISR down / Nominal' JetMultiplicityISRdn JetMultiplicity simpleratio",
    "leadJetPtFSRup_ratio 'Ratio of leading Gen jet Pt FSR up / Nominal' leadJetPtFSRup leadJetPt simpleratio",
    "leadJetPtFSRdn_ratio 'Ratio of leading Gen jet Pt FSR down / Nominal' leadJetPtFSRdn leadJetPt simpleratio",
    "leadJetPtISRup_ratio 'Ratio of leading Gen jet Pt ISR up / Nominal' leadJetPtISRup leadJetPt simpleratio",
    "leadJetPtISRdn_ratio 'Ratio of leading Gen jet Pt ISR down / Nominal' leadJetPtISRdn leadJetPt simpleratio",
    "leadJetEtaFSRup_ratio 'Ratio of leading Gen jet #eta FSR up / Nominal' leadJetEtaFSRup leadJetEta simpleratio",
    "leadJetEtaFSRdn_ratio 'Ratio of leading Gen jet #eta FSR down / Nominal' leadJetEtaFSRdn leadJetEta simpleratio",
    "leadJetEtaISRup_ratio 'Ratio of leading Gen jet #eta ISR up / Nominal' leadJetEtaISRup leadJetEta simpleratio",
    "leadJetEtaISRdn_ratio 'Ratio of leading Gen jet #eta ISR down / Nominal' leadJetEtaISRdn leadJetEta simpleratio"
    ),
    resolution = cms.vstring(""),
    normalization = cms.untracked.vstring("nlogWgt nEvt",
                                          "wgtVal nEvt",
                                          "leadLepPt nEvt",
                                          "leadLepPtFSRup nEvt",
                                          "leadLepPtFSRdn nEvt",
                                          "leadLepPtISRup nEvt",
                                          "leadLepPtISRdn nEvt",
                                          "leadLepEta nEvt",
                                          "leadLepEtaFSRup nEvt",
                                          "leadLepEtaFSRdn nEvt",
                                          "leadLepEtaISRup nEvt",
                                          "leadLepEtaISRdn nEvt",
                                          "JetMultiplicity nEvt",
                                          "JetMultiplicityFSRup nEvt",
                                          "JetMultiplicityFSRdn nEvt",
                                          "JetMultiplicityISRup nEvt",
                                          "JetMultiplicityISRdn nEvt",
                                          "leadJetPt nEvt",
                                          "leadJetPtFSRup nEvt",
                                          "leadJetPtFSRdn nEvt",
                                          "leadJetPtISRup nEvt",
                                          "leadJetPtISRdn nEvt",
                                          "leadJetEta nEvt",
                                          "leadJetEtaFSRup nEvt",
                                          "leadJetEtaFSRdn nEvt",
                                          "leadJetEtaISRup nEvt",
                                          "leadJetEtaISRdn nEvt"
                                          )
)

postProcessorLheWeightValidation = DQMEDHarvester(
    "DQMGenericClient",
    subDirs = cms.untracked.vstring("Generator/LHEWeight*"),
    efficiency = cms.vstring(
    "leadLepPtScaleUp_ratio 'Ratio of leading lepton Pt scale upper envelop / Nominal' leadLepPtScaleUp leadLepPt simpleratio",
    "leadLepPtScaleDn_ratio 'Ratio of leading lepton Pt scale lower envelop / Nominal' leadLepPtScaleDn leadLepPt simpleratio",
    "leadLepPtPdfUp_ratio 'Ratio of leading lepton Pt PDF upper RMS / Nominal' leadLepPtPdfUp leadLepPt simpleratio",
    "leadLepPtPdfDn_ratio 'Ratio of leading lepton Pt PDF lower RMS / Nominal' leadLepPtPdfDn leadLepPt simpleratio",
    "leadLepEtaScaleUp_ratio 'Ratio of leading lepton #eta scale upper envelop / Nominal' leadLepEtaScaleUp leadLepEta simpleratio",
    "leadLepEtaScaleDn_ratio 'Ratio of leading lepton #eta scale lower envelop / Nominal' leadLepEtaScaleDn leadLepEta simpleratio",
    "leadLepEtaPdfUp_ratio 'Ratio of leading lepton #eta PDF upper RMS / Nominal' leadLepEtaPdfUp leadLepEta simpleratio",
    "leadLepEtaPdfDn_ratio 'Ratio of leading lepton #eta PDF lower RMS / Nominal' leadLepEtaPdfDn leadLepEta simpleratio",
    "JetMultiplicityScaleUp_ratio 'Ratio of Gen jet multiplicity scale upper envelop / Nominal' JetMultiplicityScaleUp JetMultiplicity simpleratio",
    "JetMultiplicityScaleDn_ratio 'Ratio of Gen jet multiplicity scale lower envelop / Nominal' JetMultiplicityScaleDn JetMultiplicity simpleratio",
    "JetMultiplicityPdfUp_ratio 'Ratio of Gen jet multiplicity PDF upper RMS / Nominal' JetMultiplicityPdfUp JetMultiplicity simpleratio",
    "JetMultiplicityPdfDn_ratio 'Ratio of Gen jet multiplicity PDF lower RMS / Nominal' JetMultiplicityPdfDn JetMultiplicity simpleratio",
    "leadJetPtScaleUp_ratio 'Ratio of leading Gen jet Pt scale upper envelop / Nominal' leadJetPtScaleUp leadJetPt simpleratio",
    "leadJetPtScaleDn_ratio 'Ratio of leading Gen jet Pt scale lower envelop / Nominal' leadJetPtScaleDn leadJetPt simpleratio",
    "leadJetPtPdfUp_ratio 'Ratio of leading Gen jet Pt PDF upper RMS / Nominal' leadJetPtPdfUp leadJetPt simpleratio",
    "leadJetPtPdfDn_ratio 'Ratio of leading Gen jet Pt PDF lower RMS / Nominal' leadJetPtPdfDn leadJetPt simpleratio",
    "leadJetEtaScaleUp_ratio 'Ratio of leading Gen jet #eta scale upper envelop / Nominal' leadJetEtaScaleUp leadJetEta simpleratio",
    "leadJetEtaScaleDn_ratio 'Ratio of leading Gen jet #eta scale lower envelop / Nominal' leadJetEtaScaleDn leadJetEta simpleratio",
    "leadJetEtaPdfUp_ratio 'Ratio of leading Gen jet #eta PDF upper RMS / Nominal' leadJetEtaPdfUp leadJetEta simpleratio",
    "leadJetEtaPdfDn_ratio 'Ratio of leading Gen jet #eta PDF lower RMS / Nominal' leadJetEtaPdfDn leadJetEta simpleratio"
    ),
    resolution = cms.vstring(""),
    normalization = cms.untracked.vstring("nlogWgt nEvt",
                                          "wgtVal nEvt",
                                          "leadLepPt nEvt",
                                          "leadLepPtScaleUp nEvt",
                                          "leadLepPtScaleDn nEvt",
                                          "leadLepPtPdfUp nEvt",
                                          "leadLepPtPdfDn nEvt",
                                          "leadLepEta nEvt",
                                          "leadLepEtaScaleUp nEvt",
                                          "leadLepEtaScaleDn nEvt",
                                          "leadLepEtaPdfUp nEvt",
                                          "leadLepEtaPdfDn nEvt",
                                          "JetMultiplicity nEvt",
                                          "JetMultiplicityScaleUp nEvt",
                                          "JetMultiplicityScaleDn nEvt",
                                          "JetMultiplicityPdfUp nEvt",
                                          "JetMultiplicityPdfDn nEvt",
                                          "leadJetPt nEvt",
                                          "leadJetPtScaleUp nEvt",
                                          "leadJetPtScaleDn nEvt",
                                          "leadJetPtPdfUp nEvt",
                                          "leadJetPtPdfDn nEvt",
                                          "leadJetEta nEvt",
                                          "leadJetEtaScaleUp nEvt",
                                          "leadJetEtaScaleDn nEvt",
                                          "leadJetEtaPdfUp nEvt",
                                          "leadJetEtaPdfDn nEvt"
                                          )
)



EventGeneratorPostProcessor = cms.Sequence(postProcessorBasicHepMCValidation+postProcessorBasicGenParticleValidation+postProcessorMBUEandQCDValidation+postProcessorWValidation+postProcessorDrellYanValidation+postProcessorTauValidation+postProcessorTTbarValidation+postProcessorTTbarSpinCorr+postProcessorHiggsValidation+postProcessorHplusValidation+postProcessorBPhysicsValidation+postProcessorGenWeightValidation+postProcessorLheWeightValidation)
