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() :
30 // Default constructor.
33 SetTargetType(AliRsnTarget::kDaughter);
36 //_________________________________________________________________________________________________
37 AliRsnCutESDPrimary::AliRsnCutESDPrimary
39 AliRsnCut(name, AliRsnCut::kDaughter, 0.0, 0.0),
47 //_________________________________________________________________________________________________
48 Bool_t AliRsnCutESDPrimary::IsSelected(TObject *object)
55 if (!TargetOK(object)) return kFALSE;
57 // retrieve the TPC signal
58 AliRsnDaughter *daughter = dynamic_cast<AliRsnDaughter*>(object);
59 AliESDtrack *esdTrack = daughter->GetRefESDtrack();
62 AliError("ESD information unavailable");
67 return fCuts.IsSelected(esdTrack);