Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-07-13 08:21:05

0001 
0002 
0003 #ifndef G4HepEmGammaTrack_HH
0004 #define G4HepEmGammaTrack_HH
0005 
0006 
0007 #include "G4HepEmTrack.hh"
0008 
0009 // A simple track structure for gamma particles.
0010 //
0011 // A G4HepEmGammaTrack is practically the NEUTRAL G4HepEmTrack object.
0012 // Such G4HepEmGammaTrack object buffers are stored in each G4HepEmTLData 
0013 // object, that are unique for each worker, to propagate and communicate 
0014 // primary/secondary gamma track information between the different phases of a 
0015 // given step or between the G4HepEmElectron/GammaManager and their functions.
0016 
0017 class G4HepEmGammaTrack {
0018 
0019 public:
0020   G4HepEmHostDevice
0021   G4HepEmGammaTrack() { fTrack.ReSet(); }
0022   
0023   G4HepEmHostDevice
0024   G4HepEmGammaTrack(const G4HepEmGammaTrack& o) { 
0025     fTrack = o.fTrack;
0026   }
0027 
0028   G4HepEmHostDevice
0029   G4HepEmTrack*  GetTrack()  { return &fTrack; }
0030 
0031   G4HepEmHostDevice
0032   void   SetPEmxSec(double mxsec) { fPEmxSec = mxsec; }
0033   G4HepEmHostDevice
0034   double GetPEmxSec() const       { return fPEmxSec; }
0035 
0036   G4HepEmHostDevice
0037   void ReSet() {
0038     fTrack.ReSet();
0039     fPEmxSec = 0.0;
0040   }
0041 
0042     
0043 private:
0044   G4HepEmTrack  fTrack;
0045   double        fPEmxSec;
0046 };
0047 
0048 
0049 
0050 #endif // G4HepEmGammaTrack_HH