]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG3/dielectron/AliDielectronTrackCuts.h
Add fast merging option (Diego)
[u/mrichter/AliRoot.git] / PWG3 / dielectron / AliDielectronTrackCuts.h
CommitLineData
164bfb53 1#ifndef ALIDIELECTRONTRACKCUTS_H
2#define ALIDIELECTRONTRACKCUTS_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 AliDielectronTrackCuts #
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 Tü / Jens.Wiechula@cern.ch #
19//# #
20//#############################################################
21
22#include <AliPID.h>
23#include <AliAnalysisCuts.h>
24
25class AliDielectronTrackCuts : public AliAnalysisCuts {
26public:
27 enum ITSClusterRequirement { kOff = 0, kNone, kAny, kFirst, kOnlyFirst, kSecond, kOnlySecond, kBoth };
28 enum Detector { kSPD = 0, kSDD, kSSD };
29
30 enum {
31 kITSin=0x0001,kITSout=0x0002,kITSrefit=0x0004,kITSpid=0x0008,
32 kTPCin=0x0010,kTPCout=0x0020,kTPCrefit=0x0040,kTPCpid=0x0080,
33 kTRDin=0x0100,kTRDout=0x0200,kTRDrefit=0x0400,kTRDpid=0x0800,
34 kTOFin=0x1000,kTOFout=0x2000,kTOFrefit=0x4000,kTOFpid=0x8000,
35 kHMPIDout=0x10000,kHMPIDpid=0x20000
36 };
37
38 AliDielectronTrackCuts();
39 AliDielectronTrackCuts(const char*name, const char* title);
40
41 virtual ~AliDielectronTrackCuts();
42
fb7d2d99 43 void SetV0DaughterCut(AliPID::EParticleType type, Bool_t negate=kFALSE);
164bfb53 44 void SetClusterRequirementITS(Detector det, ITSClusterRequirement req = kOff) { fCutClusterRequirementITS[det] = req; }
45
46 void SetRequireITSRefit(Bool_t req) { fRequireITSRefit=req; }
47 void SetRequireTPCRefit(Bool_t req) { fRequireTPCRefit=req; }
fb7d2d99 48
49 void SetTPCNclFRobust(Int_t cut) { fTPCNclRobustCut=cut; }
164bfb53 50
51 Int_t GetV0DaughterCut() const { return fV0DaughterCut; }
52 ITSClusterRequirement GetClusterRequirementITS(Detector det) const { return fCutClusterRequirementITS[det]; }
53
54 //
55 //Analysis cuts interface
56 //
57 virtual Bool_t IsSelected(TObject* track);
58 virtual Bool_t IsSelected(TList* /* list */ ) {return kFALSE;}
59
60
61private:
62
63 AliDielectronTrackCuts(const AliDielectronTrackCuts &c);
64 AliDielectronTrackCuts &operator=(const AliDielectronTrackCuts &c);
65
66 Int_t fV0DaughterCut; // Bit for V0 daughter selection
fb7d2d99 67 Bool_t fNegateV0DauterCut; // If to negate the V0 daughter cut
164bfb53 68 ITSClusterRequirement fCutClusterRequirementITS[3]; // detailed ITS cluster requirements for (SPD, SDD, SSD)
69
70 Bool_t fRequireITSRefit; // require ITS refit
71 Bool_t fRequireTPCRefit; // require TPC refit
fb7d2d99 72
73 Int_t fTPCNclRobustCut; // TPC Ncl cut, Robust
164bfb53 74
75 Bool_t CheckITSClusterRequirement(ITSClusterRequirement req, Bool_t clusterL1, Bool_t clusterL2) const;
76
77 ClassDef(AliDielectronTrackCuts,1) // Dielectron TrackCuts
78};
79
80
81
82#endif