1 #ifndef ALIDNDPTEVENTCUTS_H
\r
2 #define ALIDNDPTEVENTCUTS_H
\r
4 //------------------------------------------------------------------------------
\r
5 // Class to keep event selection cuts for dNdPt analysis.
\r
7 // Author: J.Otwinowski 01/11/2008
\r
8 //------------------------------------------------------------------------------
\r
10 #include "AliAnalysisCuts.h"
\r
11 #include "dNdPt/AlidNdPtHelper.h"
\r
17 class AliGenEventHeader;
\r
19 class AlidNdPtEventCuts : public AliAnalysisCuts
\r
22 AlidNdPtEventCuts(const Char_t* name ="AlidNdPtEventCuts", const Char_t *title ="");
\r
23 virtual ~AlidNdPtEventCuts();
\r
26 void SetRecVertexRequired(const Bool_t bFlag=kTRUE) {fRecVertexRequired=bFlag;}
\r
27 void SetEventProcessType(AlidNdPtHelper::MCProcessType type=AlidNdPtHelper::kInvalidProcess) {fEventProcessType=type;}
\r
28 void SetNContributorsRange(const Float_t min=0.,const Float_t max=1e99) {fMinNContributors=min; fMaxNContributors=max;}
\r
29 void SetMaxR(const Float_t max=1e99) {fMaxR=max;}
\r
30 void SetZvRange(const Float_t min=-1e99, const Float_t max=1e99) {fMinZv=min; fMaxZv=max;}
\r
32 void SetMeanXYZv(const Float_t xv=0.0, const Float_t yv=0.0, const Float_t zv=0.0) {
\r
33 fMeanXv = xv; fMeanYv = yv; fMeanZv = zv;
\r
36 void SetSigmaMeanXYZv(const Float_t sxv=1.0, const Float_t syv=1.0, const Float_t szv=10.0) {
\r
37 fSigmaMeanXv = sxv; fSigmaMeanYv = syv; fSigmaMeanZv = szv;
\r
41 Bool_t IsRecVertexRequired() const {return fRecVertexRequired;}
\r
42 Int_t GetEventProcessType() const {return fEventProcessType;}
\r
43 Float_t GetMinNContributors() const {return fMinNContributors;}
\r
44 Float_t GetMaxNContributors() const {return fMaxNContributors;}
\r
45 Float_t GetMaxR() const {return fMaxR;}
\r
46 Float_t GetMinZv() const {return fMinZv;}
\r
47 Float_t GetMaxZv() const {return fMaxZv;}
\r
49 Float_t GetMeanXv() const {return fMeanXv;}
\r
50 Float_t GetMeanYv() const {return fMeanYv;}
\r
51 Float_t GetMeanZv() const {return fMeanZv;}
\r
53 Float_t GetSigmaMeanXv() const {return fSigmaMeanXv;}
\r
54 Float_t GetSigmaMeanYv() const {return fSigmaMeanYv;}
\r
55 Float_t GetSigmaMeanZv() const {return fSigmaMeanZv;}
\r
57 // cuts init function
\r
61 Bool_t IsSelected(TObject *) {return kTRUE;}
\r
62 Bool_t IsSelected(TList *) {return kTRUE;}
\r
65 Bool_t AcceptEvent(AliESDEvent *event=0, AliMCEvent *mcEvent=0, const AliESDVertex *vtx=0);
\r
66 Bool_t AcceptMCEvent(AliMCEvent *mcEvent=0);
\r
68 // Merge output objects (needed by PROOF)
\r
69 virtual Long64_t Merge(TCollection* list);
\r
72 Bool_t fRecVertexRequired; // reconstructed event vertex required
\r
73 Int_t fEventProcessType; // select MC event process type (ND, SD, DD)
\r
74 Float_t fMinNContributors; // min. number of contributing vertex tracks
\r
75 Float_t fMaxNContributors; // max. number of contributing vertex tracks
\r
76 Float_t fMaxR; // max. vertex radii (R = sqrt(Xv^2+Yv^2)
\r
77 Float_t fMinZv; // min. Zv vertex
\r
78 Float_t fMaxZv; // max. Zv vertex
\r
80 // interaction spot constraint
\r
81 Float_t fMeanXv; // mean Xv position
\r
82 Float_t fMeanYv; // mean Yv position
\r
83 Float_t fMeanZv; // mean Zv position
\r
85 Float_t fSigmaMeanXv; // sigma mean Xv position
\r
86 Float_t fSigmaMeanYv; // sigma mean Yv position
\r
87 Float_t fSigmaMeanZv; // sigma mean Zv position
\r
89 AlidNdPtEventCuts(const AlidNdPtEventCuts&); // not implemented
\r
90 AlidNdPtEventCuts& operator=(const AlidNdPtEventCuts&); // not implemented
\r
92 ClassDef(AlidNdPtEventCuts, 1)
\r
95 #endif // ALIDNDPTEVENTCUTS_H
\r