]>
Commit | Line | Data |
---|---|---|
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 | ||
25 | class AliDielectronTrackCuts : public AliAnalysisCuts { | |
26 | public: | |
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 | ||
61 | private: | |
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 |