00001 #ifndef _HEPMCANALYSIS_Z_H_ 00002 #define _HEPMCANALYSIS_Z_H_ 00003 00004 #include "baseAnalysis.h" 00005 00006 // forward declarations 00007 namespace HepMC { 00008 class GenEvent; 00009 } 00010 class TH1D; 00011 00012 /** 00013 @class ZAnalysis.h 00014 @brief Class to analyse processes of the type QCD pp->Z->e+e-, Z->mu+mu- 00015 Examples to generate these events are given in the specific generator 00016 directory, e.g. examples/pythia6 ; the histogramm output is stored 00017 in the Zanalysis folder of the root file. 00018 00019 @author Cano Ay Dec 2008 */ 00020 class ZAnalysis: public baseAnalysis 00021 { 00022 public: 00023 enum EParticleType { 00024 Electron = 11, Muon = 13, Tau = 15 00025 }; 00026 00027 ZAnalysis(); 00028 virtual ~ZAnalysis(); 00029 00030 virtual int Init( double tr_max_eta, double tr_min_pt ); 00031 virtual int Process( HepMC::GenEvent *hepmcevt ); 00032 00033 private: 00034 bool FSVector( HepMC::GenEvent::particle_const_iterator &p, EParticleType productPid, HepMC::FourVector &fsVector ); 00035 void FillZHistograms( const HepMC::FourVector &fsVec ); 00036 00037 TH1D *m_evtnr; 00038 TH1D *m_charged_particle_multiplicity; 00039 TH1D *m_charged_particle_pt; 00040 TH1D *m_charged_particle_mean_pt; 00041 TH1D *m_charged_particle_temp_pt; 00042 TH1D *m_charged_particle_rms_pt; 00043 TH1D *m_charged_particle_pdgID; 00044 00045 TH1D *m_Z_pt; 00046 TH1D *m_Z_pt_log; 00047 TH1D *m_Z_pt_high; 00048 TH1D *m_Z_pt_high_log; 00049 TH1D *m_Z_eta; 00050 TH1D *m_Z_phi; 00051 TH1D *m_Z_mass; 00052 TH1D *m_Z_mass_log; 00053 00054 TH1D *m_Z_pt_prop; 00055 TH1D *m_Z_pt_prop_log; 00056 TH1D *m_Z_pt_high_prop; 00057 TH1D *m_Z_pt_high_prop_log; 00058 TH1D *m_Z_eta_prop; 00059 TH1D *m_Z_phi_prop; 00060 TH1D *m_Z_mass_prop; 00061 TH1D *m_Z_mass_prop_log; 00062 00063 TH1D *m_jet_count; 00064 TH1D *m_jet_pt; 00065 TH1D *m_jet_pt_log; 00066 }; 00067 00068 #endif 00069