MpdFemtoBaseV0Cut.h 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. /**
  2. * \class MpdFemtoBaseV0Cut
  3. * \brief Base class for V0 cuts
  4. *
  5. * The pure virtual base class for the V0 cut. All V0 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 MpdFemtoBaseV0Cut_h
  13. #define MpdFemtoBaseV0Cut_h
  14. // MpdFemtoMaker headers
  15. // Infrastructure
  16. #include "MpdFemtoTypes.h"
  17. #include "MpdFemtoV0.h"
  18. // Base
  19. #include "MpdFemtoBaseParticleCut.h"
  20. //_________________
  21. class MpdFemtoBaseV0Cut : public MpdFemtoBaseParticleCut {
  22. public:
  23. /// Default constructor
  24. MpdFemtoBaseV0Cut() {
  25. /* empty */
  26. }
  27. /// Copy constructor
  28. MpdFemtoBaseV0Cut(const MpdFemtoBaseV0Cut& copy);
  29. /// Assignment operator
  30. MpdFemtoBaseV0Cut& operator=(const MpdFemtoBaseV0Cut& c);
  31. /// Default destructor
  32. virtual ~MpdFemtoBaseV0Cut() {
  33. /* empty */
  34. }
  35. /// Returns true if cut has been passed and false if not
  36. virtual bool pass(const MpdFemtoV0*) = 0;
  37. /// Return V0 type
  38. virtual MpdFemtoParticleType type() {
  39. return hbtV0;
  40. }
  41. /// Clone V0 cut
  42. virtual MpdFemtoBaseV0Cut* clone() {
  43. return nullptr;
  44. }
  45. ClassDef(MpdFemtoBaseV0Cut, 0)
  46. };
  47. //_________________
  48. inline MpdFemtoBaseV0Cut::MpdFemtoBaseV0Cut(const MpdFemtoBaseV0Cut& c) : MpdFemtoBaseParticleCut(c) {
  49. /* empty */
  50. }
  51. //_________________
  52. inline MpdFemtoBaseV0Cut& MpdFemtoBaseV0Cut::operator=(const MpdFemtoBaseV0Cut& c) {
  53. if (this != &c) {
  54. MpdFemtoBaseParticleCut::operator=(c);
  55. }
  56. return *this;
  57. }
  58. #endif // #define MpdFemtoV0Cut_h