#include "AliEventCut.h"
-//________________________________
+
///////////////////////////////////////////////////////////
//
-// class AliRunAnalysis
-//
-//
-//
+// class AliEventCut
//
+// Event cut. It has list of base event cuts.
+// Each of base event cut checks only one property.
+// Logical base cuts also exists that point to other base cuts.
+// Using them one can build complicated cut with binary tree structure
+// Author: Piotr.Skowronski@cern.ch
///////////////////////////////////////////////////////////
-#include <TObjArray.h>
-//#include <TIter.h>
-
#include "AliEventBaseCut.h"
ClassImp(AliEventCut)
-
AliEventCut::AliEventCut():
fBaseCuts(10)
{
/*********************************************************/
-Bool_t AliEventCut::Pass(AliAOD* aod) const
+Bool_t AliEventCut::Rejected(AliAOD* aod) const
{
//returns kTRUE if rejected
if (aod == 0x0)
AliEventBaseCut* becut;
while (( becut = (AliEventBaseCut*)iter() ))
{
- if (becut->Pass(aod)) return kTRUE;
+ if (becut->Rejected(aod)) return kTRUE;
}
return kFALSE;
}
return;
}
- if (ebcut->GetProperty() != kNone)
+ if (ebcut->GetProperty() != AliEventBaseCut::kNone)
{
if (FindCut(ebcut->GetProperty()))
{
}
/*********************************************************/
-AliEventBaseCut* AliEventCut::FindCut(EEventCutProperty prop)
+AliEventBaseCut* AliEventCut::FindCut(AliEventBaseCut::EEventCutProperty prop)
{
//Finds and returns pointer to the cut with given property
Int_t n = fBaseCuts.GetEntries();
void AliEventCut::SetNChargedRange(Int_t min,Int_t max,Double_t etamin,Double_t etamax)
{
//Sets renge of number of charged particles
- AliNChargedCut* cut = dynamic_cast<AliNChargedCut*>(FindCut(kNChargedCut));
+ AliNChargedCut* cut = dynamic_cast<AliNChargedCut*>(FindCut(AliEventBaseCut::kNChargedCut));
if(cut)
{
cut->SetRange(min,max);
}
else fBaseCuts.Add(new AliNChargedCut(min,max,etamin,etamax));
}
+/*********************************************************/
+void AliEventCut::SetVertexXRange(Double_t min, Double_t max)
+{
+ //Sets range of z coordinate of a primary vertex
+ AliEventBaseCut* cut = FindCut(AliEventBaseCut::kPrimVertexXCut);
+ if (cut) cut->SetRange(min,max);
+ else fBaseCuts.Add(new AliPrimVertexXCut(min,max));
+}
+/*********************************************************/
+
+void AliEventCut::SetVertexYRange(Double_t min, Double_t max)
+{
+ //Sets range of z coordinate of a primary vertex
+ AliEventBaseCut* cut = FindCut(AliEventBaseCut::kPrimVertexYCut);
+ if (cut) cut->SetRange(min,max);
+ else fBaseCuts.Add(new AliPrimVertexYCut(min,max));
+}
+/*********************************************************/
+
+void AliEventCut::SetVertexZRange(Double_t min, Double_t max)
+{
+ //Sets range of z coordinate of a primary vertex
+ AliEventBaseCut* cut = FindCut(AliEventBaseCut::kPrimVertexZCut);
+ if (cut) cut->SetRange(min,max);
+ else fBaseCuts.Add(new AliPrimVertexZCut(min,max));
+}
/*********************************************************/
/*********************************************************/
/*********************************************************/