]>
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 }; | |
5720c765 | 29 | enum ITScluster { kSPD0=0x0001, kSPD1=0x0002, |
30 | kSDD0=0x0004, kSDD1=0x0008, | |
31 | kSSD0=0x0010, kSSD1=0x0020}; | |
32 | enum ITSclusterCutType { kOneOf=0, kAtLeast, kExact }; | |
67fd1119 | 33 | enum EFilterBit { kSwitchOff=0, kTPCqual=1, kTPCqualSPDany=4, kTPCqualSPDanyPIDele=8 }; |
164bfb53 | 34 | |
164bfb53 | 35 | AliDielectronTrackCuts(); |
36 | AliDielectronTrackCuts(const char*name, const char* title); | |
37 | ||
38 | virtual ~AliDielectronTrackCuts(); | |
39 | ||
fb7d2d99 | 40 | void SetV0DaughterCut(AliPID::EParticleType type, Bool_t negate=kFALSE); |
164bfb53 | 41 | void SetClusterRequirementITS(Detector det, ITSClusterRequirement req = kOff) { fCutClusterRequirementITS[det] = req; } |
42 | ||
43 | void SetRequireITSRefit(Bool_t req) { fRequireITSRefit=req; } | |
44 | void SetRequireTPCRefit(Bool_t req) { fRequireTPCRefit=req; } | |
fb7d2d99 | 45 | |
46 | void SetTPCNclFRobust(Int_t cut) { fTPCNclRobustCut=cut; } | |
164bfb53 | 47 | |
48 | Int_t GetV0DaughterCut() const { return fV0DaughterCut; } | |
49 | ITSClusterRequirement GetClusterRequirementITS(Detector det) const { return fCutClusterRequirementITS[det]; } | |
5720c765 | 50 | |
51 | void SetITSclusterCut(ITSclusterCutType type, UChar_t map) { fITSclusterBitMap=map; fITSclusterCutType=type; } | |
67fd1119 | 52 | |
53 | void SetAODFilterBit(EFilterBit type) { fAODFilterBit = type; } | |
08b801a6 | 54 | void SetMaxWaivedITSNcls(Int_t max) { fWaiveITSNcls = max; } |
67fd1119 | 55 | |
164bfb53 | 56 | // |
57 | //Analysis cuts interface | |
58 | // | |
59 | virtual Bool_t IsSelected(TObject* track); | |
60 | virtual Bool_t IsSelected(TList* /* list */ ) {return kFALSE;} | |
61 | ||
62 | ||
63 | private: | |
64 | ||
65 | AliDielectronTrackCuts(const AliDielectronTrackCuts &c); | |
66 | AliDielectronTrackCuts &operator=(const AliDielectronTrackCuts &c); | |
67 | ||
68 | Int_t fV0DaughterCut; // Bit for V0 daughter selection | |
fb7d2d99 | 69 | Bool_t fNegateV0DauterCut; // If to negate the V0 daughter cut |
164bfb53 | 70 | ITSClusterRequirement fCutClusterRequirementITS[3]; // detailed ITS cluster requirements for (SPD, SDD, SSD) |
71 | ||
5720c765 | 72 | UChar_t fITSclusterBitMap; // map of requested ITS clusters |
73 | ITSclusterCutType fITSclusterCutType; // logic of requested ITS clusters | |
74 | ||
164bfb53 | 75 | Bool_t fRequireITSRefit; // require ITS refit |
76 | Bool_t fRequireTPCRefit; // require TPC refit | |
fb7d2d99 | 77 | |
5720c765 | 78 | Int_t fTPCNclRobustCut; // TPC Ncl cut, Robust |
67fd1119 | 79 | Int_t fAODFilterBit; // Filter bit for AOD analysis |
08b801a6 | 80 | Int_t fWaiveITSNcls; // max number of waived ITS clusters after first hit |
67fd1119 | 81 | |
164bfb53 | 82 | Bool_t CheckITSClusterRequirement(ITSClusterRequirement req, Bool_t clusterL1, Bool_t clusterL2) const; |
5720c765 | 83 | Bool_t CheckITSClusterCut(UChar_t itsBits) const; |
b3e5a366 | 84 | |
5720c765 | 85 | ClassDef(AliDielectronTrackCuts,2) // Dielectron TrackCuts |
164bfb53 | 86 | }; |
87 | ||
88 | ||
89 | ||
90 | #endif |