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)
21 #include "AliESDtrack.h"
22 #include "AliESDtrackCuts.h"
24 #include "AliRsnDaughter.h"
25 #include "AliRsnCutESDPrimary.h"
27 ClassImp(AliRsnCutESDPrimary)
29 //_________________________________________________________________________________________________
30 AliRsnCutESDPrimary::AliRsnCutESDPrimary() :
35 // Default constructor.
39 //_________________________________________________________________________________________________
40 AliRsnCutESDPrimary::AliRsnCutESDPrimary
42 AliRsnCut(name, 0.0, 0.0),
50 //_________________________________________________________________________________________________
51 Bool_t AliRsnCutESDPrimary::IsSelected(ETarget tgt, AliRsnDaughter *track)
58 if (tgt != AliRsnCut::kParticle)
60 AliError(Form("Wrong target. Skipping cut", GetName()));
64 // retrieve the TPC signal
65 AliVParticle *vpart = track->GetRef();
66 AliESDtrack *esdTrack = dynamic_cast<AliESDtrack*>(vpart);
68 AliError("ESD information unavailable");
73 return fCuts.IsSelected(esdTrack);
76 //_________________________________________________________________________________________________
77 Bool_t AliRsnCutESDPrimary::IsSelected(ETarget /*tgt*/, AliRsnPairParticle* /*pair*/)
83 AliWarning("Cannot apply this cut to pairs");
87 //_________________________________________________________________________________________________
88 Bool_t AliRsnCutESDPrimary::IsSelected(ETarget /*tgt*/, AliRsnEvent* /*event*/)
94 AliWarning("Cannot apply this cut to events");
98 //_________________________________________________________________________________________________
99 Bool_t AliRsnCutESDPrimary::IsSelected(ETarget /*tgt*/, AliRsnEvent* /*ev1*/, AliRsnEvent* /*ev2*/)
105 AliWarning("Cannot apply this cut to event mixing");