CMS 3D CMS Logo

/data/doxygen/doxygen-1.7.3/gen/CMSSW_4_2_8/src/Validation/EventGenerator/interface/BasicHepMCValidation.h

Go to the documentation of this file.
00001 #ifndef BASICHEPMCVALIDATION_H
00002 #define BASICHEPMCVALIDATION_H
00003 
00004 /*class BasicHepMCValidation
00005  *  
00006  *  Class to fill Event Generator dqm monitor elements; works on HepMCProduct
00007  *
00008  *  $Date: 2010/07/02 13:34:22 $
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 //DQM services
00025 #include "DQMServices/Core/interface/DQMStore.h"
00026 #include "FWCore/ServiceRegistry/interface/Service.h"
00027 #include "DQMServices/Core/interface/MonitorElement.h"
00028 
00029 #include "SimDataFormats/GeneratorProducts/interface/HepMCProduct.h"
00030 
00031 #include "SimGeneral/HepPDTRecord/interface/ParticleDataTable.h"
00032 
00033 
00034 class BasicHepMCValidation : public edm::EDAnalyzer
00035 {
00036     public:
00037         explicit BasicHepMCValidation(const edm::ParameterSet&);
00038         virtual ~BasicHepMCValidation();
00039         virtual void beginJob();
00040         virtual void endJob();  
00041         virtual void analyze(const edm::Event&, const edm::EventSetup&);
00042         virtual void beginRun(const edm::Run&, const edm::EventSetup&);
00043         virtual void endRun(const edm::Run&, const edm::EventSetup&);
00044 
00045     private:
00046 
00047     edm::InputTag hepmcCollection_;
00048 
00050         edm::ESHandle<HepPDT::ParticleDataTable> fPDGTable ;
00051         
00053         DQMStore *dbe;
00054 
00055     MonitorElement* nEvt;
00056   
00058         MonitorElement *uNumber, *dNumber, *sNumber, *cNumber, *bNumber, *tNumber;
00059         MonitorElement *ubarNumber, *dbarNumber, *sbarNumber, *cbarNumber, *bbarNumber, *tbarNumber;
00060         //
00061         MonitorElement *eminusNumber, *nueNumber, *muminusNumber, *numuNumber, *tauminusNumber, *nutauNumber;
00062         MonitorElement *eplusNumber, *nuebarNumber, *muplusNumber, *numubarNumber, *tauplusNumber, *nutaubarNumber;
00063         //
00064         MonitorElement *gluNumber, *WplusNumber,*WminusNumber, *ZNumber, *gammaNumber;
00065         //
00066         MonitorElement *piplusNumber, *piminusNumber, *pizeroNumber, *KplusNumber, *KminusNumber, *KlzeroNumber, *KszeroNumber;
00067         MonitorElement *pNumber, *pbarNumber, *nNumber, *nbarNumber, *l0Number, *l0barNumber;
00068         //
00069         MonitorElement *DplusNumber, *DminusNumber, *DzeroNumber, *BplusNumber, *BminusNumber, *BzeroNumber, *BszeroNumber;
00070         //
00071         MonitorElement *otherPtclNumber;
00072         
00074         MonitorElement *uMomentum, *dMomentum, *sMomentum, *cMomentum, *bMomentum, *tMomentum;
00075         MonitorElement *ubarMomentum, *dbarMomentum, *sbarMomentum, *cbarMomentum, *bbarMomentum, *tbarMomentum;
00076         //
00077         MonitorElement *eminusMomentum, *nueMomentum, *muminusMomentum, *numuMomentum, *tauminusMomentum, *nutauMomentum;
00078         MonitorElement *eplusMomentum, *nuebarMomentum, *muplusMomentum, *numubarMomentum, *tauplusMomentum, *nutaubarMomentum;
00079         //
00080         MonitorElement *gluMomentum, *WplusMomentum,*WminusMomentum, *ZMomentum, *gammaMomentum;
00081         //
00082         MonitorElement *piplusMomentum, *piminusMomentum, *pizeroMomentum, *KplusMomentum, *KminusMomentum, *KlzeroMomentum,  *KszeroMomentum;
00083         //
00084         MonitorElement *pMomentum, *pbarMomentum, *nMomentum, *nbarMomentum, *l0Momentum, *l0barMomentum;
00085         //
00086         MonitorElement *DplusMomentum, *DminusMomentum, *DzeroMomentum,  *BplusMomentum, *BminusMomentum, *BzeroMomentum, *BszeroMomentum;
00087         //
00088         MonitorElement *otherPtclMomentum;
00089 
00091         MonitorElement *genPtclNumber; 
00092         MonitorElement *genVrtxNumber;
00093         MonitorElement *unknownPDTNumber;
00094         MonitorElement *outVrtxPtclNumber;
00095     MonitorElement *genPtclStatus;
00096     //
00097         MonitorElement *stablePtclNumber;
00098         MonitorElement *stableChaNumber;
00099         MonitorElement *stablePtclPhi;
00100         MonitorElement *stablePtclEta;
00101         MonitorElement *stablePtclCharge;
00102         MonitorElement *stablePtclp;
00103         MonitorElement *stablePtclpT;
00104         MonitorElement *outVrtxStablePtclNumber;
00105         //
00106         MonitorElement *vrtxZ;
00107         MonitorElement *vrtxRadius;
00108         //
00109         MonitorElement *Bjorken_x;
00110 
00111 };
00112 
00113 #endif