#ifndef ALISPECTRABOTHTRACKCUTS_H
#define ALISPECTRABOTHTRACKCUTS_H
class AliAODEvent;
class TH1I;
class TH3F;
class AliAODMCParticle;
class AliAODTrack;
class AliESDtrackCuts;
#include "AliSpectraBothHistoManager.h"
#include "TNamed.h"
#include "AliESDtrackCuts.h"
using namespace AliSpectraNameSpaceBoth;
class AliSpectraBothTrackCuts : public TNamed
{
public:
enum { kTrkBit = 0, kTrkCuts, kTrkEta, kTrkDCA, kTrkP, kTrkPt,kTrkPtTOF,kTOFMatching,kTrTOFout,kTrTIME,kTrTOFpid,kAccepted,kNTrkCuts};
enum {kAODobject=0,kESDobject,kotherobject};
AliSpectraBothTrackCuts() : TNamed(), fIsSelected(0), fTrackBits(0), fMinTPCcls(0), fEtaCutMin(0), fEtaCutMax(0),fDCACut(0) ,fPCut(0), fPtCut(0),fYCutMax(0),fYCutMin(0), fPtCutTOFMatching(0),fAODtrack(0), fHashitinSPD1(0),fusedadditionalcuts(kTRUE),
fPtCutTOFMatchingPion(-1.0),fPtCutTOFMatchingKaon(-1.0),fPtCutTOFMatchingProton(-1.0),fUseTypeDependedTOFCut(kFALSE),fMakeQAhisto(kFALSE),
fHistoCuts(0), fHistoNSelectedPos(0), fHistoNSelectedNeg(0), fHistoNMatchedPos(0), fHistoNMatchedNeg(0), fHistoEtaPhiHighPt(0), fHistoNclustersITS(0),
fHistoDCAzQA(0),fHistoNclustersQA(0),fHistochi2perNDFQA(0),
fTrack(0),fCuts(0) {}
AliSpectraBothTrackCuts(const char *name);
virtual ~AliSpectraBothTrackCuts();
Bool_t IsSelected(AliVTrack * track,Bool_t FillHistStat);
void SetTrackType(UInt_t bit);
Bool_t CheckTrackType();
Bool_t CheckTrackCuts();
Bool_t CheckEtaCut();
Bool_t CheckYCut(BothParticleSpecies_t specie);
Bool_t CheckDCACut();
Bool_t CheckPCut();
Bool_t CheckPtCut();
Bool_t CheckTOFMatching(Bool_t FillHistStat);
Bool_t CheckTOFMatchingParticleType(Int_t type);
void PrintCuts() const;
UInt_t GetTrackType() const { return fTrackBits;}
TH1I * GetHistoCuts() { return fHistoCuts; }
TH1F * GetHistoNSelectedPos() { return fHistoNSelectedPos; }
TH1F * GetHistoNSelectedNeg() { return fHistoNSelectedNeg; }
TH1F * GetHistoNMatchedPos() { return fHistoNMatchedPos; }
TH1F * GetHistoNMatchedNeg() { return fHistoNMatchedNeg; }
TH2F * GetHistoEtaPhiHighPt() { return fHistoEtaPhiHighPt; }
TH1F * GetHistoNclustersITS() {return fHistoNclustersITS;}
TH3F * GetHistoDCAzQA() {return fHistoDCAzQA;}
TH3F * GetHistoNclustersQA() {return fHistoNclustersQA ;}
TH3F * GetHistochi2perNDFQA() {return fHistochi2perNDFQA; }
Bool_t GetUseTypeDependedTOFCut () {return fUseTypeDependedTOFCut;}
Bool_t GetMakeQAhisto () {return fMakeQAhisto;}
AliESDtrackCuts* GetTrackCuts(){return fCuts;}
void SetEta(Float_t etamin,Float_t etamax) { fEtaCutMin = etamin;fEtaCutMax = etamax; }
void SetDCA(Float_t dca) { fDCACut = dca; }
void SetP(Float_t p) { fPCut = p; }
void SetPt(Float_t pt) { fPtCut = pt; }
void SetY(Float_t ymax,Float_t ymin) { fYCutMax = ymax;fYCutMin=ymin;}
void SetPtTOFMatching(Float_t pt) { fPtCutTOFMatching = pt; fUseTypeDependedTOFCut=kFALSE;}
void SetTrackBits(UInt_t TrackBits) {fTrackBits=TrackBits;}
void SetMinTPCcls(UInt_t MinTPCcls) {fMinTPCcls=MinTPCcls;}
void SetHashitinSPD1 (Bool_t value) {fHashitinSPD1=value;}
void SetUsedAdditionalCuts (Bool_t value) {fusedadditionalcuts=value;}
void SetPtTOFMatchingPartDepended(Float_t pion,Float_t kaon,Float_t proton);
void SetMakeQAhisto(Bool_t flag){fMakeQAhisto=flag;}
Float_t GetEtaMin() const { return fEtaCutMin; }
Float_t GetEtaMax() const { return fEtaCutMax; }
Float_t GetYMax() const { return fYCutMax; }
Float_t GetYMin() const { return fYCutMin; }
Float_t GetY() const { return 0.5*(fYCutMax-fYCutMin); }
Float_t GetDCA() const { return fDCACut; }
Float_t GetP() const { return fPCut; }
Float_t GetPt() const { return fPtCut; }
Float_t GetPtTOFMatching() const { return fPtCutTOFMatching; }
Float_t GetPtTOFMatchingPion() const { return fPtCutTOFMatchingPion; }
Float_t GetPtTOFMatchingKaon() const { return fPtCutTOFMatchingKaon; }
Float_t GetPtTOFMatchingProton() const { return fPtCutTOFMatchingProton; }
Long64_t Merge(TCollection* list);
void SetAliESDtrackCuts(AliESDtrackCuts* cuts ){fCuts=cuts;}
void InitHisto();
private:
Bool_t fIsSelected;
UInt_t fTrackBits;
UInt_t fMinTPCcls;
Float_t fEtaCutMin;
Float_t fEtaCutMax;
Float_t fDCACut;
Float_t fPCut;
Float_t fPtCut;
Float_t fYCutMax;
Float_t fYCutMin;
Float_t fPtCutTOFMatching;
Int_t fAODtrack;
Bool_t fHashitinSPD1;
Bool_t fusedadditionalcuts;
Float_t fPtCutTOFMatchingPion;
Float_t fPtCutTOFMatchingKaon;
Float_t fPtCutTOFMatchingProton;
Bool_t fUseTypeDependedTOFCut;
Bool_t fMakeQAhisto;
TH1I *fHistoCuts;
TH1F *fHistoNSelectedPos;
TH1F *fHistoNSelectedNeg;
TH1F *fHistoNMatchedPos;
TH1F *fHistoNMatchedNeg;
TH2F *fHistoEtaPhiHighPt;
TH1F *fHistoNclustersITS;
TH3F *fHistoDCAzQA;
TH3F *fHistoNclustersQA;
TH3F *fHistochi2perNDFQA;
AliVTrack *fTrack;
AliESDtrackCuts *fCuts;
static const char * kBinLabel[];
AliSpectraBothTrackCuts(const AliSpectraBothTrackCuts&);
AliSpectraBothTrackCuts& operator=(const AliSpectraBothTrackCuts&);
void ConfigurePtTOFCut();
ClassDef(AliSpectraBothTrackCuts, 8);
};
#endif
AliSpectraBothTrackCuts.h:1 AliSpectraBothTrackCuts.h:2 AliSpectraBothTrackCuts.h:3 AliSpectraBothTrackCuts.h:4 AliSpectraBothTrackCuts.h:5 AliSpectraBothTrackCuts.h:6 AliSpectraBothTrackCuts.h:7 AliSpectraBothTrackCuts.h:8 AliSpectraBothTrackCuts.h:9 AliSpectraBothTrackCuts.h:10 AliSpectraBothTrackCuts.h:11 AliSpectraBothTrackCuts.h:12 AliSpectraBothTrackCuts.h:13 AliSpectraBothTrackCuts.h:14 AliSpectraBothTrackCuts.h:15 AliSpectraBothTrackCuts.h:16 AliSpectraBothTrackCuts.h:17 AliSpectraBothTrackCuts.h:18 AliSpectraBothTrackCuts.h:19 AliSpectraBothTrackCuts.h:20 AliSpectraBothTrackCuts.h:21 AliSpectraBothTrackCuts.h:22 AliSpectraBothTrackCuts.h:23 AliSpectraBothTrackCuts.h:24 AliSpectraBothTrackCuts.h:25 AliSpectraBothTrackCuts.h:26 AliSpectraBothTrackCuts.h:27 AliSpectraBothTrackCuts.h:28 AliSpectraBothTrackCuts.h:29 AliSpectraBothTrackCuts.h:30 AliSpectraBothTrackCuts.h:31 AliSpectraBothTrackCuts.h:32 AliSpectraBothTrackCuts.h:33 AliSpectraBothTrackCuts.h:34 AliSpectraBothTrackCuts.h:35 AliSpectraBothTrackCuts.h:36 AliSpectraBothTrackCuts.h:37 AliSpectraBothTrackCuts.h:38 AliSpectraBothTrackCuts.h:39 AliSpectraBothTrackCuts.h:40 AliSpectraBothTrackCuts.h:41 AliSpectraBothTrackCuts.h:42 AliSpectraBothTrackCuts.h:43 AliSpectraBothTrackCuts.h:44 AliSpectraBothTrackCuts.h:45 AliSpectraBothTrackCuts.h:46 AliSpectraBothTrackCuts.h:47 AliSpectraBothTrackCuts.h:48 AliSpectraBothTrackCuts.h:49 AliSpectraBothTrackCuts.h:50 AliSpectraBothTrackCuts.h:51 AliSpectraBothTrackCuts.h:52 AliSpectraBothTrackCuts.h:53 AliSpectraBothTrackCuts.h:54 AliSpectraBothTrackCuts.h:55 AliSpectraBothTrackCuts.h:56 AliSpectraBothTrackCuts.h:57 AliSpectraBothTrackCuts.h:58 AliSpectraBothTrackCuts.h:59 AliSpectraBothTrackCuts.h:60 AliSpectraBothTrackCuts.h:61 AliSpectraBothTrackCuts.h:62 AliSpectraBothTrackCuts.h:63 AliSpectraBothTrackCuts.h:64 AliSpectraBothTrackCuts.h:65 AliSpectraBothTrackCuts.h:66 AliSpectraBothTrackCuts.h:67 AliSpectraBothTrackCuts.h:68 AliSpectraBothTrackCuts.h:69 AliSpectraBothTrackCuts.h:70 AliSpectraBothTrackCuts.h:71 AliSpectraBothTrackCuts.h:72 AliSpectraBothTrackCuts.h:73 AliSpectraBothTrackCuts.h:74 AliSpectraBothTrackCuts.h:75 AliSpectraBothTrackCuts.h:76 AliSpectraBothTrackCuts.h:77 AliSpectraBothTrackCuts.h:78 AliSpectraBothTrackCuts.h:79 AliSpectraBothTrackCuts.h:80 AliSpectraBothTrackCuts.h:81 AliSpectraBothTrackCuts.h:82 AliSpectraBothTrackCuts.h:83 AliSpectraBothTrackCuts.h:84 AliSpectraBothTrackCuts.h:85 AliSpectraBothTrackCuts.h:86 AliSpectraBothTrackCuts.h:87 AliSpectraBothTrackCuts.h:88 AliSpectraBothTrackCuts.h:89 AliSpectraBothTrackCuts.h:90 AliSpectraBothTrackCuts.h:91 AliSpectraBothTrackCuts.h:92 AliSpectraBothTrackCuts.h:93 AliSpectraBothTrackCuts.h:94 AliSpectraBothTrackCuts.h:95 AliSpectraBothTrackCuts.h:96 AliSpectraBothTrackCuts.h:97 AliSpectraBothTrackCuts.h:98 AliSpectraBothTrackCuts.h:99 AliSpectraBothTrackCuts.h:100 AliSpectraBothTrackCuts.h:101 AliSpectraBothTrackCuts.h:102 AliSpectraBothTrackCuts.h:103 AliSpectraBothTrackCuts.h:104 AliSpectraBothTrackCuts.h:105 AliSpectraBothTrackCuts.h:106 AliSpectraBothTrackCuts.h:107 AliSpectraBothTrackCuts.h:108 AliSpectraBothTrackCuts.h:109 AliSpectraBothTrackCuts.h:110 AliSpectraBothTrackCuts.h:111 AliSpectraBothTrackCuts.h:112 AliSpectraBothTrackCuts.h:113 AliSpectraBothTrackCuts.h:114 AliSpectraBothTrackCuts.h:115 AliSpectraBothTrackCuts.h:116 AliSpectraBothTrackCuts.h:117 AliSpectraBothTrackCuts.h:118 AliSpectraBothTrackCuts.h:119 AliSpectraBothTrackCuts.h:120 AliSpectraBothTrackCuts.h:121 AliSpectraBothTrackCuts.h:122 AliSpectraBothTrackCuts.h:123 AliSpectraBothTrackCuts.h:124 AliSpectraBothTrackCuts.h:125 AliSpectraBothTrackCuts.h:126 AliSpectraBothTrackCuts.h:127 AliSpectraBothTrackCuts.h:128 AliSpectraBothTrackCuts.h:129 AliSpectraBothTrackCuts.h:130 AliSpectraBothTrackCuts.h:131 AliSpectraBothTrackCuts.h:132 AliSpectraBothTrackCuts.h:133 AliSpectraBothTrackCuts.h:134 AliSpectraBothTrackCuts.h:135 AliSpectraBothTrackCuts.h:136 AliSpectraBothTrackCuts.h:137 AliSpectraBothTrackCuts.h:138 AliSpectraBothTrackCuts.h:139 AliSpectraBothTrackCuts.h:140 AliSpectraBothTrackCuts.h:141 AliSpectraBothTrackCuts.h:142 AliSpectraBothTrackCuts.h:143 AliSpectraBothTrackCuts.h:144 AliSpectraBothTrackCuts.h:145 AliSpectraBothTrackCuts.h:146 AliSpectraBothTrackCuts.h:147 AliSpectraBothTrackCuts.h:148