00001 00002 // File: BscG4Hit.h 00003 // Date: 02.2006 00004 // 00005 // Package: Bsc 00006 // Class : BscG4Hit 00007 // 00009 #ifndef BscG4Hit_h 00010 #define BscG4Hit_h 00011 00012 #include "G4VHit.hh" 00013 #include <CLHEP/Vector/ThreeVector.h> 00014 #include <boost/cstdint.hpp> 00015 #include <iostream> 00016 00017 #include "G4Step.hh" 00018 //#include "G4StepPoint.hh" 00019 00020 class BscG4Hit : public G4VHit { 00021 00022 public: 00023 00024 BscG4Hit(); 00025 ~BscG4Hit(); 00026 BscG4Hit(const BscG4Hit &right); 00027 const BscG4Hit& operator=(const BscG4Hit &right); 00028 int operator==(const BscG4Hit &){return 0;} 00029 00030 void Draw(){} 00031 void Print(); 00032 00033 public: 00034 00035 G4ThreeVector getEntry() const; 00036 void setEntry(G4ThreeVector xyz); 00037 00038 G4ThreeVector getEntryLocalP() const; 00039 void setEntryLocalP(G4ThreeVector xyz1); 00040 00041 G4ThreeVector getExitLocalP() const; 00042 void setExitLocalP(G4ThreeVector xyz1); 00043 00044 double getEM() const; 00045 void setEM (double e); 00046 00047 double getHadr() const; 00048 void setHadr (double e); 00049 00050 double getIncidentEnergy() const; 00051 void setIncidentEnergy (double e); 00052 00053 G4int getTrackID() const; 00054 void setTrackID (int i); 00055 00056 unsigned int getUnitID() const; 00057 void setUnitID (unsigned int i); 00058 00059 double getTimeSlice() const; 00060 void setTimeSlice(double d); 00061 int getTimeSliceID() const; 00062 00063 void addEnergyDeposit(double em, double hd); 00064 void addEnergyDeposit(const BscG4Hit& aHit); 00065 00066 double getEnergyDeposit() const; 00067 00068 float getPabs() const; 00069 float getTof() const; 00070 float getEnergyLoss() const; 00071 int getParticleType() const; 00072 00073 void setPabs(float e) ; 00074 void setTof(float e) ; 00075 void setEnergyLoss(float e) ; 00076 void setParticleType(short i) ; 00077 00078 float getThetaAtEntry() const; 00079 float getPhiAtEntry() const; 00080 00081 void setThetaAtEntry(float t); 00082 void setPhiAtEntry(float f) ; 00083 00084 float getX() const; 00085 void setX(float t); 00086 float getY() const; 00087 float getZ() const; 00088 void setY(float t); 00089 void setZ(float t); 00090 00091 00092 int getParentId() const; 00093 float getVx() const; 00094 float getVy() const; 00095 float getVz() const; 00096 00097 void setParentId(int p); 00098 void setVx(float p); 00099 void setVy(float p); 00100 void setVz(float p); 00101 00102 00103 private: 00104 00105 G4ThreeVector entry; //Entry point 00106 G4ThreeVector entrylp; //Entry local point 00107 G4ThreeVector exitlp; //Exit local point 00108 double elem; //EnergyDeposit of EM particles 00109 double hadr; //EnergyDeposit of HD particles 00110 double theIncidentEnergy; //Energy of the primary particle 00111 G4int theTrackID; //Identification number of the primary 00112 //particle 00113 double theTimeSlice; //Time Slice Identification 00114 00115 int theUnitID; //Bsc Unit Number 00116 00117 float theX; 00118 float theY; 00119 float theZ; 00120 float thePabs ; 00121 float theTof ; 00122 float theEnergyLoss ; 00123 int theParticleType ; 00124 00125 00126 float theThetaAtEntry ; 00127 float thePhiAtEntry ; 00128 00129 int theParentId; 00130 float theVx; 00131 float theVy; 00132 float theVz; 00133 00134 00135 }; 00136 00137 std::ostream& operator<<(std::ostream&, const BscG4Hit&); 00138 00139 #endif 00140