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