]>
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; } | |
4a49f1b8 | 47 | void SetMinNCrossedRowsOverFindable(Double_t CrossedOverFindable) { fTPCcrossedOverFindable = CrossedOverFindable; } |
164bfb53 | 48 | |
49 | Int_t GetV0DaughterCut() const { return fV0DaughterCut; } | |
50 | ITSClusterRequirement GetClusterRequirementITS(Detector det) const { return fCutClusterRequirementITS[det]; } | |
5720c765 | 51 | |
52 | void SetITSclusterCut(ITSclusterCutType type, UChar_t map) { fITSclusterBitMap=map; fITSclusterCutType=type; } | |
67fd1119 | 53 | |
4a49f1b8 | 54 | |
67fd1119 | 55 | void SetAODFilterBit(EFilterBit type) { fAODFilterBit = type; } |
08b801a6 | 56 | void SetMaxWaivedITSNcls(Int_t max) { fWaiveITSNcls = max; } |
67fd1119 | 57 | |
164bfb53 | 58 | // |
59 | //Analysis cuts interface | |
60 | // | |
61 | virtual Bool_t IsSelected(TObject* track); | |
62 | virtual Bool_t IsSelected(TList* /* list */ ) {return kFALSE;} | |
63 | ||
64 | ||
65 | private: | |
66 | ||
67 | AliDielectronTrackCuts(const AliDielectronTrackCuts &c); | |
68 | AliDielectronTrackCuts &operator=(const AliDielectronTrackCuts &c); | |
69 | ||
70 | Int_t fV0DaughterCut; // Bit for V0 daughter selection | |
fb7d2d99 | 71 | Bool_t fNegateV0DauterCut; // If to negate the V0 daughter cut |
164bfb53 | 72 | ITSClusterRequirement fCutClusterRequirementITS[3]; // detailed ITS cluster requirements for (SPD, SDD, SSD) |
73 | ||
5720c765 | 74 | UChar_t fITSclusterBitMap; // map of requested ITS clusters |
75 | ITSclusterCutType fITSclusterCutType; // logic of requested ITS clusters | |
76 | ||
164bfb53 | 77 | Bool_t fRequireITSRefit; // require ITS refit |
78 | Bool_t fRequireTPCRefit; // require TPC refit | |
fb7d2d99 | 79 | |
4a49f1b8 | 80 | Int_t fTPCNclRobustCut; // TPC Ncl cut, Robust, corresponds to 'crossed Rows' in ESDTrackCuts |
c022452e | 81 | Double_t fTPCcrossedOverFindable; // TPC Crossed Rows / Findable Clusters Cut, analogous to ESDTrackCuts |
4a49f1b8 | 82 | |
67fd1119 | 83 | Int_t fAODFilterBit; // Filter bit for AOD analysis |
08b801a6 | 84 | Int_t fWaiveITSNcls; // max number of waived ITS clusters after first hit |
67fd1119 | 85 | |
164bfb53 | 86 | Bool_t CheckITSClusterRequirement(ITSClusterRequirement req, Bool_t clusterL1, Bool_t clusterL2) const; |
5720c765 | 87 | Bool_t CheckITSClusterCut(UChar_t itsBits) const; |
b3e5a366 | 88 | |
9afa0f7e | 89 | ClassDef(AliDielectronTrackCuts,3) // Dielectron TrackCuts |
164bfb53 | 90 | }; |
91 | ||
92 | ||
93 | ||
94 | #endif |