]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGDQ/dielectron/AliDielectronEventCuts.h
including switch to set on/off iso-track core removal, cleaning and bug fix
[u/mrichter/AliRoot.git] / PWGDQ / dielectron / AliDielectronEventCuts.h
CommitLineData
2a14a7b1 1#ifndef ALIDIELECTRONEVENTCUTS_H
2#define ALIDIELECTRONEVENTCUTS_H
3
4/* Copyright(c) 1998-2009, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
6
7//#############################################################
8//# #
9//# Class AliDielectronEventCuts #
10//# #
11//# Authors: #
12//# Anton Andronic, GSI / A.Andronic@gsi.de #
13//# Ionut C. Arsene, GSI / I.C.Arsene@gsi.de #
14//# Julian Book, Uni Ffm / Julian.Book@cern.ch #
15//# Frederick Kramer, Uni Ffm, / Frederick.Kramer@cern.ch #
16//# Magnus Mager, CERN / Magnus.Mager@cern.ch #
17//# WooJin J. Park, GSI / W.J.Park@gsi.de #
18//# Jens Wiechula, Uni HD / Jens.Wiechula@cern.ch #
19//# #
20//#############################################################
21
b2ad74d0 22#include <TF1.h>
fd40e2fe 23#include <TVectorD.h>
746e66a9 24#include <TBits.h>
b2ad74d0 25
26#include <AliAnalysisUtils.h>
2a14a7b1 27#include <AliAnalysisCuts.h>
28
29class AliTriggerAnalysis;
30class AliESDVertex;
d327d9cd 31class AliAODVertex;
2a14a7b1 32
90c1ae2d 33
2a14a7b1 34class AliDielectronEventCuts : public AliAnalysisCuts {
35public:
1201a1a9 36 enum EVtxType { kVtxTracks=0, kVtxSPD, kVtxTPC, kVtxAny, kVtxTracksOrSPD };
2a14a7b1 37
38 AliDielectronEventCuts();
39 AliDielectronEventCuts(const char*name, const char* title);
40
41 virtual ~AliDielectronEventCuts();
42
fd40e2fe 43 void SetRunRejection(const TVectorD * vec) { fRun.Use(vec->GetNrows(),vec->GetMatrixArray()); }
2a14a7b1 44 void SetVertexType(EVtxType type) { fVtxType=type; }
45 void SetVertexZ(Double_t zmin, Double_t zmax) { fVtxZmin=zmin; fVtxZmax=zmax; }
46 void SetRequireVertex(Bool_t req=kTRUE) { fRequireVtx=req; }
47 void SetRequireV0and(UChar_t type=1) { fRequireV0and=type; }
48 void SetMinVtxContributors(Int_t min=1) { fMinVtxContributors=min; }
ffbede40 49 void SetCutOnMultipicityITSTPC(Bool_t mult=kTRUE) { fMultITSTPC=mult; }
ba15fdfb 50 void SetCentralityRange(Double_t min, Double_t max) { fCentMin=min; fCentMax=max; }
90c1ae2d 51 void SetCutOnV0MultipicityNTrks(TF1* parMean, TF1* parSigma, Double_t cutSigma=3.) { fparMean=parMean; fparSigma=parSigma; fcutSigma=cutSigma; }
6bd73568 52 void SetCutOnNVtxContributorsGloablTPC(TF1* parMin, TF1* parMax) { fparMinVtxContributors=parMin; fparMaxVtxContributors=parMax; }
b2ad74d0 53 void SetRequire2013vertexandevent(Bool_t req13 = kTRUE) {fRequire13sel = req13; }
746e66a9 54 void SetMinCorrCutFunction(TF1 *fun, UInt_t varx, UInt_t vary=0);
55 void SetMaxCorrCutFunction(TF1 *fun, UInt_t varx, UInt_t vary=0);
56
2a14a7b1 57 //
58 //Analysis cuts interface
59 //
60 virtual Bool_t IsSelected(TObject* event);
d327d9cd 61 Bool_t IsSelectedESD(TObject* event);
62 Bool_t IsSelectedAOD(TObject* event);
2a14a7b1 63 virtual Bool_t IsSelected(TList* /* list */ ) {return kFALSE;}
2a14a7b1 64
1bb1fef1 65 void Print(const Option_t* option = "") const;
2a14a7b1 66
1bb1fef1 67private:
68 static const char* fgkVtxNames[AliDielectronEventCuts::kVtxTracksOrSPD+1]; //vertex names
746e66a9 69
70 TBits *fUsedVars; // list of used variables
fd40e2fe 71 TVectorD fRun; // run rejection vector
2a14a7b1 72 Double_t fVtxZmin; // minimum z vertex position
73 Double_t fVtxZmax; // maximum z vertex position
74 Bool_t fRequireVtx; // require a vertex
75 Int_t fMinVtxContributors; // min number of vertex contributors
ffbede40 76 Bool_t fMultITSTPC; // if to cut on the ITS TPC multiplicity correlation (Pb-Pb)
b2ad74d0 77 Double_t fCentMin; // minimum multiplity percentile
78 Double_t fCentMax; // maximum multiplity percentile
2a14a7b1 79 EVtxType fVtxType; // vertex type
b2ad74d0 80 Bool_t fRequire13sel; //bit to select event and vertex selection proposed for 2013 in
81 //https://twiki.cern.ch/twiki/bin/viewauth/ALICE/PAVertexSelectionStudies
82 AliAnalysisUtils fUtils; //data member to use utility class for event and vertex selection in 2013
83
2a14a7b1 84
85 UChar_t fRequireV0and; // use V0and triggered events only
86
87 AliTriggerAnalysis *fTriggerAnalysis; //! trigger analysis class
ffbede40 88 const AliESDVertex *fkVertex; //! current vertex
d327d9cd 89 const AliAODVertex *fkVertexAOD; //! current vertex AOD
2a14a7b1 90
746e66a9 91 TH1* fCorrCutMin[5]; //parametrization of lower limit correlation cut
92 TH1* fCorrCutMax[5]; //parametrization of upper limit correlation cut
93
90c1ae2d 94 TF1* fparMean; // parametrization of the mean values
95 TF1* fparSigma; // parametrization of the sigmas
96 Double_t fcutSigma; // number of absolut sigmas inclusion
6bd73568 97 TF1* fparMinVtxContributors; // parametrization of #vtx contributors global vs TPC (lower limit)
98 TF1* fparMaxVtxContributors; // parametrization of #vtx contributors global vs TPC (upper limit)
2a14a7b1 99 AliDielectronEventCuts(const AliDielectronEventCuts &c);
100 AliDielectronEventCuts &operator=(const AliDielectronEventCuts &c);
101
102
746e66a9 103 ClassDef(AliDielectronEventCuts,4) // Dielectron EventCuts
2a14a7b1 104};
105
2a14a7b1 106
107#endif