00001 #ifndef BASICHEPMCHEAVYIONVALIDATION_H 00002 #define BASICHEPMCHEAVYIONVALIDATION_H 00003 00004 /*class BasicHepMCHeavyIonValidation 00005 * 00006 * Class to fill Event Generator dqm monitor elements; works on HepMCProduct HepMC::HeavyIon 00007 * Quan Wang - 04/2013 00008 * 00009 */ 00010 00011 // framework & common header files 00012 #include "FWCore/Framework/interface/EDAnalyzer.h" 00013 #include "FWCore/Framework/interface/Event.h" 00014 #include "FWCore/Framework/interface/EventSetup.h" 00015 #include "FWCore/Framework/interface/Run.h" 00016 00017 #include "DataFormats/Common/interface/Handle.h" 00018 #include "FWCore/Framework/interface/ESHandle.h" 00019 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00020 #include "FWCore/Utilities/interface/InputTag.h" 00021 00022 //DQM services 00023 #include "DQMServices/Core/interface/DQMStore.h" 00024 #include "FWCore/ServiceRegistry/interface/Service.h" 00025 #include "DQMServices/Core/interface/MonitorElement.h" 00026 00027 #include "SimDataFormats/GeneratorProducts/interface/HepMCProduct.h" 00028 00029 #include "SimGeneral/HepPDTRecord/interface/ParticleDataTable.h" 00030 00031 #include "Validation/EventGenerator/interface/WeightManager.h" 00032 00033 class BasicHepMCHeavyIonValidation : public edm::EDAnalyzer 00034 { 00035 public: 00036 explicit BasicHepMCHeavyIonValidation(const edm::ParameterSet&); 00037 virtual ~BasicHepMCHeavyIonValidation(); 00038 virtual void beginJob(); 00039 virtual void endJob(); 00040 virtual void analyze(const edm::Event&, const edm::EventSetup&); 00041 virtual void beginRun(const edm::Run&, const edm::EventSetup&); 00042 virtual void endRun(const edm::Run&, const edm::EventSetup&); 00043 00044 private: 00045 00046 WeightManager _wmanager; 00047 00048 edm::InputTag hepmcCollection_; 00049 bool QWdebug_; 00050 00052 //edm::ESHandle<HepPDT::ParticleDataTable> fPDGTable ; 00053 00055 DQMStore *dbe; 00056 00057 MonitorElement* nEvt; 00058 00059 // Additional information stored in HeavyIon structure 00060 MonitorElement* Ncoll_hard; // Number of hard scatterings 00061 MonitorElement* Npart_proj; // Number of projectile participants 00062 MonitorElement* Npart_targ; // Number of target participants 00063 MonitorElement* Ncoll; // Number of NN (nucleon-nucleon) collisions 00064 MonitorElement* N_Nwounded_collisions; // Number of N-Nwounded collisions 00065 MonitorElement* Nwounded_N_collisions; // Number of Nwounded-N collisons 00066 MonitorElement* Nwounded_Nwounded_collisions; // Number of Nwounded-Nwounded collisions 00067 MonitorElement* spectator_neutrons; // Number of spectator neutrons 00068 MonitorElement* spectator_protons; // Number of spectator protons 00069 MonitorElement* impact_parameter; // Impact Parameter(fm) of collision 00070 MonitorElement* event_plane_angle; // Azimuthal angle of event plane 00071 MonitorElement* eccentricity; // eccentricity of participating nucleons 00072 // in the transverse plane 00073 // (as in phobos nucl-ex/0510031) 00074 MonitorElement* sigma_inel_NN; // nucleon-nucleon inelastic 00075 // (including diffractive) cross-section 00076 00077 00078 }; 00079 00080 #endif