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 #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