CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_4_5_patch3/src/SimG4CMS/Forward/interface/TotemG4Hit.h

Go to the documentation of this file.
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