Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2021-02-14 14:29:27

0001 ///////////////////////////////////////////////////////////////////////////////
0002 // Author
0003 // Seyed Mohsen Etesami setesami@cern.ch
0004 // Feb 2016
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_;        //Entry point
0096   G4ThreeVector exit_;         //Exit point
0097   G4ThreeVector local_entry_;  //local entry point
0098   G4ThreeVector local_exit_;   //local exit point
0099   double theIncidentEnergy_;   //Energy of the primary particle
0100   int theTrackID_;             //Identification number of the primary particle
0101   uint32_t theUnitID_;         //PPS DetectorId
0102   double theTimeSlice_;        //Time Slice Identification
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  //PPSDiamondG4Hit_h