/home/cern/BDSIM_new/include/BDSComptonEngine.hh

00001 /* BDSIM code.    Version 1.0
00002    Author: Grahame A. Blair, Royal Holloway, Univ. of London.
00003    Last modified 24.7.2002
00004    Copyright (c) 2002 by G.A.Blair.  ALL RIGHTS RESERVED. 
00005 */
00006 #ifndef BDSComptonEngine_h
00007 #define BDSComptonEngine_h 1
00008 
00009 #include "G4ios.hh" 
00010 #include "globals.hh"
00011 #include "Randomize.hh" 
00012 
00013 #if G4VERSION > 8
00014 #include "G4VEnergyLossProcess.hh"
00015 #else
00016 #include "G4VeEnergyLoss.hh"
00017 #endif
00018 
00019 #include "G4Track.hh"
00020 #include "G4Step.hh"
00021 #include "G4Gamma.hh"
00022 #include "G4Electron.hh"
00023 #include "G4Positron.hh"
00024 #include "G4OrderedTable.hh" 
00025 #include "G4PhysicsTable.hh"
00026 #include "G4PhysicsLogVector.hh"
00027  
00028 class BDSComptonEngine  
00029 { 
00030   public:
00031  
00032      BDSComptonEngine();
00033 
00034      BDSComptonEngine( G4LorentzVector InGam_FourVec, 
00035                       G4LorentzVector InEl_FourVec=0 );
00036  
00037     ~BDSComptonEngine();
00038 
00039      void PerformCompton();
00040      void SetIncomingPhoton4Vec(G4LorentzVector inGam);
00041      void SetIncomingElectron4Vec(G4LorentzVector inEl);
00042 
00043      G4LorentzVector GetScatteredElectron();
00044      G4LorentzVector GetScatteredGamma();
00045 
00046   protected:
00047 
00048   private:
00049 
00050 private:
00051     G4LorentzVector itsScatteredEl;
00052     G4LorentzVector itsScatteredGam;
00053     G4LorentzVector itsIncomingEl;
00054     G4LorentzVector itsIncomingGam;
00055 
00056    static const G4int ntryMax = 10000000;
00057 
00058 };
00059 
00060 inline G4LorentzVector BDSComptonEngine::GetScatteredElectron()
00061 {return itsScatteredEl;}
00062 
00063 inline G4LorentzVector BDSComptonEngine::GetScatteredGamma()
00064 {return itsScatteredGam;}
00065 
00066 
00067 inline void BDSComptonEngine::SetIncomingPhoton4Vec(G4LorentzVector inGam)
00068 {itsIncomingGam=inGam;
00069  if(itsIncomingEl.e()<electron_mass_c2)
00070       {G4Exception("BDSComptonEngine: Invalid Electron Energy");}
00071 
00072 }
00073 inline void BDSComptonEngine::SetIncomingElectron4Vec(G4LorentzVector inEl)
00074 {itsIncomingEl=inEl;}
00075 #endif

Generated on Wed Mar 5 17:25:21 2008 for BDSIM by  doxygen 1.5.3