MpdFemtoBaseXiCut.h 1.5 KB

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