1 ////////////////////////////////////////////////////////////////////////////////
2 /// AliFemtoPairCut - the pure virtual base class for the pair cut ///
3 /// All pair cuts must inherit from this one ///
4 ////////////////////////////////////////////////////////////////////////////////
6 #ifndef AliFemtoPairCut_hh
7 #define AliFemtoPairCut_hh
11 class AliFemtoBaseAnalysis;
13 #include "Infrastructure/AliFemtoString.h"
14 #include "Infrastructure/AliFemtoEvent.h"
15 #include "Infrastructure/AliFemtoPair.h"
16 #include "Infrastructure/AliFemtoCutMonitorHandler.h"
18 class AliFemtoPairCut : public AliFemtoCutMonitorHandler {
20 friend class AliFemtoBaseAnalysis;
24 AliFemtoPairCut(){/* no-op */}; // default constructor. - Users should write their own
25 AliFemtoPairCut(const AliFemtoPairCut& c); // copy constructor
26 virtual ~AliFemtoPairCut(){/* no-op */}; // destructor
28 virtual bool Pass(const AliFemtoPair* pair) =0; // true if passes, false if not
30 virtual AliFemtoString Report() =0; // user-written method to return string describing cuts
31 virtual void EventBegin(const AliFemtoEvent* aEvent) { /* no-op */ }
32 virtual void EventEnd(const AliFemtoEvent* aEvent) { /* no-op */ }
33 virtual AliFemtoPairCut* Clone() { return 0;}
35 // the following allows "back-pointing" from the CorrFctn to the "parent" Analysis
36 AliFemtoBaseAnalysis* HbtAnalysis(){return fyAnalysis;};
37 void SetAnalysis(AliFemtoBaseAnalysis* aAnalysis); // Set Back pointer to Analysis
40 AliFemtoBaseAnalysis* fyAnalysis; // Link to the base analysis class
43 ClassDef(AliFemtoPairCut, 0)
48 inline AliFemtoPairCut::AliFemtoPairCut(const AliFemtoPairCut& c) : AliFemtoCutMonitorHandler() { fyAnalysis = 0; }
49 inline void AliFemtoPairCut::SetAnalysis(AliFemtoBaseAnalysis* analysis) { fyAnalysis = analysis; }