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(); // default constructor. - Users should write their own
20 AliFemtoParticleCut(const AliFemtoParticleCut&); // copy constructor
21 virtual ~AliFemtoParticleCut(){/* no-op */}; // destructor
22 AliFemtoParticleCut& operator=(const AliFemtoParticleCut& aCut);
24 virtual AliFemtoString Report() =0; // user-written method to return string describing cuts
26 double Mass(){return fMass;}; // mass of the particle being selected
27 virtual void SetMass(const double& mass) {fMass = mass;};
29 virtual void EventBegin(const AliFemtoEvent* aEvent) { /* no-op */ }
30 virtual void EventEnd(const AliFemtoEvent* aEvent) { /* no-op */ }
31 virtual AliFemtoParticleCut* Clone() { return 0;}
33 virtual AliFemtoParticleType Type()=0;
35 // the following allows "back-pointing" from the CorrFctn to the "parent" Analysis
36 AliFemtoBaseAnalysis* HbtAnalysis(){return fyAnalysis;};
37 void SetAnalysis(AliFemtoBaseAnalysis*);
40 AliFemtoBaseAnalysis* fyAnalysis; // Link to the base analysis class
44 ClassDef(AliFemtoParticleCut, 0)
48 inline AliFemtoParticleCut::AliFemtoParticleCut(): AliFemtoCutMonitorHandler(), fyAnalysis(0), fMass(0){}; // default constructor. - Users should write their own
49 inline AliFemtoParticleCut::AliFemtoParticleCut(const AliFemtoParticleCut& c): AliFemtoCutMonitorHandler(), fyAnalysis(0), fMass(0) {
50 fMass = c.fMass; fyAnalysis = 0;
52 cout << " AliFemtoParticleCut::AliFemtoParticleCut(const AliFemtoParticleCut& c) - fMass: " << fMass << endl;
55 inline void AliFemtoParticleCut::SetAnalysis(AliFemtoBaseAnalysis* analysis) { fyAnalysis = analysis; }
56 inline AliFemtoParticleCut& AliFemtoParticleCut::operator=(const AliFemtoParticleCut& aCut) { if (this == &aCut) return *this; fyAnalysis = aCut.fyAnalysis; fMass=aCut.fMass; return *this; }