Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:30:02

0001 ///////////////////////////////////////////////////////////////////////////////
0002 // File: FP420G4Hit.h
0003 // Date: 02.2006
0004 //
0005 // Package:     FP420
0006 // Class  :     FP420G4Hit
0007 //
0008 ///////////////////////////////////////////////////////////////////////////////
0009 #ifndef FP420G4Hit_h
0010 #define FP420G4Hit_h
0011 
0012 #include "G4VHit.hh"
0013 #include <iostream>
0014 
0015 #include "G4Step.hh"
0016 //#include "G4StepPoint.hh"
0017 
0018 class FP420G4Hit : public G4VHit {
0019 public:
0020   FP420G4Hit();
0021   ~FP420G4Hit() override;
0022   FP420G4Hit(const FP420G4Hit& right);
0023   const FP420G4Hit& operator=(const FP420G4Hit& right);
0024   int operator==(const FP420G4Hit&) { return 0; }
0025 
0026   void Draw() override {}
0027   void Print() override;
0028 
0029 public:
0030   G4ThreeVector getEntry() const;
0031   void setEntry(const G4ThreeVector& xyz);
0032 
0033   G4ThreeVector getEntryLocalP() const;
0034   void setEntryLocalP(const G4ThreeVector& xyz1);
0035 
0036   G4ThreeVector getExitLocalP() const;
0037   void setExitLocalP(const G4ThreeVector& xyz1);
0038 
0039   double getEM() const;
0040   void setEM(double e);
0041 
0042   double getHadr() const;
0043   void setHadr(double e);
0044 
0045   double getIncidentEnergy() const;
0046   void setIncidentEnergy(double e);
0047 
0048   //G4int          getTrackID() const;
0049   unsigned int getTrackID() const;
0050   void setTrackID(int i);
0051 
0052   unsigned int getUnitID() const;
0053   void setUnitID(unsigned int i);
0054 
0055   double getTimeSlice() const;
0056   void setTimeSlice(double d);
0057   int getTimeSliceID() const;
0058 
0059   void addEnergyDeposit(double em, double hd);
0060   void addEnergyDeposit(const FP420G4Hit& aHit);
0061 
0062   double getEnergyDeposit() const;
0063 
0064   float getPabs() const;
0065   float getTof() const;
0066   float getEnergyLoss() const;
0067   int getParticleType() const;
0068 
0069   void setPabs(float e);
0070   void setTof(float e);
0071   void addEnergyLoss(float e);
0072   void setEnergyLoss(float e);
0073   void setParticleType(short i);
0074 
0075   float getThetaAtEntry() const;
0076   float getPhiAtEntry() const;
0077 
0078   void setThetaAtEntry(float t);
0079   void setPhiAtEntry(float f);
0080 
0081   float getX() const;
0082   void setX(float t);
0083   float getY() const;
0084   float getZ() const;
0085   void setY(float t);
0086   void setZ(float t);
0087 
0088   int getParentId() const;
0089   float getVx() const;
0090   float getVy() const;
0091   float getVz() const;
0092 
0093   void setParentId(int p);
0094   void setVx(float p);
0095   void setVy(float p);
0096   void setVz(float p);
0097 
0098 private:
0099   G4ThreeVector entry;       //Entry point
0100   G4ThreeVector entrylp;     //Entry  local point
0101   G4ThreeVector exitlp;      //Exit  local point
0102   double elem;               //EnergyDeposit of EM particles
0103   double hadr;               //EnergyDeposit of HD particles
0104   double theIncidentEnergy;  //Energy of the primary particle
0105   G4int theTrackID;          //Identification number of the primary
0106                              //particle
0107   double theTimeSlice;       //Time Slice Identification
0108 
0109   int theUnitID;  //FP420 Unit Number
0110 
0111   float theX;
0112   float theY;
0113   float theZ;
0114   float thePabs;
0115   float theTof;
0116   float theEnergyLoss;
0117   int theParticleType;
0118 
0119   float theThetaAtEntry;
0120   float thePhiAtEntry;
0121 
0122   int theParentId;
0123   float theVx;
0124   float theVy;
0125   float theVz;
0126 };
0127 
0128 std::ostream& operator<<(std::ostream&, const FP420G4Hit&);
0129 
0130 #endif