1 #ifndef PARTICLEMATTERINTERACTIONHANDLER_HH
2 #define PARTICLEMATTERINTERACTIONHANDLER_HH
9 template <
class T,
unsigned Dim>
18 const std::pair<Vector_t, double> &boundingSphere,
19 size_t numParticlesInSimulation = 0) = 0;
20 virtual const std::string
getType()
const = 0;
25 virtual std::string
getName() = 0;
36 bool includeFluctuations =
true)
const = 0;
48 allParticleInMat_m(false),
71 #endif // PARTICLEMATTERINTERACTION_HH
virtual void apply(PartBunchBase< double, 3 > *bunch, const std::pair< Vector_t, double > &boundingSphere, size_t numParticlesInSimulation=0)=0
virtual bool computeEnergyLoss(Vector_t &P, const double deltat, bool includeFluctuations=true) const =0
virtual bool stillActive()=0
Interface for basic beam line object.
virtual bool stillAlive(PartBunchBase< double, 3 > *bunch)=0
ElementBase * getElement()
virtual const std::string getType() const =0
bool allParticleInMat_m
if all particles are in matter stay inside the particle matter interaction
void updateElement(ElementBase *newref)
virtual ~ParticleMatterInteractionHandler()
virtual unsigned getRediffused()=0
bool getFlagAllParticlesIn() const
ParticleMatterInteractionHandler(std::string name, ElementBase *elref)
virtual void print(Inform &os)=0
virtual unsigned int getNumEntered()=0
virtual double getTime()=0
ElementBase * element_ref_m
void setFlagAllParticlesIn(bool p)
virtual size_t getParticlesInMat()=0
virtual std::string getName()=0