--- /dev/null
+/**************************************************************************
+ * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
+ * *
+ * Author: The ALICE Off-line Project. *
+ * Contributors are mentioned in the code where appropriate. *
+ * *
+ * Permission to use, copy, modify and distribute this software and its *
+ * documentation strictly for non-commercial purposes is hereby granted *
+ * without fee, provided that the above copyright notice appears in all *
+ * copies and that both the copyright notice and this permission notice *
+ * appear in the supporting documentation. The authors make no claims *
+ * about the suitability of this software for any purpose. It is *
+ * provided "as is" without express or implied warranty. *
+ **************************************************************************/
+
+//-------------------------------------------------------------------------
+// Class AliRsnDaughterCut
+//
+// Implementation of track cuts for analysis.
+//
+// author: A. Pulvirenti (email: alberto.pulvirenti@ct.infn.it)
+//-------------------------------------------------------------------------
+
+#include <Riostream.h>
+
+#include "AliRsnDaughter.h"
+#include "AliRsnDaughterCut.h"
+
+ClassImp(AliRsnDaughterCut)
+
+//--------------------------------------------------------------------------------------------------------
+Bool_t AliRsnDaughterCut::Pass(AliRsnDaughter* /*track1*/, AliRsnDaughter* /*track2*/)
+//
+// Virtual method for cut passing.
+// This function must be overridden and return kTRUE when cut is passed.
+//
+{
+ TObject::Error("Pass", "This method must be overridden!");
+ return kFALSE;
+}
+//--------------------------------------------------------------------------------------------------------
+Bool_t AliRsnDaughterCutPtSingle::Pass(AliRsnDaughter *track1, AliRsnDaughter* /*track2*/)
+//
+// Cut on single track momentum.
+//
+{
+ if (!track1) return kFALSE;
+ if (track1->GetPt() < fPtMin) return kFALSE;
+ if (track1->GetPt() > fPtMax) return kFALSE;
+
+ return kTRUE;
+}
+//--------------------------------------------------------------------------------------------------------
+Bool_t AliRsnDaughterCutPtPair::Pass(AliRsnDaughter *track1, AliRsnDaughter *track2)
+//
+// Cut on single track momentum.
+//
+{
+ if (!track1 || !track2) return kFALSE;
+
+ AliRsnDaughter sum = (*track1) + (*track2);
+
+ if (sum.GetPt() < fPtMin) return kFALSE;
+ if (sum.GetPt() > fPtMax) return kFALSE;
+
+ return kTRUE;
+}
--- /dev/null
+/**************************************************************************
+ * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
+ * See cxx source for full Copyright notice *
+ **************************************************************************/
+
+//-------------------------------------------------------------------------
+// Class AliRsnDaughterCut
+//
+// Implementation of various cut which can be applied
+// during resonance analysis.
+// First is the virtual base class.
+//
+// author: A. Pulvirenti (email: alberto.pulvirenti@ct.infn.it)
+//-------------------------------------------------------------------------
+
+#ifndef ALIRSNDAUGHTERCUT_H
+#define ALIRSNDAUGHTERCUT_H
+
+class AliRsnDaughter;
+
+class AliRsnDaughterCut : public TObject
+{
+public:
+ AliRsnDaughterCut() { }
+ virtual ~AliRsnDaughterCut() { }
+
+ Bool_t IsPairCut() {return fPairCut;}
+ virtual Bool_t Pass(AliRsnDaughter *track1, AliRsnDaughter *track2 = 0);
+
+protected:
+
+ Bool_t fPairCut;
+
+ ClassDef(AliRsnDaughterCut,1)
+};
+
+//-------------------------------------------------------------------------
+
+class AliRsnDaughterCutPtSingle : public AliRsnDaughterCut
+{
+public:
+ AliRsnDaughterCutPtSingle(Double_t min, Double_t max) {fPairCut=kFALSE;fPtMin=min;fPtMax=max;}
+ virtual ~AliRsnDaughterCutPtSingle() { }
+
+ virtual Bool_t Pass(AliRsnDaughter *track1, AliRsnDaughter *track2 = 0);
+
+protected:
+
+ Double_t fPtMin; // smallest allowed Pt
+ Double_t fPtMax; // largest allowed Pt
+
+ ClassDef(AliRsnDaughterCutPtSingle,1)
+};
+
+//-------------------------------------------------------------------------
+
+class AliRsnDaughterCutPtPair : public AliRsnDaughterCut
+{
+public:
+ AliRsnDaughterCutPtPair(Double_t min, Double_t max) {fPairCut=kTRUE;fPtMin=min;fPtMax=max;}
+ virtual ~AliRsnDaughterCutPtPair() { }
+
+ virtual Bool_t Pass(AliRsnDaughter *track1, AliRsnDaughter *track2);
+
+protected:
+
+ Double_t fPtMin; // smallest allowed Pt
+ Double_t fPtMax; // largest allowed Pt
+
+ ClassDef(AliRsnDaughterCutPtPair,1)
+};
+
+//-------------------------------------------------------------------------
+
+#endif