MpdFemtoMultiTrackCut.h 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. /**
  2. * \class MpdFemtoMultiTrackCut
  3. * \brief Allows to add several cuts to the list
  4. *
  5. * The MpdFemtoMultiTrackCut class allows to add many track cuts
  6. * into the list
  7. *
  8. * \author Grigory Nigmatkulov (NRNU MEPhI)
  9. * \date May 18, 2019
  10. * \email nigmatkulov@gmail.com
  11. */
  12. #ifndef MpdFemtoMultiTrackCut_h
  13. #define MpdFemtoMultiTrackCut_h
  14. // MpdFemtoMaker headers
  15. // Base
  16. #include "MpdFemtoBaseTrackCut.h"
  17. // Infrastructure
  18. #include "MpdFemtoTypes.h"
  19. #include "MpdFemtoTrack.h"
  20. #include "MpdFemtoV0.h"
  21. #include "MpdFemtoTrackCutCollection.h"
  22. //_________________
  23. class MpdFemtoMultiTrackCut : public MpdFemtoBaseTrackCut {
  24. public:
  25. /// Default constructor
  26. MpdFemtoMultiTrackCut();
  27. /// Copy constructor
  28. MpdFemtoMultiTrackCut(const MpdFemtoMultiTrackCut& copy);
  29. /// Assignment operator
  30. MpdFemtoMultiTrackCut& operator=(const MpdFemtoMultiTrackCut& copy);
  31. /// Destructor
  32. virtual ~MpdFemtoMultiTrackCut();
  33. /// User-written method to return string describing cuts
  34. virtual MpdFemtoString report();
  35. /// True if passes, false if not
  36. virtual bool pass(const MpdFemtoTrack* track);
  37. /// Add track cut
  38. virtual void addTrackCut(MpdFemtoBaseTrackCut*);
  39. /// Start event
  40. virtual void eventBegin(const MpdFemtoEvent*);
  41. /// Finish event
  42. virtual void eventEnd(const MpdFemtoEvent*);
  43. /// Return track type
  44. MpdFemtoParticleType type() {
  45. return hbtTrack;
  46. }
  47. /// Clone cut
  48. virtual MpdFemtoMultiTrackCut* clone();
  49. private:
  50. /// Pointer to a track cut collection
  51. MpdFemtoTrackCutCollection* mCutCollection;
  52. ClassDef(MpdFemtoMultiTrackCut, 0)
  53. };
  54. #endif // #define MpdFemtoMultiTrackCut_h