18#ifndef PARTICLEMATTERINTERACTIONHANDLER_HH
19#define PARTICLEMATTERINTERACTIONHANDLER_HH
28template <
class T,
unsigned Dim>
44 const std::pair<Vector_t, double>& boundingSphere) = 0;
45 virtual const std::string
getType()
const = 0;
61 bool includeFluctuations =
true)
const = 0;
76 allParticleInMat_m(false),
virtual bool checkHit(const Vector_t &R)=0
virtual size_t getParticlesInMat()=0
virtual unsigned getRediffused()=0
virtual void print(Inform &os)=0
virtual unsigned int getNumEntered()=0
std::unique_ptr< InsideTester > hitTester_m
ParticleMatterInteractionHandler(std::string name, ElementBase *elref)
ElementBase * element_ref_m
virtual bool computeEnergyLoss(PartBunchBase< double, 3 > *bunch, Vector_t &P, const double deltat, bool includeFluctuations=true) const =0
bool getFlagAllParticlesIn() const
void updateElement(ElementBase *newref)
virtual std::string getName()=0
bool allParticleInMat_m
if all particles are in matter stay inside the particle matter interaction
virtual bool stillActive()=0
ElementBase * getElement()
virtual const std::string getType() const =0
virtual void apply(PartBunchBase< double, 3 > *bunch, const std::pair< Vector_t, double > &boundingSphere)=0
virtual ~ParticleMatterInteractionHandler()
void setFlagAllParticlesIn(bool p)
virtual double getTime()=0