00001 #ifndef BASICHEPMCVALIDATION_H
00002 #define BASICHEPMCVALIDATION_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
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
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