#ifndef ALIFILTEREDTREEEVENTCUTS_H
#define ALIFILTEREDTREEEVENTCUTS_H
#include "AliAnalysisCuts.h"
class AliESDEvent;
class AliESDVertex;
class AliMCEvent;
class AliHeader;
class AliGenEventHeader;
class AliStack;
class AliFilteredTreeEventCuts : public AliAnalysisCuts
{
public:
AliFilteredTreeEventCuts(const Char_t* name ="AliFilteredTreeEventCuts", const Char_t *title ="");
virtual ~AliFilteredTreeEventCuts();
enum AnalysisMode { kInvalid = -1, kSPD = 0x1, kTPC = 0x2, kTPCITS = 0x4, kFieldOn = 0x8, kSPDOnlyL0 = 0x10, kTPCSPD = 0x20};
enum MCProcessType { kInvalidProcess = -1, kND = 0x1, kDD = 0x2, kSD = 0x4, kOnePart = 0x8 };
enum DiffTreatment { kMCFlags = 0, kUA5Cuts = 1, kE710Cuts, kALICEHadronLevel };
void SetTriggerRequired(Bool_t bFlag=kTRUE) {fTriggerRequired=bFlag;}
void SetRecVertexRequired(Bool_t bFlag=kTRUE) {fRecVertexRequired=bFlag;}
void SetEventProcessType(MCProcessType type=kInvalidProcess) {fEventProcessType=type;}
void SetNContributorsRange(Float_t min=0.,Float_t max=1e99) {fMinNContributors=min; fMaxNContributors=max;}
void SetMaxR(Float_t max=1e99) {fMaxR=max;}
void SetZvRange(Float_t min=-1e99, Float_t max=1e99) {fMinZv=min; fMaxZv=max;}
void SetMeanXYZv(Float_t xv=0.0, Float_t yv=0.0, Float_t zv=0.0) {
fMeanXv = xv; fMeanYv = yv; fMeanZv = zv;
}
void SetSigmaMeanXYZv(Float_t sxv=1.0, Float_t syv=1.0, Float_t szv=10.0) {
fSigmaMeanXv = sxv; fSigmaMeanYv = syv; fSigmaMeanZv = szv;
}
void SetRedoTPCVertex(Bool_t redo = kTRUE) {fRedoTPCVertex = redo;}
void SetUseBeamSpotConstraint(Bool_t useConstr = kTRUE) {fUseBeamSpotConstraint = useConstr;}
void SetEventSelectedRequired(Bool_t evtSel = kTRUE) {fEventSelectedRequired = evtSel;}
Bool_t IsEventSelectedRequired() const {return fEventSelectedRequired;}
Bool_t IsTriggerRequired() const {return fTriggerRequired;}
Bool_t IsRecVertexRequired() const {return fRecVertexRequired;}
Int_t GetEventProcessType() const {return fEventProcessType;}
Float_t GetMinNContributors() const {return fMinNContributors;}
Float_t GetMaxNContributors() const {return fMaxNContributors;}
Float_t GetMaxR() const {return fMaxR;}
Float_t GetMinZv() const {return fMinZv;}
Float_t GetMaxZv() const {return fMaxZv;}
Float_t GetMeanXv() const {return fMeanXv;}
Float_t GetMeanYv() const {return fMeanYv;}
Float_t GetMeanZv() const {return fMeanZv;}
Float_t GetSigmaMeanXv() const {return fSigmaMeanXv;}
Float_t GetSigmaMeanYv() const {return fSigmaMeanYv;}
Float_t GetSigmaMeanZv() const {return fSigmaMeanZv;}
Bool_t IsRedoTPCVertex() const {return fRedoTPCVertex;}
Bool_t IsUseBeamSpotConstraint() const {return fUseBeamSpotConstraint;}
void Init();
Bool_t IsSelected(TObject *) {return kTRUE;}
Bool_t IsSelected(TList *) {return kTRUE;}
Bool_t AcceptEvent(AliESDEvent *event=0, AliMCEvent *mcEvent=0, const AliESDVertex *vtx=0);
Bool_t AcceptMCEvent(AliMCEvent *mcEvent=0);
virtual Long64_t Merge(TCollection* list);
static MCProcessType GetEventProcessType(AliESDEvent* esd, AliHeader* header, AliStack* stack, DiffTreatment diffTreatment);
static MCProcessType GetEventProcessType(AliHeader* aHeader, Bool_t adebug = kFALSE);
static MCProcessType GetPythiaEventProcessType(AliGenEventHeader* aHeader, Bool_t adebug = kFALSE);
static MCProcessType GetDPMjetEventProcessType(AliGenEventHeader* aHeader, Bool_t adebug = kFALSE);
static Bool_t IsHadronLevelSingleDiffractive(AliStack* stack, Float_t cms, Float_t xiMin, Float_t xiMax);
static Double_t Rapidity(Double_t pt, Double_t pz, Double_t m);
protected:
static Int_t fgLastProcessType;
private:
Bool_t fTriggerRequired;
Bool_t fRecVertexRequired;
Int_t fEventProcessType;
Float_t fMinNContributors;
Float_t fMaxNContributors;
Float_t fMaxR;
Float_t fMinZv;
Float_t fMaxZv;
Float_t fMeanXv;
Float_t fMeanYv;
Float_t fMeanZv;
Float_t fSigmaMeanXv;
Float_t fSigmaMeanYv;
Float_t fSigmaMeanZv;
Bool_t fRedoTPCVertex;
Bool_t fUseBeamSpotConstraint;
Bool_t fEventSelectedRequired;
AliFilteredTreeEventCuts(const AliFilteredTreeEventCuts&);
AliFilteredTreeEventCuts& operator=(const AliFilteredTreeEventCuts&);
ClassDef(AliFilteredTreeEventCuts, 1)
};
#endif // ALIFILTEREDTREEEVENTCUTS_H
AliFilteredTreeEventCuts.h:1 AliFilteredTreeEventCuts.h:2 AliFilteredTreeEventCuts.h:3 AliFilteredTreeEventCuts.h:4 AliFilteredTreeEventCuts.h:5 AliFilteredTreeEventCuts.h:6 AliFilteredTreeEventCuts.h:7 AliFilteredTreeEventCuts.h:8 AliFilteredTreeEventCuts.h:9 AliFilteredTreeEventCuts.h:10 AliFilteredTreeEventCuts.h:11 AliFilteredTreeEventCuts.h:12 AliFilteredTreeEventCuts.h:13 AliFilteredTreeEventCuts.h:14 AliFilteredTreeEventCuts.h:15 AliFilteredTreeEventCuts.h:16 AliFilteredTreeEventCuts.h:17 AliFilteredTreeEventCuts.h:18 AliFilteredTreeEventCuts.h:19 AliFilteredTreeEventCuts.h:20 AliFilteredTreeEventCuts.h:21 AliFilteredTreeEventCuts.h:22 AliFilteredTreeEventCuts.h:23 AliFilteredTreeEventCuts.h:24 AliFilteredTreeEventCuts.h:25 AliFilteredTreeEventCuts.h:26 AliFilteredTreeEventCuts.h:27 AliFilteredTreeEventCuts.h:28 AliFilteredTreeEventCuts.h:29 AliFilteredTreeEventCuts.h:30 AliFilteredTreeEventCuts.h:31 AliFilteredTreeEventCuts.h:32 AliFilteredTreeEventCuts.h:33 AliFilteredTreeEventCuts.h:34 AliFilteredTreeEventCuts.h:35 AliFilteredTreeEventCuts.h:36 AliFilteredTreeEventCuts.h:37 AliFilteredTreeEventCuts.h:38 AliFilteredTreeEventCuts.h:39 AliFilteredTreeEventCuts.h:40 AliFilteredTreeEventCuts.h:41 AliFilteredTreeEventCuts.h:42 AliFilteredTreeEventCuts.h:43 AliFilteredTreeEventCuts.h:44 AliFilteredTreeEventCuts.h:45 AliFilteredTreeEventCuts.h:46 AliFilteredTreeEventCuts.h:47 AliFilteredTreeEventCuts.h:48 AliFilteredTreeEventCuts.h:49 AliFilteredTreeEventCuts.h:50 AliFilteredTreeEventCuts.h:51 AliFilteredTreeEventCuts.h:52 AliFilteredTreeEventCuts.h:53 AliFilteredTreeEventCuts.h:54 AliFilteredTreeEventCuts.h:55 AliFilteredTreeEventCuts.h:56 AliFilteredTreeEventCuts.h:57 AliFilteredTreeEventCuts.h:58 AliFilteredTreeEventCuts.h:59 AliFilteredTreeEventCuts.h:60 AliFilteredTreeEventCuts.h:61 AliFilteredTreeEventCuts.h:62 AliFilteredTreeEventCuts.h:63 AliFilteredTreeEventCuts.h:64 AliFilteredTreeEventCuts.h:65 AliFilteredTreeEventCuts.h:66 AliFilteredTreeEventCuts.h:67 AliFilteredTreeEventCuts.h:68 AliFilteredTreeEventCuts.h:69 AliFilteredTreeEventCuts.h:70 AliFilteredTreeEventCuts.h:71 AliFilteredTreeEventCuts.h:72 AliFilteredTreeEventCuts.h:73 AliFilteredTreeEventCuts.h:74 AliFilteredTreeEventCuts.h:75 AliFilteredTreeEventCuts.h:76 AliFilteredTreeEventCuts.h:77 AliFilteredTreeEventCuts.h:78 AliFilteredTreeEventCuts.h:79 AliFilteredTreeEventCuts.h:80 AliFilteredTreeEventCuts.h:81 AliFilteredTreeEventCuts.h:82 AliFilteredTreeEventCuts.h:83 AliFilteredTreeEventCuts.h:84 AliFilteredTreeEventCuts.h:85 AliFilteredTreeEventCuts.h:86 AliFilteredTreeEventCuts.h:87 AliFilteredTreeEventCuts.h:88 AliFilteredTreeEventCuts.h:89 AliFilteredTreeEventCuts.h:90 AliFilteredTreeEventCuts.h:91 AliFilteredTreeEventCuts.h:92 AliFilteredTreeEventCuts.h:93 AliFilteredTreeEventCuts.h:94 AliFilteredTreeEventCuts.h:95 AliFilteredTreeEventCuts.h:96 AliFilteredTreeEventCuts.h:97 AliFilteredTreeEventCuts.h:98 AliFilteredTreeEventCuts.h:99 AliFilteredTreeEventCuts.h:100 AliFilteredTreeEventCuts.h:101 AliFilteredTreeEventCuts.h:102 AliFilteredTreeEventCuts.h:103 AliFilteredTreeEventCuts.h:104 AliFilteredTreeEventCuts.h:105 AliFilteredTreeEventCuts.h:106 AliFilteredTreeEventCuts.h:107 AliFilteredTreeEventCuts.h:108 AliFilteredTreeEventCuts.h:109 AliFilteredTreeEventCuts.h:110 AliFilteredTreeEventCuts.h:111 AliFilteredTreeEventCuts.h:112 AliFilteredTreeEventCuts.h:113 AliFilteredTreeEventCuts.h:114 AliFilteredTreeEventCuts.h:115 AliFilteredTreeEventCuts.h:116 AliFilteredTreeEventCuts.h:117 AliFilteredTreeEventCuts.h:118 AliFilteredTreeEventCuts.h:119 AliFilteredTreeEventCuts.h:120 AliFilteredTreeEventCuts.h:121 AliFilteredTreeEventCuts.h:122 AliFilteredTreeEventCuts.h:123 AliFilteredTreeEventCuts.h:124 AliFilteredTreeEventCuts.h:125 AliFilteredTreeEventCuts.h:126 AliFilteredTreeEventCuts.h:127 AliFilteredTreeEventCuts.h:128 AliFilteredTreeEventCuts.h:129 AliFilteredTreeEventCuts.h:130