CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_6_1_2_SLHC2/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: 2011/12/29 10:53:10 $
00009  *  $Revision: 1.6 $
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 #include "Validation/EventGenerator/interface/WeightManager.h"
00034 
00035 class BasicHepMCValidation : public edm::EDAnalyzer
00036 {
00037     public:
00038         explicit BasicHepMCValidation(const edm::ParameterSet&);
00039         virtual ~BasicHepMCValidation();
00040         virtual void beginJob();
00041         virtual void endJob();  
00042         virtual void analyze(const edm::Event&, const edm::EventSetup&);
00043         virtual void beginRun(const edm::Run&, const edm::EventSetup&);
00044         virtual void endRun(const edm::Run&, const edm::EventSetup&);
00045 
00046     private:
00047 
00048         WeightManager _wmanager;
00049 
00050     edm::InputTag hepmcCollection_;
00051 
00053         edm::ESHandle<HepPDT::ParticleDataTable> fPDGTable ;
00054         
00056         DQMStore *dbe;
00057 
00058     MonitorElement* nEvt;
00059   
00061         MonitorElement *uNumber, *dNumber, *sNumber, *cNumber, *bNumber, *tNumber;
00062         MonitorElement *ubarNumber, *dbarNumber, *sbarNumber, *cbarNumber, *bbarNumber, *tbarNumber;
00063         //
00064         MonitorElement *eminusNumber, *nueNumber, *muminusNumber, *numuNumber, *tauminusNumber, *nutauNumber;
00065         MonitorElement *eplusNumber, *nuebarNumber, *muplusNumber, *numubarNumber, *tauplusNumber, *nutaubarNumber;
00066         //
00067         MonitorElement *gluNumber, *WplusNumber,*WminusNumber, *ZNumber, *gammaNumber;
00068         //
00069         MonitorElement *piplusNumber, *piminusNumber, *pizeroNumber, *KplusNumber, *KminusNumber, *KlzeroNumber, *KszeroNumber;
00070         MonitorElement *pNumber, *pbarNumber, *nNumber, *nbarNumber, *l0Number, *l0barNumber;
00071         //
00072         MonitorElement *DplusNumber, *DminusNumber, *DzeroNumber, *BplusNumber, *BminusNumber, *BzeroNumber, *BszeroNumber;
00073         //
00074         MonitorElement *otherPtclNumber;
00075         
00077         MonitorElement *uMomentum, *dMomentum, *sMomentum, *cMomentum, *bMomentum, *tMomentum;
00078         MonitorElement *ubarMomentum, *dbarMomentum, *sbarMomentum, *cbarMomentum, *bbarMomentum, *tbarMomentum;
00079         //
00080         MonitorElement *eminusMomentum, *nueMomentum, *muminusMomentum, *numuMomentum, *tauminusMomentum, *nutauMomentum;
00081         MonitorElement *eplusMomentum, *nuebarMomentum, *muplusMomentum, *numubarMomentum, *tauplusMomentum, *nutaubarMomentum;
00082         //
00083         MonitorElement *gluMomentum, *WplusMomentum,*WminusMomentum, *ZMomentum, *gammaMomentum;
00084         //
00085         MonitorElement *piplusMomentum, *piminusMomentum, *pizeroMomentum, *KplusMomentum, *KminusMomentum, *KlzeroMomentum,  *KszeroMomentum;
00086         //
00087         MonitorElement *pMomentum, *pbarMomentum, *nMomentum, *nbarMomentum, *l0Momentum, *l0barMomentum;
00088         //
00089         MonitorElement *DplusMomentum, *DminusMomentum, *DzeroMomentum,  *BplusMomentum, *BminusMomentum, *BzeroMomentum, *BszeroMomentum;
00090         //
00091         MonitorElement *otherPtclMomentum;
00092 
00094         MonitorElement *genPtclNumber; 
00095         MonitorElement *genVrtxNumber;
00096         MonitorElement *unknownPDTNumber;
00097         MonitorElement *outVrtxPtclNumber;
00098     MonitorElement *genPtclStatus;
00099     //
00100         MonitorElement *stablePtclNumber;
00101         MonitorElement *stableChaNumber;
00102         MonitorElement *stablePtclPhi;
00103         MonitorElement *stablePtclEta;
00104         MonitorElement *stablePtclCharge;
00105         MonitorElement *stablePtclp;
00106         MonitorElement *stablePtclpT;
00107         MonitorElement *partonNumber;
00108         MonitorElement *partonpT;
00109         MonitorElement *outVrtxStablePtclNumber;
00110         //
00111         MonitorElement *vrtxZ;
00112         MonitorElement *vrtxRadius;
00113         //
00114         MonitorElement *Bjorken_x;
00115 
00116     MonitorElement *status1ShortLived;
00117 
00118     MonitorElement *DeltaEcms;
00119     MonitorElement *DeltaPx;
00120     MonitorElement *DeltaPy;
00121     MonitorElement *DeltaPz;
00122 
00123 };
00124 
00125 #endif