#ifndef ALIDIELECTRONEVENTCUTS_H
#define ALIDIELECTRONEVENTCUTS_H
#include <TF1.h>
#include <TVectorD.h>
#include <TBits.h>
#include <AliAnalysisUtils.h>
#include <AliAnalysisCuts.h>
class AliTriggerAnalysis;
class AliESDVertex;
class AliAODVertex;
class AliDielectronEventCuts : public AliAnalysisCuts {
public:
enum EVtxType { kVtxTracks=0, kVtxSPD, kVtxTPC, kVtxAny, kVtxTracksOrSPD };
AliDielectronEventCuts();
AliDielectronEventCuts(const char*name, const char* title);
virtual ~AliDielectronEventCuts();
void SetRunRejection(const TVectorD * vec) { fRun.Use(vec->GetNrows(),vec->GetMatrixArray()); }
void SetVertexType(EVtxType type) { fVtxType=type; }
void SetVertexZ(Double_t zmin, Double_t zmax) { fVtxZmin=zmin; fVtxZmax=zmax; }
void SetRequireVertex(Bool_t req=kTRUE) { fRequireVtx=req; }
void SetRequireV0and(UChar_t type=1) { fRequireV0and=type; }
void SetMinVtxContributors(Int_t min=1) { fMinVtxContributors=min; }
void SetCutOnMultipicityITSTPC(Bool_t mult=kTRUE) { fMultITSTPC=mult; }
void SetCentralityRange(Double_t min, Double_t max) { fCentMin=min; fCentMax=max; }
void SetCutOnV0MultipicityNTrks(TF1* parMean, TF1* parSigma, Double_t cutSigma=3.) { fparMean=parMean; fparSigma=parSigma; fcutSigma=cutSigma; }
void SetCutOnNVtxContributorsGloablTPC(TF1* parMin, TF1* parMax) { fparMinVtxContributors=parMin; fparMaxVtxContributors=parMax; }
void SetRequire2013vertexandevent(Bool_t req13 = kTRUE) {fRequire13sel = req13; }
void SetMinCorrCutFunction(TF1 *fun, UInt_t varx, UInt_t vary=0);
void SetMaxCorrCutFunction(TF1 *fun, UInt_t varx, UInt_t vary=0);
virtual Bool_t IsSelected(TObject* event);
Bool_t IsSelectedESD(TObject* event);
Bool_t IsSelectedAOD(TObject* event);
virtual Bool_t IsSelected(TList* ) {return kFALSE;}
void Print(const Option_t* option = "") const;
private:
static const char* fgkVtxNames[AliDielectronEventCuts::kVtxTracksOrSPD+1];
TBits *fUsedVars;
TVectorD fRun;
Double_t fVtxZmin;
Double_t fVtxZmax;
Bool_t fRequireVtx;
Int_t fMinVtxContributors;
Bool_t fMultITSTPC;
Double_t fCentMin;
Double_t fCentMax;
EVtxType fVtxType;
Bool_t fRequire13sel;
AliAnalysisUtils fUtils;
UChar_t fRequireV0and;
AliTriggerAnalysis *fTriggerAnalysis;
const AliESDVertex *fkVertex;
const AliAODVertex *fkVertexAOD;
TH1* fCorrCutMin[5];
TH1* fCorrCutMax[5];
TF1* fparMean;
TF1* fparSigma;
Double_t fcutSigma;
TF1* fparMinVtxContributors;
TF1* fparMaxVtxContributors;
AliDielectronEventCuts(const AliDielectronEventCuts &c);
AliDielectronEventCuts &operator=(const AliDielectronEventCuts &c);
ClassDef(AliDielectronEventCuts,4)
};
#endif
AliDielectronEventCuts.h:1 AliDielectronEventCuts.h:2 AliDielectronEventCuts.h:3 AliDielectronEventCuts.h:4 AliDielectronEventCuts.h:5 AliDielectronEventCuts.h:6 AliDielectronEventCuts.h:7 AliDielectronEventCuts.h:8 AliDielectronEventCuts.h:9 AliDielectronEventCuts.h:10 AliDielectronEventCuts.h:11 AliDielectronEventCuts.h:12 AliDielectronEventCuts.h:13 AliDielectronEventCuts.h:14 AliDielectronEventCuts.h:15 AliDielectronEventCuts.h:16 AliDielectronEventCuts.h:17 AliDielectronEventCuts.h:18 AliDielectronEventCuts.h:19 AliDielectronEventCuts.h:20 AliDielectronEventCuts.h:21 AliDielectronEventCuts.h:22 AliDielectronEventCuts.h:23 AliDielectronEventCuts.h:24 AliDielectronEventCuts.h:25 AliDielectronEventCuts.h:26 AliDielectronEventCuts.h:27 AliDielectronEventCuts.h:28 AliDielectronEventCuts.h:29 AliDielectronEventCuts.h:30 AliDielectronEventCuts.h:31 AliDielectronEventCuts.h:32 AliDielectronEventCuts.h:33 AliDielectronEventCuts.h:34 AliDielectronEventCuts.h:35 AliDielectronEventCuts.h:36 AliDielectronEventCuts.h:37 AliDielectronEventCuts.h:38 AliDielectronEventCuts.h:39 AliDielectronEventCuts.h:40 AliDielectronEventCuts.h:41 AliDielectronEventCuts.h:42 AliDielectronEventCuts.h:43 AliDielectronEventCuts.h:44 AliDielectronEventCuts.h:45 AliDielectronEventCuts.h:46 AliDielectronEventCuts.h:47 AliDielectronEventCuts.h:48 AliDielectronEventCuts.h:49 AliDielectronEventCuts.h:50 AliDielectronEventCuts.h:51 AliDielectronEventCuts.h:52 AliDielectronEventCuts.h:53 AliDielectronEventCuts.h:54 AliDielectronEventCuts.h:55 AliDielectronEventCuts.h:56 AliDielectronEventCuts.h:57 AliDielectronEventCuts.h:58 AliDielectronEventCuts.h:59 AliDielectronEventCuts.h:60 AliDielectronEventCuts.h:61 AliDielectronEventCuts.h:62 AliDielectronEventCuts.h:63 AliDielectronEventCuts.h:64 AliDielectronEventCuts.h:65 AliDielectronEventCuts.h:66 AliDielectronEventCuts.h:67 AliDielectronEventCuts.h:68 AliDielectronEventCuts.h:69 AliDielectronEventCuts.h:70 AliDielectronEventCuts.h:71 AliDielectronEventCuts.h:72 AliDielectronEventCuts.h:73 AliDielectronEventCuts.h:74 AliDielectronEventCuts.h:75 AliDielectronEventCuts.h:76 AliDielectronEventCuts.h:77 AliDielectronEventCuts.h:78 AliDielectronEventCuts.h:79 AliDielectronEventCuts.h:80 AliDielectronEventCuts.h:81 AliDielectronEventCuts.h:82 AliDielectronEventCuts.h:83 AliDielectronEventCuts.h:84 AliDielectronEventCuts.h:85 AliDielectronEventCuts.h:86 AliDielectronEventCuts.h:87 AliDielectronEventCuts.h:88 AliDielectronEventCuts.h:89 AliDielectronEventCuts.h:90 AliDielectronEventCuts.h:91 AliDielectronEventCuts.h:92 AliDielectronEventCuts.h:93 AliDielectronEventCuts.h:94 AliDielectronEventCuts.h:95 AliDielectronEventCuts.h:96 AliDielectronEventCuts.h:97 AliDielectronEventCuts.h:98 AliDielectronEventCuts.h:99 AliDielectronEventCuts.h:100 AliDielectronEventCuts.h:101 AliDielectronEventCuts.h:102 AliDielectronEventCuts.h:103 AliDielectronEventCuts.h:104 AliDielectronEventCuts.h:105 AliDielectronEventCuts.h:106 AliDielectronEventCuts.h:107