CMS 3D CMS Logo

CMSSW_4_4_3_patch1/src/SimG4Core/GFlash/interface/GflashG4Watcher.h

Go to the documentation of this file.
00001 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00002 #include "SimG4Core/Watcher/interface/SimWatcher.h"
00003 #include "SimG4Core/Notification/interface/Observer.h"
00004 
00005 #include <TFile.h>
00006 #include <TTree.h>
00007 #include <TH1F.h>
00008 #include <TH2F.h>
00009 #include <TProfile.h>
00010 
00011 #include <string>
00012 
00013 //
00014 // class decleration
00015 //
00016 
00017 class BeginOfEvent;
00018 class EndOfEvent;
00019 class G4Step;
00020 
00021 
00022 class GflashG4Watcher : public SimWatcher,
00023   public Observer<const BeginOfEvent*>,
00024   public Observer<const EndOfEvent*>,
00025   public Observer<const G4Step*> {
00026 
00027  public:
00028   GflashG4Watcher(const edm::ParameterSet& p);
00029   ~GflashG4Watcher();
00030   
00031  private:
00032 
00033   G4bool        inc_flag;
00034   G4double      inc_energy;
00035   G4double      out_energy;
00036   G4ThreeVector inc_vertex;
00037   G4ThreeVector inc_direction;
00038   G4ThreeVector inc_position;
00039 
00040   void update(const BeginOfEvent* );
00041   void update(const EndOfEvent* );
00042   void update(const G4Step* );
00043 
00044   // histograms for GflashG4Watcher
00045 
00046   std::string histFileName_;
00047   double recoEnergyScaleEB_;
00048   double recoEnergyScaleEE_;
00049 
00050   TFile*    histFile_;
00051 
00052   TH1F*     em_incE;
00053   TH1F*     em_vtx_rho;
00054   TH1F*     em_vtx_z;
00055 
00056   TH1F*     eb_ssp_rho;
00057   TH1F*     eb_hit_long;
00058   TH1F*     eb_hit_lat;
00059   TH2F*     eb_hit_rz;
00060   TH1F*     eb_hit_long_sd;
00061   TH1F*     eb_hit_lat_sd;
00062   TH2F*     eb_hit_rz_sd;
00063 
00064   TH1F*     ee_ssp_z;
00065   TH1F*     ee_hit_long;
00066   TH1F*     ee_hit_lat;
00067   TH2F*     ee_hit_rz;
00068   TH1F*     ee_hit_long_sd;
00069   TH1F*     ee_hit_lat_sd;
00070   TH2F*     ee_hit_rz_sd;
00071 
00072 };
00073