CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_0/src/Validation/EventGenerator/interface/MBUEandQCDValidation.h

Go to the documentation of this file.
00001 #ifndef MBUEandQCDVALIDATION_H
00002 #define MBUEandQCDVALIDATION_H
00003 
00004 /*class MBUEandQCDValidation
00005  *  
00006  *  Class to fill Event Generator dqm monitor elements; works on HepMCProduct
00007  *
00008  *  $Date: 2011/12/29 10:53:10 $
00009  *  $Revision: 1.3 $
00010  *
00011  */
00012 
00013 // framework & common header files
00014 #include "FWCore/Framework/interface/EDAnalyzer.h"
00015 #include "FWCore/Framework/interface/Event.h"
00016 #include "FWCore/Framework/interface/EventSetup.h"
00017 #include "FWCore/Framework/interface/Run.h"
00018 
00019 #include "DataFormats/Common/interface/Handle.h"
00020 #include "FWCore/Framework/interface/ESHandle.h"
00021 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00022 #include "FWCore/Utilities/interface/InputTag.h"
00023 
00024 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00025 
00026 //DQM services
00027 #include "DQMServices/Core/interface/DQMStore.h"
00028 #include "FWCore/ServiceRegistry/interface/Service.h"
00029 #include "DQMServices/Core/interface/MonitorElement.h"
00030 
00031 #include "SimDataFormats/GeneratorProducts/interface/HepMCProduct.h"
00032 #include "DataFormats/JetReco/interface/GenJetCollection.h"
00033 
00034 #include "SimGeneral/HepPDTRecord/interface/ParticleDataTable.h"
00035 #include "Validation/EventGenerator/interface/CaloCellManager.h"
00036 #include "Validation/EventGenerator/interface/WeightManager.h"
00037 
00038 #include <vector>
00039 
00040 class MBUEandQCDValidation : public edm::EDAnalyzer
00041 {
00042     public:
00043         explicit MBUEandQCDValidation(const edm::ParameterSet&);
00044         virtual ~MBUEandQCDValidation();
00045         virtual void beginJob();
00046         virtual void endJob();  
00047         virtual void analyze(const edm::Event&, const edm::EventSetup&);
00048         virtual void beginRun(const edm::Run&, const edm::EventSetup&);
00049         virtual void endRun(const edm::Run&, const edm::EventSetup&);
00050 
00051     private:
00052 
00053     WeightManager _wmanager;
00054 
00055     edm::InputTag hepmcCollection_;
00056     edm::InputTag genchjetCollection_;
00057     edm::InputTag genjetCollection_;
00058 
00059     unsigned int verbosity_;
00060 
00062         edm::ESHandle<HepPDT::ParticleDataTable> fPDGTable ;
00063 
00065     std::vector<const HepMC::GenParticle*> hepmcGPCollection;
00066     std::vector<double> hepmcCharge;
00067 
00069     CaloCellManager* theCalo;
00070 
00071     unsigned int getHFbin(double eta);
00072 
00073     bool isCharged(unsigned int i);
00074     bool isNeutral(unsigned int i);
00075     bool isNeutrino(unsigned int i);
00076 
00077     std::vector<double> eneInCell;
00078 
00080         DQMStore *dbe;
00081 
00082     MonitorElement* nEvt;
00083 
00084     MonitorElement* nNoFwdTrig;
00085     MonitorElement* nSaFwdTrig;
00086 
00087     MonitorElement* nbquark;
00088     MonitorElement* ncandbquark;
00089     MonitorElement* ncnobquark;
00090 
00092     MonitorElement* nEvt1;
00093     MonitorElement* dNchdpt1;
00094     MonitorElement* dNchdeta1;
00095 
00096     //QCD-10-001 analysis
00097     MonitorElement* nEvt2;
00098     MonitorElement* leadTrackpt;
00099     MonitorElement* leadTracketa;
00100     MonitorElement* dNchdeta2;
00101     MonitorElement* dNchdpt2;
00102     MonitorElement* nCha;
00103     MonitorElement* dNchdSpt;
00104     MonitorElement* dNchdphi;
00105     MonitorElement* dSptdphi;
00106     MonitorElement* nChaDenLpt;
00107     MonitorElement* sptDenLpt;
00108 
00109     //Charged jets
00110     MonitorElement* nChj;
00111     MonitorElement* dNchjdeta;
00112     MonitorElement* dNchjdpt;
00113     MonitorElement* leadChjpt;
00114     MonitorElement* leadChjeta;
00115     MonitorElement* pt1pt2optotch;
00116 
00117     //Identified particles multiplicities
00118     MonitorElement* nPPbar;
00119     MonitorElement* nKpm;
00120     MonitorElement* nK0s;
00121     MonitorElement* nL0;
00122     MonitorElement* nNNbar;
00123     MonitorElement* nGamma;
00124     MonitorElement* nXim;
00125     MonitorElement* nOmega;
00126 
00127     //Identified particles momentum specturm
00128     MonitorElement* pPPbar;
00129     MonitorElement* pKpm;
00130     MonitorElement* pK0s;
00131     MonitorElement* pL0;
00132     MonitorElement* pNNbar;
00133     MonitorElement* pGamma;
00134     MonitorElement* pXim;
00135     MonitorElement* pOmega;
00136 
00137     MonitorElement* elePt;
00138     MonitorElement* muoPt;
00139 
00140     //Jets no neutrino
00141     MonitorElement* nDijet;
00142     MonitorElement* nj;
00143     MonitorElement* dNjdeta;
00144     MonitorElement* dNjdpt;
00145     MonitorElement* pt1pt2optot;
00146     MonitorElement* pt1pt2balance;
00147     MonitorElement* pt1pt2Dphi;
00148     MonitorElement* pt1pt2InvM;
00149     MonitorElement* pt3Frac;
00150     MonitorElement* sumJEt;
00151     MonitorElement* missEtosumJEt;
00152     MonitorElement* sumPt;
00153     MonitorElement* sumChPt;
00154 
00155     //Forward energy flow
00156     MonitorElement* nHFflow;
00157     MonitorElement* dEdetaHFmb;
00158     MonitorElement* dEdetaHFdj;
00159 
00160     MonitorElement* nHFSD;
00161     MonitorElement* EmpzHFm;
00162     MonitorElement* ntHFm;
00163     MonitorElement* eneHFmSel;
00164 
00165     // Jet Multiplicity Analysis
00166     MonitorElement*    _JM25njets ;
00167     MonitorElement*    _JM25ht    ;
00168     MonitorElement*    _JM25pt1   ;
00169     MonitorElement*    _JM25pt2   ;
00170     MonitorElement*    _JM25pt3   ;
00171     MonitorElement*    _JM25pt4   ;
00172     MonitorElement*    _JM80njets ;
00173     MonitorElement*    _JM80ht    ;
00174     MonitorElement*    _JM80pt1   ;
00175     MonitorElement*    _JM80pt2   ;
00176     MonitorElement*    _JM80pt3   ;
00177     MonitorElement*    _JM80pt4   ;
00178 
00179     //differential jet rates
00180     MonitorElement *djr10, *djr21, *djr32, *djr43;
00181 
00182     // SumET hiostograms
00183     MonitorElement *_sumEt ;
00184     MonitorElement *_sumEt1;
00185     MonitorElement *_sumEt2;
00186     MonitorElement *_sumEt3;
00187     MonitorElement *_sumEt4;
00188     MonitorElement *_sumEt5;
00189 
00190 
00191     static const unsigned int nphiBin = 36;
00192 
00193     static const unsigned int initSize = 1000; 
00194 
00195 };
00196 
00197 #endif