MpdFemtoBaseKinkCut.h 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. /**
  2. * \class MpdFemtoBaseKinkCut
  3. * \brief Base class for kink cuts
  4. *
  5. * The the pure virtual base class for the kink cut. All kink cuts
  6. * must inherit from this one
  7. *
  8. * \author Grigory Nigmatkulov (NRNU MEPhI)
  9. * \date May 18, 2019
  10. * \email nigmatkulov@gmail.com
  11. */
  12. #ifndef MpdFemtoBaseKinkCut_h
  13. #define MpdFemtoBaseKinkCut_h
  14. // MpdFemtoMaker headers
  15. // Base
  16. #include "MpdFemtoBaseParticleCut.h"
  17. // Infrastructure
  18. #include "MpdFemtoTypes.h"
  19. #include "MpdFemtoKink.h"
  20. //_________________
  21. class MpdFemtoBaseKinkCut : public MpdFemtoBaseParticleCut {
  22. public:
  23. /// Default constructor
  24. MpdFemtoBaseKinkCut() {
  25. /* empty */
  26. }
  27. /// Copy constructor
  28. MpdFemtoBaseKinkCut(const MpdFemtoBaseKinkCut& copy);
  29. /// Assignment operator
  30. MpdFemtoBaseKinkCut& operator=(const MpdFemtoBaseKinkCut& copy);
  31. /// Default destructor
  32. virtual ~MpdFemtoBaseKinkCut() {
  33. /* empty */
  34. }
  35. /// Returns true is cut has been passed, and false if not
  36. virtual bool pass(const MpdFemtoKink*) = 0;
  37. /// Return kink type
  38. virtual MpdFemtoParticleType type() {
  39. return hbtKink;
  40. }
  41. /// Clone kink cut
  42. virtual MpdFemtoBaseKinkCut* clone() {
  43. return nullptr;
  44. }
  45. ClassDef(MpdFemtoBaseKinkCut, 0)
  46. };
  47. //_________________
  48. inline MpdFemtoBaseKinkCut::MpdFemtoBaseKinkCut(const MpdFemtoBaseKinkCut& c) : MpdFemtoBaseParticleCut(c) {
  49. /* empty */
  50. }
  51. //_________________
  52. inline MpdFemtoBaseKinkCut& MpdFemtoBaseKinkCut::operator=(const MpdFemtoBaseKinkCut& c) {
  53. if (this != &c) {
  54. MpdFemtoBaseParticleCut::operator=(c);
  55. }
  56. return *this;
  57. }
  58. #endif // #define MpdFemtoKinkCut_h