2 // Class AliRsnCutESDPrimary
4 // General implementation of a single cut strategy, which can be:
5 // - a value contained in a given interval [--> IsBetween() ]
6 // - a value equal to a given reference [--> MatchesValue()]
8 // In all cases, the reference value(s) is (are) given as data members
9 // and each kind of cut requires a given value type (Int, UInt, Double),
10 // but the cut check procedure is then automatized and chosen thanks to
11 // an enumeration of the implemented cut types.
12 // At the end, the user (or any other point which uses this object) has
13 // to use the method IsSelected() to check if this cut has been passed.
15 // authors: Martin Vala (martin.vala@cern.ch)
16 // Alberto Pulvirenti (alberto.pulvirenti@ct.infn.it)
19 #include "AliRsnDaughter.h"
20 #include "AliRsnCutESDPrimary.h"
22 ClassImp(AliRsnCutESDPrimary)
24 //_________________________________________________________________________________________________
25 AliRsnCutESDPrimary::AliRsnCutESDPrimary() :
26 AliRsnCut(AliRsnCut::kDaughter),
30 // Default constructor.
34 //_________________________________________________________________________________________________
35 AliRsnCutESDPrimary::AliRsnCutESDPrimary
37 AliRsnCut(name, AliRsnCut::kDaughter, 0.0, 0.0),
45 //_________________________________________________________________________________________________
46 Bool_t AliRsnCutESDPrimary::IsSelected(TObject *obj1, TObject* /*obj2*/)
53 AliRsnDaughter *daughter = dynamic_cast<AliRsnDaughter*>(obj1);
54 if (!daughter) return kFALSE;
56 // retrieve the TPC signal
57 AliESDtrack *esdTrack = daughter->GetRefESDtrack();
60 AliError("ESD information unavailable");
65 return fCuts.IsSelected(esdTrack);