#include <TMath.h>
#include <TLorentzVector.h>
+#include "AliStack.h"
+#include "AliMCEvent.h"
#include "AliRsnDaughter.h"
#include "AliRsnMother.h"
#include "AliRsnEvent.h"
case kPtLeading:
case kEta:
case kY:
+ case kDipAngle:
case kThetaDeg:
if (fVarType != kDouble)
{
case kPtLeading:
case kEta:
case kY:
+ case kDipAngle:
case kThetaDeg:
break;
// other cuts are not based on a value, so no problem
case kPtLeading:
case kEta:
case kY:
+ case kDipAngle:
case kThetaDeg:
return kDouble;
// other cuts are not based on a value, so no problem
case kCharge:
fCutValueI = (Int_t)ref->Charge();
return OkValue();
+ case kPhysPrimary:
+ if (!fEvent->GetRefMC()) return kFALSE;
+ else
+ {
+ return fEvent->GetRefMCESD()->Stack()->IsPhysicalPrimary(TMath::Abs(((AliVTrack*)ref)->GetLabel()));
+ }
default:
AliWarning(Form("Value %d is not included in available cuts for DAUGHTER. Cut skipped.", fType));
return kTRUE;
case kY:
fCutValueD = ref.Rapidity();
return OkRange();
+ case kDipAngle:
+ fCutValueD = mother->GetDaughter(0)->Prec().Angle(mother->GetDaughter(1)->Prec().Vect());
+ fCutValueD = TMath::Abs(TMath::ACos(fCutValueD));
+ return OkRangeD();
case kSameLabel:
return mother->IsLabelEqual();
default:
AliWarning(Form("Value %d is not included in available cuts for EVENT. Cut skipped.", fType));
return kTRUE;
}
-}
\ No newline at end of file
+}