#ifndef ALIDIELECTRONTRACKCUTS_H
#define ALIDIELECTRONTRACKCUTS_H
#include <AliPID.h>
#include <AliAnalysisCuts.h>
class AliDielectronTrackCuts : public AliAnalysisCuts {
public:
enum ITSClusterRequirement { kOff = 0, kNone, kAny, kFirst, kOnlyFirst, kSecond, kOnlySecond, kBoth };
enum Detector { kSPD = 0, kSDD, kSSD };
enum ITScluster { kSPD0=0x0001, kSPD1=0x0002,
kSDD0=0x0004, kSDD1=0x0008,
kSSD0=0x0010, kSSD1=0x0020};
enum ITSclusterCutType { kOneOf=0, kAtLeast, kExact };
enum EFilterBit { kSwitchOff=0, kTPCqual=1, kITSonly=2, kTPCqualSPDany=4, kTPCqualSPDanyPIDele=8, kTPConly=128 };
AliDielectronTrackCuts();
AliDielectronTrackCuts(const char*name, const char* title);
virtual ~AliDielectronTrackCuts();
void SetV0DaughterCut(AliPID::EParticleType type, Bool_t negate=kFALSE);
void SetClusterRequirementITS(Detector det, ITSClusterRequirement req = kOff) { fCutClusterRequirementITS[det] = req; }
void SetRequireITSRefit(Bool_t req) { fRequireITSRefit=req; }
void SetRequireTPCRefit(Bool_t req) { fRequireTPCRefit=req; }
void SetTPCNclFRobust(Int_t cut) { fTPCNclRobustCut=cut; }
void SetMinNCrossedRowsOverFindable(Double_t CrossedOverFindable) { fTPCcrossedOverFindable = CrossedOverFindable; }
Int_t GetV0DaughterCut() const { return fV0DaughterCut; }
ITSClusterRequirement GetClusterRequirementITS(Detector det) const { return fCutClusterRequirementITS[det]; }
void SetITSclusterCut(ITSclusterCutType type, UChar_t map) { fITSclusterBitMap=map; fITSclusterCutType=type; }
void SetAODFilterBit(EFilterBit type) { fAODFilterBit = type; }
void SetMaxWaivedITSNcls(Int_t max) { fWaiveITSNcls = max; }
virtual Bool_t IsSelected(TObject* track);
virtual Bool_t IsSelected(TList* ) {return kFALSE;}
private:
AliDielectronTrackCuts(const AliDielectronTrackCuts &c);
AliDielectronTrackCuts &operator=(const AliDielectronTrackCuts &c);
Int_t fV0DaughterCut;
Bool_t fNegateV0DauterCut;
ITSClusterRequirement fCutClusterRequirementITS[3];
UChar_t fITSclusterBitMap;
ITSclusterCutType fITSclusterCutType;
Bool_t fRequireITSRefit;
Bool_t fRequireTPCRefit;
Int_t fTPCNclRobustCut;
Double_t fTPCcrossedOverFindable;
Int_t fAODFilterBit;
Int_t fWaiveITSNcls;
Bool_t CheckITSClusterRequirement(ITSClusterRequirement req, Bool_t clusterL1, Bool_t clusterL2) const;
Bool_t CheckITSClusterCut(UChar_t itsBits) const;
ClassDef(AliDielectronTrackCuts,3)
};
#endif
AliDielectronTrackCuts.h:1 AliDielectronTrackCuts.h:2 AliDielectronTrackCuts.h:3 AliDielectronTrackCuts.h:4 AliDielectronTrackCuts.h:5 AliDielectronTrackCuts.h:6 AliDielectronTrackCuts.h:7 AliDielectronTrackCuts.h:8 AliDielectronTrackCuts.h:9 AliDielectronTrackCuts.h:10 AliDielectronTrackCuts.h:11 AliDielectronTrackCuts.h:12 AliDielectronTrackCuts.h:13 AliDielectronTrackCuts.h:14 AliDielectronTrackCuts.h:15 AliDielectronTrackCuts.h:16 AliDielectronTrackCuts.h:17 AliDielectronTrackCuts.h:18 AliDielectronTrackCuts.h:19 AliDielectronTrackCuts.h:20 AliDielectronTrackCuts.h:21 AliDielectronTrackCuts.h:22 AliDielectronTrackCuts.h:23 AliDielectronTrackCuts.h:24 AliDielectronTrackCuts.h:25 AliDielectronTrackCuts.h:26 AliDielectronTrackCuts.h:27 AliDielectronTrackCuts.h:28 AliDielectronTrackCuts.h:29 AliDielectronTrackCuts.h:30 AliDielectronTrackCuts.h:31 AliDielectronTrackCuts.h:32 AliDielectronTrackCuts.h:33 AliDielectronTrackCuts.h:34 AliDielectronTrackCuts.h:35 AliDielectronTrackCuts.h:36 AliDielectronTrackCuts.h:37 AliDielectronTrackCuts.h:38 AliDielectronTrackCuts.h:39 AliDielectronTrackCuts.h:40 AliDielectronTrackCuts.h:41 AliDielectronTrackCuts.h:42 AliDielectronTrackCuts.h:43 AliDielectronTrackCuts.h:44 AliDielectronTrackCuts.h:45 AliDielectronTrackCuts.h:46 AliDielectronTrackCuts.h:47 AliDielectronTrackCuts.h:48 AliDielectronTrackCuts.h:49 AliDielectronTrackCuts.h:50 AliDielectronTrackCuts.h:51 AliDielectronTrackCuts.h:52 AliDielectronTrackCuts.h:53 AliDielectronTrackCuts.h:54 AliDielectronTrackCuts.h:55 AliDielectronTrackCuts.h:56 AliDielectronTrackCuts.h:57 AliDielectronTrackCuts.h:58 AliDielectronTrackCuts.h:59 AliDielectronTrackCuts.h:60 AliDielectronTrackCuts.h:61 AliDielectronTrackCuts.h:62 AliDielectronTrackCuts.h:63 AliDielectronTrackCuts.h:64 AliDielectronTrackCuts.h:65 AliDielectronTrackCuts.h:66 AliDielectronTrackCuts.h:67 AliDielectronTrackCuts.h:68 AliDielectronTrackCuts.h:69 AliDielectronTrackCuts.h:70 AliDielectronTrackCuts.h:71 AliDielectronTrackCuts.h:72 AliDielectronTrackCuts.h:73 AliDielectronTrackCuts.h:74 AliDielectronTrackCuts.h:75 AliDielectronTrackCuts.h:76 AliDielectronTrackCuts.h:77 AliDielectronTrackCuts.h:78 AliDielectronTrackCuts.h:79 AliDielectronTrackCuts.h:80 AliDielectronTrackCuts.h:81 AliDielectronTrackCuts.h:82 AliDielectronTrackCuts.h:83 AliDielectronTrackCuts.h:84 AliDielectronTrackCuts.h:85 AliDielectronTrackCuts.h:86 AliDielectronTrackCuts.h:87 AliDielectronTrackCuts.h:88 AliDielectronTrackCuts.h:89 AliDielectronTrackCuts.h:90 AliDielectronTrackCuts.h:91 AliDielectronTrackCuts.h:92 AliDielectronTrackCuts.h:93 AliDielectronTrackCuts.h:94