/scratch0/jsnuveri/BDSIM/BDSIMgit/bdsim/include/BDSSamplerHit.hh

00001 /* BDSIM code.    Version 1.0
00002    Author: Grahame A. Blair, Royal Holloway, Univ. of London.
00003    Last modified 5.11.2002
00004    Copyright (c) 2002 by G.A.Blair.  ALL RIGHTS RESERVED. 
00005 
00006    Modified 22.03.05 by J.C.Carter, Royal Holloway, Univ. of London.
00007    Changed Samplers to account for plane and cylinder types (GABs code)
00008 */
00009 
00010 #ifndef BDSSamplerHit_h
00011 #define BDSSamplerHit_h 1
00012 
00013 #include "G4VHit.hh"
00014 #include "G4THitsCollection.hh"
00015 #include "G4Allocator.hh"
00016 #include "G4ThreeVector.hh"
00017 
00018 #include "BDSParticle.hh"
00019 
00020 class BDSSamplerHit :public G4VHit
00021 {
00022 public:
00023   BDSSamplerHit(G4String aName,
00024                 BDSParticle init,
00025                 BDSParticle prod,
00026                 BDSParticle last_scat,
00027                 BDSParticle local,
00028                 BDSParticle global,
00029                 G4double s,
00030                 G4double weight,
00031                 G4int PDGtype, G4int nEvent,
00032                 G4int ParentID, G4int TrackID,
00033                 G4int TurnsTaken,
00034                 G4String sampType);
00035 
00036   ~BDSSamplerHit();
00037   
00038   inline void* operator new(size_t) ;
00039   inline void operator delete(void *aHit);
00040   
00041 private:
00042   G4String itsName;
00043 
00045   BDSParticle itsInit;
00046 
00048   BDSParticle itsProd;
00049 
00051   BDSParticle itsLastScat;
00052 
00055   BDSParticle itsLocal;
00056 
00058   BDSParticle itsGlobal;
00059 
00061   G4double itsS;
00062 
00063   G4double itsWeight;
00064   G4int itsPDGtype;
00065   G4int itsEventNo;
00066   G4int itsParentID;
00067   G4int itsTrackID;
00068   G4int itsTurnsTaken;
00069   G4String itsSampType;
00070   
00071 public:
00072   inline G4double GetInitMom() const
00073     {return itsInit.GetEnergy();}
00074   inline G4double GetInitX() const
00075     {return itsInit.GetX();}
00076   inline G4double GetInitXPrime() const
00077     {return itsInit.GetXp();}
00078   inline G4double GetInitY() const
00079     {return itsInit.GetY();}
00080   inline G4double GetInitYPrime() const
00081     {return itsInit.GetYp();}
00082   inline G4double GetInitZ() const
00083     {return itsInit.GetZ();}
00084   inline G4double GetInitZPrime() const
00085     {return itsInit.GetZp();}
00086   inline G4double GetInitT() const
00087     {return itsInit.GetTime();}
00088   inline G4double GetProdMom() const
00089     {return itsProd.GetEnergy();}
00090   inline G4double GetProdX() const
00091     {return itsProd.GetX();}
00092   inline G4double GetProdXPrime() const
00093     {return itsProd.GetXp();}
00094   inline G4double GetProdY() const
00095     {return itsProd.GetY();}
00096   inline G4double GetProdYPrime() const
00097     {return itsProd.GetYp();}
00098   inline G4double GetProdZ() const
00099     {return itsProd.GetZ();}
00100   inline G4double GetProdZPrime() const
00101     {return itsProd.GetZp();}
00102   inline G4double GetProdT() const
00103     {return itsProd.GetTime();}
00104   inline G4double GetLastScatMom() const
00105     {return itsLastScat.GetEnergy();}
00106   inline G4double GetLastScatX() const
00107     {return itsLastScat.GetX();}
00108   inline G4double GetLastScatXPrime() const
00109     {return itsLastScat.GetXp();}
00110   inline G4double GetLastScatY() const
00111     {return itsLastScat.GetY();}
00112   inline G4double GetLastScatYPrime() const
00113     {return itsLastScat.GetYp();}
00114   inline G4double GetLastScatZ() const
00115     {return itsLastScat.GetZ();}
00116   inline G4double GetLastScatZPrime() const
00117     {return itsLastScat.GetZp();}
00118   inline G4double GetLastScatT() const
00119     {return itsLastScat.GetTime();}
00120   inline G4double GetMom() const
00121     {return itsLocal.GetEnergy();}
00122   inline G4double GetX() const
00123     {return itsLocal.GetX();}
00124   inline G4double GetXPrime() const
00125     {return itsLocal.GetXp();}
00126   inline G4double GetY() const
00127     {return itsLocal.GetY();}
00128   inline G4double GetYPrime() const
00129     {return itsLocal.GetYp();}
00130   inline G4double GetZ() const
00131     {return itsLocal.GetZ();}
00132   inline G4double GetZPrime() const
00133     {return itsLocal.GetZp();}
00134   inline G4double GetGlobalX() const
00135     {return itsGlobal.GetX();}
00136   inline G4double GetGlobalXPrime() const
00137     {return itsGlobal.GetXp();}
00138   inline G4double GetGlobalY() const
00139     {return itsGlobal.GetY();}
00140   inline G4double GetGlobalYPrime() const
00141     {return itsGlobal.GetYp();}
00142   inline G4double GetGlobalZ() const
00143     {return itsGlobal.GetZ();}
00144   inline G4double GetGlobalZPrime() const
00145     {return itsGlobal.GetZp();}
00146   inline G4double GetT() const
00147     {return itsLocal.GetTime();}
00148   inline G4double GetS() const
00149     {return itsS;}
00150   inline G4double GetWeight() const
00151     {return itsWeight;}
00152   inline G4String GetName() const
00153     {return itsName;}
00154   inline G4String GetType()
00155     {return itsSampType;}
00156   inline G4int GetEventNo() const
00157     {return itsEventNo;}
00158   inline G4int GetPDGtype() const
00159     {return itsPDGtype;}
00160   inline G4int GetParentID() const
00161     {return itsParentID;}
00162   inline G4int GetTrackID() const
00163     {return itsTrackID;}
00164   inline G4int GetTurnsTaken() const
00165   {return itsTurnsTaken;}
00166 };
00167 
00168 typedef G4THitsCollection<BDSSamplerHit> BDSSamplerHitsCollection;
00169 extern G4Allocator<BDSSamplerHit> BDSSamplerHitAllocator;
00170 
00171 inline void* BDSSamplerHit::operator new(size_t)
00172 {
00173   void* aHit;
00174   aHit=(void*) BDSSamplerHitAllocator.MallocSingle();
00175   return aHit;
00176 }
00177 
00178 inline void BDSSamplerHit::operator delete(void *aHit)
00179 {
00180   BDSSamplerHitAllocator.FreeSingle((BDSSamplerHit*) aHit);
00181 }
00182 
00183 #endif
00184 

Generated on 28 Jun 2015 for BDSIM by  doxygen 1.4.7