1 ////////////////////////////////////////////////////////////////////////////////
2 /// AliFemtoParticleCut - the pure virtual base class for the particle cut ///
3 /// All particle cuts must inherit from this one ///
4 ////////////////////////////////////////////////////////////////////////////////
6 #ifndef AliFemtoParticleCut_hh
7 #define AliFemtoParticleCut_hh
9 #include "Infrastructure/AliFemtoTypes.h"
10 #include "Infrastructure/AliFemtoCutMonitorHandler.h"
12 class AliFemtoBaseAnalysis;
14 class AliFemtoParticleCut : public AliFemtoCutMonitorHandler {
16 friend class AliFemtoBaseAnalysis;
19 AliFemtoParticleCut(){/* no-op */}; // default constructor. - Users should write their own
20 AliFemtoParticleCut(const AliFemtoParticleCut&); // copy constructor
21 virtual ~AliFemtoParticleCut(){/* no-op */}; // destructor
23 virtual AliFemtoString Report() =0; // user-written method to return string describing cuts
25 double Mass(){return fMass;}; // mass of the particle being selected
26 virtual void SetMass(const double& mass) {fMass = mass;};
28 virtual void EventBegin(const AliFemtoEvent* aEvent) { /* no-op */ }
29 virtual void EventEnd(const AliFemtoEvent* aEvent) { /* no-op */ }
30 virtual AliFemtoParticleCut* Clone() { return 0;}
32 virtual AliFemtoParticleType Type()=0;
34 // the following allows "back-pointing" from the CorrFctn to the "parent" Analysis
35 AliFemtoBaseAnalysis* HbtAnalysis(){return fyAnalysis;};
36 void SetAnalysis(AliFemtoBaseAnalysis*);
40 AliFemtoBaseAnalysis* fyAnalysis; // Link to the base analysis class
43 ClassDef(AliFemtoParticleCut, 0)
47 inline AliFemtoParticleCut::AliFemtoParticleCut(const AliFemtoParticleCut& c) : AliFemtoCutMonitorHandler() {
48 fMass = c.fMass; fyAnalysis = 0;
50 cout << " AliFemtoParticleCut::AliFemtoParticleCut(const AliFemtoParticleCut& c) - fMass: " << fMass << endl;
53 inline void AliFemtoParticleCut::SetAnalysis(AliFemtoBaseAnalysis* analysis) { fyAnalysis = analysis; }