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 AliFemtoAnalysis;
13 #include "AliFemtoString.h"
14 #include "AliFemtoEvent.h"
15 #include "AliFemtoPair.h"
16 #include "AliFemtoCutMonitorHandler.h"
18 #include <TObjString.h>
20 class AliFemtoPairCut : public AliFemtoCutMonitorHandler {
22 friend class AliFemtoAnalysis;
25 enum DataType {kESD=0, kAOD=1, kKine=2};
26 typedef enum DataType AliFemtoDataType;
28 AliFemtoPairCut(); // default constructor. - Users should write their own
29 AliFemtoPairCut(const AliFemtoPairCut& c); // copy constructor
30 virtual ~AliFemtoPairCut(){/* no-op */}; // destructor
31 AliFemtoPairCut& operator=(const AliFemtoPairCut &aCut);
33 virtual bool Pass(const AliFemtoPair* pair) =0; // true if passes, false if not
35 virtual AliFemtoString Report() =0; // user-written method to return string describing cuts
36 virtual TList *ListSettings() =0;
37 virtual void EventBegin(const AliFemtoEvent* aEvent);
38 virtual void EventEnd(const AliFemtoEvent* aEvent);
39 virtual AliFemtoPairCut* Clone() { return 0;}
41 // the following allows "back-pointing" from the CorrFctn to the "parent" Analysis
42 AliFemtoAnalysis* HbtAnalysis(){return fyAnalysis;};
43 void SetAnalysis(AliFemtoAnalysis* aAnalysis); // Set Back pointer to Analysis
46 AliFemtoAnalysis* fyAnalysis; // Link to the base analysis class
49 ClassDef(AliFemtoPairCut, 0)
54 inline AliFemtoPairCut::AliFemtoPairCut(const AliFemtoPairCut& /* c */) : AliFemtoCutMonitorHandler(), fyAnalysis(0) { }
55 inline void AliFemtoPairCut::SetAnalysis(AliFemtoAnalysis* analysis) { fyAnalysis = analysis; }
56 inline AliFemtoPairCut::AliFemtoPairCut(): AliFemtoCutMonitorHandler(), fyAnalysis(0) {} // default constructor. - Users should write their own
57 inline AliFemtoPairCut& AliFemtoPairCut::operator=(const AliFemtoPairCut &aCut) { if (this == &aCut) return *this; fyAnalysis = aCut.fyAnalysis; return *this; }
59 inline void AliFemtoPairCut::EventBegin(const AliFemtoEvent* /* aEvent */ )
61 inline void AliFemtoPairCut::EventEnd(const AliFemtoEvent* /* aEvent */ )