]>
Commit | Line | Data |
---|---|---|
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 | ||
29 | class AliTriggerAnalysis; | |
30 | class AliESDVertex; | |
d327d9cd | 31 | class AliAODVertex; |
2a14a7b1 | 32 | |
90c1ae2d | 33 | |
2a14a7b1 | 34 | class AliDielectronEventCuts : public AliAnalysisCuts { |
35 | public: | |
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 | 67 | private: |
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 |