CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_4_5_patch3/src/SimG4CMS/Calo/interface/HFGflash.h

Go to the documentation of this file.
00001 #ifndef SimG4CMS_HFGflash_h
00002 #define SimG4CMS_HFGflash_h
00003 
00004 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00005 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00006 
00007 #include "SimGeneral/GFlash/interface/GflashEMShowerProfile.h"
00008 #include "SimGeneral/GFlash/interface/GflashTrajectory.h"
00009 #include "SimGeneral/GFlash/interface/GflashNameSpace.h"
00010 
00011 #include "G4VFastSimulationModel.hh"
00012 #include "G4ParticleTable.hh"
00013 #include "G4ThreeVector.hh"
00014 #include "G4FastTrack.hh"
00015 #include "G4TouchableHandle.hh"
00016 #include "G4Navigator.hh"
00017 
00018 #include <string>
00019 #include <vector>
00020 
00021 #include <TFile.h>
00022 #include <TTree.h>
00023 #include <TH1F.h>
00024 #include <TH2F.h>
00025 #include <TProfile.h>
00026 
00027 class G4Step;
00028 
00029 class HFGflash {
00030 
00031 public:    
00032 
00033   HFGflash(edm::ParameterSet const & p);
00034   virtual ~HFGflash();
00035 
00036   struct Hit {
00037     Hit() {}
00038     G4ThreeVector       position;
00039     int                 depth;
00040     double              time;
00041     double              edep;
00042     double              pez;
00043   };
00044 
00045   std::vector<Hit> gfParameterization(G4Step * aStep, bool & ok, bool onlyLong=false);
00046 
00047 private:    
00048 
00049   GflashTrajectory* theHelix;
00050   G4Step *theGflashStep;
00051   G4Navigator *theGflashNavigator;
00052   G4TouchableHandle  theGflashTouchableHandle;
00053 
00054   Gflash::CalorimeterNumber jCalorimeter;
00055 
00056   bool     theWatcherOn;
00057   bool     theFillHisto;
00058   G4double theBField;
00059 
00060   G4int    showerType ;
00061   G4double energyToDeposit; 
00062   G4double energyScale[Gflash::kNumberCalorimeter]; 
00063   G4double longHcal[Gflash::NPar];  
00064   G4double longEcal[Gflash::NPar];  
00065   G4double lateralPar[4]; 
00066 
00067   TH1F     *em_incE, *em_ssp_rho, *em_ssp_z, *em_long, *em_lateral;
00068   TH1F     *em_long_sd, *em_lateral_sd, *em_nSpots_sd, *em_ze_ratio;
00069   TH2F     *em_2d, *em_2d_sd, *em_ze, *em_ratio, *em_ratio_selected;
00070 };
00071 
00072 #endif // HFGflash_h