]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/FEMTOSCOPY/AliFemto/Base/AliFemtoPairCut.h
25ba8ba8461d91bc432c9f76aba81b1e2f717c21
[u/mrichter/AliRoot.git] / PWG2 / FEMTOSCOPY / AliFemto / Base / AliFemtoPairCut.h
1 ////////////////////////////////////////////////////////////////////////////////
2 /// AliFemtoPairCut - the pure virtual base class for the pair cut           ///
3 /// All pair cuts must inherit from this one                                 ///
4 ////////////////////////////////////////////////////////////////////////////////
5
6 #ifndef AliFemtoPairCut_hh
7 #define AliFemtoPairCut_hh
8
9 #include <string>
10
11 class AliFemtoBaseAnalysis;
12
13 #include "Infrastructure/AliFemtoString.h"
14 #include "Infrastructure/AliFemtoEvent.h"
15 #include "Infrastructure/AliFemtoPair.h"
16 #include "Infrastructure/AliFemtoCutMonitorHandler.h"
17
18 class AliFemtoPairCut : public AliFemtoCutMonitorHandler {
19
20   friend class AliFemtoBaseAnalysis;
21
22 public:
23
24   AliFemtoPairCut(){/* no-op */};   // default constructor. - Users should write their own
25   AliFemtoPairCut(const AliFemtoPairCut& c); // copy constructor
26   virtual ~AliFemtoPairCut(){/* no-op */};  // destructor
27
28   virtual bool Pass(const AliFemtoPair* pair) =0;  // true if passes, false if not
29
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;}
34
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
38
39 protected:
40   AliFemtoBaseAnalysis* fyAnalysis; // Link to the base analysis class
41
42 #ifdef __ROOT__
43   ClassDef(AliFemtoPairCut, 0)
44 #endif
45 };
46
47
48 inline AliFemtoPairCut::AliFemtoPairCut(const AliFemtoPairCut& c) : AliFemtoCutMonitorHandler() { fyAnalysis = 0; }
49 inline void AliFemtoPairCut::SetAnalysis(AliFemtoBaseAnalysis* analysis) { fyAnalysis = analysis; }
50 #endif