00001 #ifndef Forward_TotemG4Hit_h 00002 #define Forward_TotemG4Hit_h 1 00003 // -*- C++ -*- 00004 // 00005 // Package: Forward 00006 // Class : TotemG4Hit 00007 // 00025 // 00026 // Original Author: 00027 // Created: Tue May 16 10:14:34 CEST 2006 00028 // $Id: TotemG4Hit.h,v 1.2 2007/11/20 12:37:19 fabiocos Exp $ 00029 // 00030 00031 // system include files 00032 00033 // user include files 00034 00035 #include "G4VHit.hh" 00036 #include "DataFormats/Math/interface/Point3D.h" 00037 #include <boost/cstdint.hpp> 00038 #include <iostream> 00039 00040 class TotemG4Hit : public G4VHit { 00041 00042 public: 00043 00044 // ---------- Constructor and destructor ----------------- 00045 TotemG4Hit(); 00046 ~TotemG4Hit(); 00047 TotemG4Hit(const TotemG4Hit &right); 00048 00049 // ---------- operators ---------------------------------- 00050 const TotemG4Hit& operator=(const TotemG4Hit &right); 00051 int operator==(const TotemG4Hit &){return 0;} 00052 00053 // ---------- member functions --------------------------- 00054 void Draw(){} 00055 void Print(); 00056 00057 math::XYZPoint getEntry() const; 00058 void setEntry(double x, double y, double z) {entry.SetCoordinates(x,y,z);} 00059 00060 double getEM() const; 00061 void setEM (double e); 00062 00063 double getHadr() const; 00064 void setHadr (double e); 00065 00066 double getIncidentEnergy() const; 00067 void setIncidentEnergy (double e); 00068 00069 int getTrackID() const; 00070 void setTrackID (int i); 00071 00072 uint32_t getUnitID() const; 00073 void setUnitID (uint32_t i); 00074 00075 double getTimeSlice() const; 00076 void setTimeSlice(double d); 00077 int getTimeSliceID() const; 00078 00079 void addEnergyDeposit(double em, double hd); 00080 void addEnergyDeposit(const TotemG4Hit& aHit); 00081 00082 double getEnergyDeposit() const; 00083 00084 float getPabs() const; 00085 float getTof() const; 00086 float getEnergyLoss() const; 00087 int getParticleType() const; 00088 00089 void setPabs(float e); 00090 void setTof(float e); 00091 void setEnergyLoss(float e) ; 00092 void setParticleType(short i) ; 00093 00094 float getThetaAtEntry() const; 00095 float getPhiAtEntry() const; 00096 00097 void setThetaAtEntry(float t); 00098 void setPhiAtEntry(float f) ; 00099 00100 float getX() const; 00101 float getY() const; 00102 float getZ() const; 00103 void setX(float t); 00104 void setY(float t); 00105 void setZ(float t); 00106 00107 int getParentId() const; 00108 float getVx() const; 00109 float getVy() const; 00110 float getVz() const; 00111 00112 void setParentId(int p); 00113 void setVx(float p); 00114 void setVy(float p); 00115 void setVz(float p); 00116 00117 private: 00118 00119 math::XYZPoint entry; //Entry point 00120 double elem; //EnergyDeposit of EM particles 00121 double hadr; //EnergyDeposit of HD particles 00122 double theIncidentEnergy; //Energy of the primary particle 00123 int theTrackID; //Identification number of the primary 00124 //particle 00125 uint32_t theUnitID; //Totem Unit Number 00126 double theTimeSlice; //Time Slice Identification 00127 00128 00129 float theX; 00130 float theY; 00131 float theZ; 00132 float thePabs; 00133 float theTof; 00134 float theEnergyLoss; 00135 int theParticleType; 00136 00137 float theThetaAtEntry; 00138 float thePhiAtEntry; 00139 math::XYZPoint theEntryPoint; 00140 math::XYZPoint theExitPoint; 00141 00142 int theParentId; 00143 float theVx; 00144 float theVy; 00145 float theVz; 00146 00147 }; 00148 00149 std::ostream& operator<<(std::ostream&, const TotemG4Hit&); 00150 00151 #endif 00152