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 "AliFemtoString.h"
14 #include "AliFemtoEvent.h"
15 #include "AliFemtoPair.h"
16 #include "AliFemtoCutMonitorHandler.h"
18 class AliFemtoPairCut : public AliFemtoCutMonitorHandler {
20 friend class AliFemtoBaseAnalysis;
24 AliFemtoPairCut(); // default constructor. - Users should write their own
25 AliFemtoPairCut(const AliFemtoPairCut& c); // copy constructor
26 virtual ~AliFemtoPairCut(){/* no-op */}; // destructor
27 AliFemtoPairCut& operator=(const AliFemtoPairCut &aCut);
29 virtual bool Pass(const AliFemtoPair* pair) =0; // true if passes, false if not
31 virtual AliFemtoString Report() =0; // user-written method to return string describing cuts
32 virtual void EventBegin(const AliFemtoEvent* aEvent) { /* no-op */ }
33 virtual void EventEnd(const AliFemtoEvent* aEvent) { /* no-op */ }
34 virtual AliFemtoPairCut* Clone() { return 0;}
36 // the following allows "back-pointing" from the CorrFctn to the "parent" Analysis
37 AliFemtoBaseAnalysis* HbtAnalysis(){return fyAnalysis;};
38 void SetAnalysis(AliFemtoBaseAnalysis* aAnalysis); // Set Back pointer to Analysis
41 AliFemtoBaseAnalysis* fyAnalysis; // Link to the base analysis class
44 ClassDef(AliFemtoPairCut, 0)
49 inline AliFemtoPairCut::AliFemtoPairCut(const AliFemtoPairCut& c) : AliFemtoCutMonitorHandler(), fyAnalysis(0) { }
50 inline void AliFemtoPairCut::SetAnalysis(AliFemtoBaseAnalysis* analysis) { fyAnalysis = analysis; }
51 inline AliFemtoPairCut::AliFemtoPairCut(): AliFemtoCutMonitorHandler(), fyAnalysis(0) {}; // default constructor. - Users should write their own
52 inline AliFemtoPairCut& AliFemtoPairCut::operator=(const AliFemtoPairCut &aCut) { if (this == &aCut) return *this; fyAnalysis = aCut.fyAnalysis; return *this; }