CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_4_5_patch3/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: 2010/07/02 12:32:05 $
00009  *  $Revision: 1.2 $
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 
00037 #include <vector>
00038 
00039 class MBUEandQCDValidation : public edm::EDAnalyzer
00040 {
00041     public:
00042         explicit MBUEandQCDValidation(const edm::ParameterSet&);
00043         virtual ~MBUEandQCDValidation();
00044         virtual void beginJob();
00045         virtual void endJob();  
00046         virtual void analyze(const edm::Event&, const edm::EventSetup&);
00047         virtual void beginRun(const edm::Run&, const edm::EventSetup&);
00048         virtual void endRun(const edm::Run&, const edm::EventSetup&);
00049 
00050     private:
00051 
00052     edm::InputTag hepmcCollection_;
00053     edm::InputTag genchjetCollection_;
00054     edm::InputTag genjetCollection_;
00055 
00056     unsigned int verbosity_;
00057 
00059         edm::ESHandle<HepPDT::ParticleDataTable> fPDGTable ;
00060 
00062     std::vector<const HepMC::GenParticle*> hepmcGPCollection;
00063     std::vector<double> hepmcCharge;
00064 
00066     CaloCellManager* theCalo;
00067 
00068     unsigned int getHFbin(double eta);
00069 
00070     bool isCharged(unsigned int i);
00071     bool isNeutral(unsigned int i);
00072     bool isNeutrino(unsigned int i);
00073 
00074     std::vector<double> eneInCell;
00075 
00077         DQMStore *dbe;
00078 
00079     MonitorElement* nEvt;
00080 
00081     MonitorElement* nNoFwdTrig;
00082     MonitorElement* nSaFwdTrig;
00083 
00084     MonitorElement* nbquark;
00085     MonitorElement* ncandbquark;
00086     MonitorElement* ncnobquark;
00087 
00089     MonitorElement* nEvt1;
00090     MonitorElement* dNchdpt1;
00091     MonitorElement* dNchdeta1;
00092 
00093     //QCD-10-001 analysis
00094     MonitorElement* nEvt2;
00095     MonitorElement* leadTrackpt;
00096     MonitorElement* leadTracketa;
00097     MonitorElement* dNchdeta2;
00098     MonitorElement* dNchdpt2;
00099     MonitorElement* nCha;
00100     MonitorElement* dNchdSpt;
00101     MonitorElement* dNchdphi;
00102     MonitorElement* dSptdphi;
00103     MonitorElement* nChaDenLpt;
00104     MonitorElement* sptDenLpt;
00105 
00106     //Charged jets
00107     MonitorElement* nChj;
00108     MonitorElement* dNchjdeta;
00109     MonitorElement* dNchjdpt;
00110     MonitorElement* leadChjpt;
00111     MonitorElement* leadChjeta;
00112     MonitorElement* pt1pt2optotch;
00113 
00114     //Identified particles multiplicities
00115     MonitorElement* nPPbar;
00116     MonitorElement* nKpm;
00117     MonitorElement* nK0s;
00118     MonitorElement* nL0;
00119     MonitorElement* nNNbar;
00120     MonitorElement* nGamma;
00121     MonitorElement* nXim;
00122     MonitorElement* nOmega;
00123 
00124     //Identified particles momentum specturm
00125     MonitorElement* pPPbar;
00126     MonitorElement* pKpm;
00127     MonitorElement* pK0s;
00128     MonitorElement* pL0;
00129     MonitorElement* pNNbar;
00130     MonitorElement* pGamma;
00131     MonitorElement* pXim;
00132     MonitorElement* pOmega;
00133 
00134     MonitorElement* elePt;
00135     MonitorElement* muoPt;
00136 
00137     //Jets no neutrino
00138     MonitorElement* nDijet;
00139     MonitorElement* nj;
00140     MonitorElement* dNjdeta;
00141     MonitorElement* dNjdpt;
00142     MonitorElement* pt1pt2optot;
00143     MonitorElement* pt1pt2balance;
00144     MonitorElement* pt1pt2Dphi;
00145     MonitorElement* pt1pt2InvM;
00146     MonitorElement* pt3Frac;
00147     MonitorElement* sumJEt;
00148     MonitorElement* missEtosumJEt;
00149     MonitorElement* sumPt;
00150     MonitorElement* sumChPt;
00151 
00152     //Forward energy flow
00153     MonitorElement* nHFflow;
00154     MonitorElement* dEdetaHFmb;
00155     MonitorElement* dEdetaHFdj;
00156 
00157     MonitorElement* nHFSD;
00158     MonitorElement* EmpzHFm;
00159     MonitorElement* ntHFm;
00160     MonitorElement* eneHFmSel;
00161 
00162     // Jet Multiplicity Analysis
00163     MonitorElement*    _JM25njets ;
00164     MonitorElement*    _JM25ht    ;
00165     MonitorElement*    _JM25pt1   ;
00166     MonitorElement*    _JM25pt2   ;
00167     MonitorElement*    _JM25pt3   ;
00168     MonitorElement*    _JM25pt4   ;
00169     MonitorElement*    _JM80njets ;
00170     MonitorElement*    _JM80ht    ;
00171     MonitorElement*    _JM80pt1   ;
00172     MonitorElement*    _JM80pt2   ;
00173     MonitorElement*    _JM80pt3   ;
00174     MonitorElement*    _JM80pt4   ;
00175 
00176     //differential jet rates
00177     MonitorElement *djr10, *djr21, *djr32, *djr43;
00178 
00179     // SumET hiostograms
00180     MonitorElement *_sumEt ;
00181     MonitorElement *_sumEt1;
00182     MonitorElement *_sumEt2;
00183     MonitorElement *_sumEt3;
00184     MonitorElement *_sumEt4;
00185     MonitorElement *_sumEt5;
00186 
00187 
00188     static const unsigned int nphiBin = 36;
00189 
00190     static const unsigned int initSize = 1000; 
00191 
00192 };
00193 
00194 #endif