File indexing completed on 2024-04-06 12:30:10
0001
0002
0003
0004
0005
0006 #ifndef PPS_PPSDiamondG4Hit_h
0007 #define PPS_PPSDiamondG4Hit_h
0008
0009 #include "G4VHit.hh"
0010 #include "G4ThreeVector.hh"
0011 #include <iostream>
0012
0013 class PPSDiamondG4Hit : public G4VHit {
0014 public:
0015 PPSDiamondG4Hit();
0016 ~PPSDiamondG4Hit() override;
0017 PPSDiamondG4Hit(const PPSDiamondG4Hit &right);
0018 const PPSDiamondG4Hit &operator=(const PPSDiamondG4Hit &right);
0019 int operator==(const PPSDiamondG4Hit &) { return 0; }
0020
0021 void Draw() override {}
0022 void Print() override;
0023
0024 public:
0025 const G4ThreeVector &entry() const;
0026 void setEntry(const G4ThreeVector &xyz);
0027 const G4ThreeVector &exit() const;
0028 void setExit(const G4ThreeVector &xyz);
0029
0030 void setLocalEntry(const G4ThreeVector &theLocalEntryPoint);
0031 void setLocalExit(const G4ThreeVector &theLocalExitPoint);
0032 const G4ThreeVector &localEntry() const;
0033 const G4ThreeVector &localExit() const;
0034
0035 double incidentEnergy() const;
0036 void setIncidentEnergy(double e);
0037
0038 unsigned int trackID() const;
0039 void setTrackID(int i);
0040
0041 int unitID() const;
0042 void setUnitID(unsigned int i);
0043
0044 double timeSlice() const;
0045 void setTimeSlice(double d);
0046 int timeSliceID() const;
0047
0048 double p() const;
0049 double tof() const;
0050 double energyLoss() const;
0051 int particleType() const;
0052
0053 void setP(double e);
0054 void setTof(double e);
0055 void setEnergyLoss(double e);
0056 void setParticleType(short i);
0057
0058 void addEnergyLoss(double e);
0059
0060 double thetaAtEntry() const;
0061 double phiAtEntry() const;
0062
0063 void setThetaAtEntry(double t);
0064 void setPhiAtEntry(double f);
0065
0066 double x() const;
0067 double y() const;
0068 double z() const;
0069
0070 void setX(double t);
0071 void setY(double t);
0072 void setZ(double t);
0073
0074 int parentId() const;
0075 double vx() const;
0076 double vy() const;
0077 double vz() const;
0078
0079 void setParentId(int p);
0080 void setVx(double p);
0081 void setVy(double p);
0082 void setVz(double p);
0083
0084 void setPx(double p);
0085 void setPy(double p);
0086 void setPz(double p);
0087 double px() const;
0088 double py() const;
0089 double pz() const;
0090
0091 double globalTimehit() const;
0092 void setGlobalTimehit(double h);
0093
0094 private:
0095 G4ThreeVector entry_;
0096 G4ThreeVector exit_;
0097 G4ThreeVector local_entry_;
0098 G4ThreeVector local_exit_;
0099 double theIncidentEnergy_;
0100 int theTrackID_;
0101 uint32_t theUnitID_;
0102 double theTimeSlice_;
0103 double theGlobaltimehit_;
0104 double theX_;
0105 double theY_;
0106 double theZ_;
0107 double thePabs_;
0108 double theTof_;
0109 double theEnergyLoss_;
0110 int theParticleType_;
0111 int theParentId_;
0112 double theVx_;
0113 double theVy_;
0114 double theVz_;
0115 double thePx_;
0116 double thePy_;
0117 double thePz_;
0118 double theThetaAtEntry_;
0119 double thePhiAtEntry_;
0120 };
0121
0122 std::ostream &operator<<(std::ostream &, const PPSDiamondG4Hit &);
0123
0124 #endif