CMS 3D CMS Logo

HFCherenkov.h

Go to the documentation of this file.
00001 #ifndef SimG4CMS_HFCherenkov_h
00002 #define SimG4CMS_HFCherenkov_h 1
00004 // File:  HFCherenkov.h
00005 // Description: Generate Cherenkov photons for HF
00007 
00008 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00009 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00010 
00011 #include "G4DynamicParticle.hh"
00012 #include "G4ParticleDefinition.hh"
00013 #include "G4ThreeVector.hh"
00014 #include "globals.hh"
00015 
00016 #include <vector>
00017 
00018 class HFCherenkov {
00019   
00020 public:
00021 
00022    HFCherenkov(edm::ParameterSet const & p);
00023    virtual ~HFCherenkov();
00024   
00025    int                 computeNPE(G4ParticleDefinition* pDef,double pBeta, 
00026                                   double u, double v, double w, 
00027                                   double step_length, double zFiber, 
00028                                   double Dose, int Npe_Dose);
00029 
00030    int                 computeNPhTrapped(double pBeta, double u, double v, 
00031                                          double w, double step_length,
00032                                          double zFiber, double Dose,
00033                                          int Npe_Dose);
00034    double              smearNPE(G4int Npe);                               
00035 
00036    std::vector<double> getMom();
00037    std::vector<double> getWL();
00038    std::vector<double> getWLIni();
00039    std::vector<double> getWLTrap();
00040    std::vector<double> getWLAtten();
00041    std::vector<double> getWLHEM();
00042    std::vector<double> getWLQEff();
00043    void                clearVectors();
00044                                           
00045 private:
00046 
00047    bool                isApplicable(const G4ParticleDefinition* aParticleType);
00048    // Returns true -> 'is applicable', for all charged particles.
00049    int                 computeNbOfPhotons(double pBeta, double step_length);
00050    double              computeQEff(double wavelength);
00051    double              computeHEMEff(double wavelength);
00052 
00053 private:
00054 
00055    double              ref_index;
00056    double              lambda1, lambda2;
00057    double              aperture, apertureTrap;
00058    double              gain;
00059    bool                checkSurvive;
00060 
00061    G4ThreeVector       phMom;
00062    std::vector<double> wl;
00063    std::vector<double> momZ;
00064    std::vector<double> wlini;
00065    std::vector<double> wltrap;
00066    std::vector<double> wlatten;
00067    std::vector<double> wlhem;
00068    std::vector<double> wlqeff;
00069 };
00070 
00071 #endif
00072 

Generated on Tue Jun 9 17:46:48 2009 for CMSSW by  doxygen 1.5.4