remove option C for Clear for trigger array for the moment, causes malloc error
[u/mrichter/AliRoot.git] / PWG2 / RESONANCES / AliRsnCutBetheBloch.cxx
index f2e673de101be4e90975375b5734a3221bb43731..329426f2dab142c7c4a8429cc273e4aa85889418 100644 (file)
@@ -26,10 +26,10 @@ ClassImp(AliRsnCutBetheBloch)
 
 //_________________________________________________________________________________________________
 AliRsnCutBetheBloch::AliRsnCutBetheBloch() :
-    AliRsnCut(),
-    fCorrect(kTRUE),
-    fMIP(50.0),
-    fType(AliPID::kUnknown)
+  AliRsnCut("dummyBBCut", AliRsnTarget::kDaughter),
+  fCorrect(kTRUE),
+  fMIP(50.0),
+  fType(AliPID::kUnknown)
 {
 //
 // Default constructor.
@@ -41,10 +41,10 @@ AliRsnCutBetheBloch::AliRsnCutBetheBloch() :
 //_________________________________________________________________________________________________
 AliRsnCutBetheBloch::AliRsnCutBetheBloch
 (const char *name, Double_t fractionRange, AliPID::EParticleType type, Double_t mip, Bool_t correct) :
-    AliRsnCut(name, 0.0, fractionRange),
-    fCorrect(correct),
-    fMIP(mip),
-    fType(type)
+  AliRsnCut(name, AliRsnCut::kDaughter, 0.0, fractionRange),
+  fCorrect(correct),
+  fMIP(mip),
+  fType(type)
 {
 //
 // Main constructor.
@@ -75,7 +75,7 @@ Double_t AliRsnCutBetheBloch::BetheBloch(AliRsnDaughter * const trackRef)
   Double_t mass = pid.ParticleMass(fType);
 
   // get the track momentum at the inner wall of TPC: if absent cut is not passed
-  AliExternalTrackParam track(*trackRef->GetRefESD()->GetInnerParam());
+  AliExternalTrackParam track(*trackRef->GetRefESDtrack()->GetInnerParam());
 
   Double_t betaGamma = track.P() / mass;
   Double_t beta = betaGamma / TMath::Sqrt(1.0 + betaGamma * betaGamma);
@@ -102,37 +102,33 @@ Double_t AliRsnCutBetheBloch::RelDiff(AliRsnDaughter *track)
 // Relative difference between BB value and TPC signal
 //
 
-  if (!track->GetRefESD()) return -99999.9;
+  if (!track->GetRefESDtrack()) return -99999.9;
 
   // compute Bethe-Bloch with the given mass hypothesis
   Double_t bb = BetheBloch(track);
-  return TMath::Abs((track->GetRefESD()->GetTPCsignal() - bb) / bb);
+  return TMath::Abs((track->GetRefESDtrack()->GetTPCsignal() - bb) / bb);
 }
 
 //_________________________________________________________________________________________________
-Bool_t AliRsnCutBetheBloch::IsSelected(ETarget tgt, AliRsnDaughter *track)
+Bool_t AliRsnCutBetheBloch::IsSelected(TObject *object)
 {
 //
 // Cut checker.
 //
 
-  // coherence check
-  if (tgt != AliRsnCut::kParticle) {
-    AliError(Form("Wrong target. Skipping cut", GetName()));
-    return kTRUE;
-  }
-
-  // if the required PID of the track is not the same as the
-  // reference of the cut, the cut is automatically skipped
-  if (track->RequiredPID() != fType) return kTRUE;
+  // dynamic cast the object into AliRsnDaughter
+  if (!TargetOK(object)) return kFALSE;
 
   // retrieve the TPC signal
-  AliESDtrack *esd = track->GetRefESD();
+  AliRsnDaughter *track = fDaughter;
+  
+  // if track is meaningful, retrieve its ESD format
+  AliESDtrack    *esd   = track->GetRefESDtrack();
   if (!esd) {
     AliError("ESD information unavailable");
     return kTRUE;
   }
-  if (!track->GetRefESD()->GetInnerParam()) {
+  if (!track->GetRefESDtrack()->GetInnerParam()) {
     AliDebug(AliLog::kDebug+2, "Rejecting a track with no info at the TPC inner wall");
     return kFALSE;
   }
@@ -145,38 +141,5 @@ Bool_t AliRsnCutBetheBloch::IsSelected(ETarget tgt, AliRsnDaughter *track)
   fCutValueD = RelDiff(track);
 
   // then, this cut is checked inside the range
-  return OkRange();
-}
-
-//_________________________________________________________________________________________________
-Bool_t AliRsnCutBetheBloch::IsSelected(ETarget /*tgt*/, AliRsnPairParticle* /*pair*/)
-{
-//
-// Cut checker
-//
-
-  AliWarning("Cannot apply this cut to pairs");
-  return kTRUE;
-}
-
-//_________________________________________________________________________________________________
-Bool_t AliRsnCutBetheBloch::IsSelected(ETarget /*tgt*/, AliRsnEvent* /*event*/)
-{
-//
-// Cut checker
-//
-
-  AliWarning("Cannot apply this cut to events");
-  return kTRUE;
-}
-
-//_________________________________________________________________________________________________
-Bool_t AliRsnCutBetheBloch::IsSelected(ETarget /*tgt*/, AliRsnEvent* /*ev1*/, AliRsnEvent* /*ev2*/)
-{
-//
-// Cut checker
-//
-
-  AliWarning("Cannot apply this cut to event mixing");
-  return kTRUE;
+  return OkRangeD();
 }