]>
Commit | Line | Data |
---|---|---|
14c8fedd | 1 | #ifndef AliHFAssociatedTrackCuts_H |
2 | #define AliHFAssociatedTrackCuts_H | |
3 | /************************************************************************** | |
4 | * Copyright(c) 1998-2010, ALICE Experiment at CERN, All rights reserved. * | |
5 | * * | |
6 | * Author: The ALICE Off-line Project. * | |
7 | * Contributors are mentioned in the code where appropriate. * | |
8 | * * | |
9 | * Permission to use, copy, modify and distribute this software and its * | |
10 | * documentation strictly for non-commercial purposes is hereby granted * | |
11 | * without fee, provided that the above copyright notice appears in all * | |
12 | * copies and that both the copyright notice and this permission notice * | |
13 | * appear in the supporting documentation. The authors make no claims * | |
14 | * about the suitability of this software for any purpose. It is * | |
15 | * provided "as is" without express or implied warranty. * | |
16 | **************************************************************************/ | |
17 | ||
18 | /* $Id$ */ | |
19 | ||
20 | //////////////////////////////////////////////////////////////////////// | |
21 | // | |
22 | // Base class for cuts on Associated tracks for HF Correlation analysis | |
23 | // | |
24 | // Author: S.Bjelogrlic (Utrecht) sandro.bjelogrlic@cern.ch | |
25 | //////////////////////////////////////////////////////////////////////// | |
26 | ||
27 | #include <TString.h> | |
28 | #include "AliAnalysisCuts.h" | |
29 | #include "AliESDtrackCuts.h" | |
30 | #include "AliAODPidHF.h" | |
31 | #include "AliAODEvent.h" | |
32 | #include "AliAODRecoDecayHF2Prong.h" | |
33 | #include <TClonesArray.h> | |
34 | ||
35 | class AliAODTrack; | |
36 | class AliAODEvent; | |
37 | ||
38 | ||
39 | // | |
40 | class AliHFAssociatedTrackCuts : public AliAnalysisCuts | |
41 | { | |
42 | public: | |
43 | AliHFAssociatedTrackCuts(); | |
44 | AliHFAssociatedTrackCuts(const char* name, const char* title); | |
45 | ||
46 | ||
47 | AliHFAssociatedTrackCuts(const AliHFAssociatedTrackCuts& source); | |
48 | AliHFAssociatedTrackCuts& operator=(const AliHFAssociatedTrackCuts& source); | |
49 | ||
50 | virtual ~AliHFAssociatedTrackCuts(); // destructor | |
51 | Bool_t IsSelected(TList* list) {if(list) return kTRUE; return kFALSE;}; | |
52 | Bool_t IsSelected(TObject* obj) {if(obj) return kTRUE; return kFALSE;}; | |
53 | Bool_t IsInAcceptance(); | |
bce70c96 | 54 | Bool_t IsHadronSelected(AliAODTrack * track); |
55 | Bool_t CheckHadronKinematic(Double_t pt, Double_t d0); | |
c84dbedf | 56 | Bool_t Charge(Short_t charge, AliAODTrack* track); |
14c8fedd | 57 | Bool_t CheckKaonCompatibility(AliAODTrack * track, Bool_t useMc, TClonesArray* mcArray, Int_t method=1); |
58 | Bool_t IsKZeroSelected(AliAODv0 *vzero, AliAODVertex *vtx1); | |
59 | Int_t IsMCpartFromHF(Int_t label, TClonesArray*mcArray); | |
60 | Bool_t InvMassDstarRejection(AliAODRecoDecayHF2Prong* d, AliAODTrack *track, Int_t hypD0) const; | |
61 | ||
bce70c96 | 62 | //getters |
63 | Int_t GetMaxNEventsInPool() {return fPoolMaxNEvents;} | |
64 | Int_t GetMinNTracksInPool() {return fPoolMinNTracks;} | |
65 | Int_t GetMinEventsToMix(){return fMinEventsToMix;} | |
66 | Int_t GetNZvtxPoolBins() {return fNzVtxBins;} | |
67 | Double_t *GetZvtxPoolBins(){return fZvtxBins;} | |
68 | Int_t GetNCentPoolBins() {return fNCentBins;} | |
69 | Double_t *GetCentPoolBins(){return fCentBins;} | |
70 | ||
71 | ||
14c8fedd | 72 | |
73 | void AddTrackCuts(const AliESDtrackCuts *cuts) { | |
74 | delete fESDTrackCuts; | |
75 | fESDTrackCuts=new AliESDtrackCuts(*cuts); | |
76 | return; | |
77 | } | |
bce70c96 | 78 | //setters |
79 | //event pool settings | |
80 | void SetMaxNEventsInPool(Int_t events){fPoolMaxNEvents=events;} | |
81 | void SetMinNTracksInPool(Int_t tracks){fPoolMinNTracks=tracks;} | |
82 | void SetMinEventsToMix(Int_t events){fMinEventsToMix=events;} | |
14c8fedd | 83 | |
bce70c96 | 84 | void SetNofPoolBins(Int_t Nzvtxbins, Int_t Ncentbins){ |
85 | fNzVtxBins=Nzvtxbins; | |
86 | fNzVtxBinsDim=Nzvtxbins+1; | |
87 | ||
88 | fNCentBins=Ncentbins; | |
89 | fNCentBinsDim=Ncentbins+1; | |
90 | } | |
91 | ||
92 | void SetPoolBins(Double_t *ZvtxBins, Double_t* CentBins){ | |
93 | fZvtxBins=ZvtxBins; | |
94 | fCentBins=CentBins; | |
95 | } | |
96 | //cut settings | |
14c8fedd | 97 | void SetAODTrackCuts(Float_t *cutsarray); |
98 | void SetTrackCutsNames(/*TString *namearray*/); | |
99 | void SetAODvZeroCuts(Float_t *cutsarray); | |
100 | void SetvZeroCutsNames(/*TString *namearray*/); | |
101 | void SetPidHF(AliAODPidHF* pid) {fPidObj = pid; return;} | |
c84dbedf | 102 | void SetCharge(Short_t charge) {fCharge = charge;} |
103 | void SetFilterBit(Int_t bit) {fBit = bit;} | |
14c8fedd | 104 | virtual void PrintAll(); |
bce70c96 | 105 | virtual void PrintPoolParameters(); |
14c8fedd | 106 | Int_t GetNVarsTrack(){return fNTrackCuts;} |
107 | ||
108 | ||
109 | ||
110 | void SetNVarsTrack(Int_t nVars){fNTrackCuts=nVars;} | |
111 | void SetNVarsVzero(Int_t nVars){fNvZeroCuts=nVars;} | |
112 | ||
113 | private: | |
114 | //AliESDtrackCuts *fTrackCuts; | |
115 | AliESDtrackCuts *fESDTrackCuts; // track cut object | |
116 | AliAODPidHF * fPidObj; /// PID object | |
bce70c96 | 117 | |
118 | Int_t fPoolMaxNEvents; // set maximum number of events in the pool | |
119 | Int_t fPoolMinNTracks; // se minimum number of tracks in the pool | |
120 | Int_t fMinEventsToMix; // set the minimum number of events you wanna mix | |
121 | ||
122 | Int_t fNzVtxBins; // number of z vrtx bins | |
123 | Int_t fNzVtxBinsDim; // number of z vrtx bins +1 : necessary to initialize correctly the array | |
124 | Double_t* fZvtxBins; // [fNzVtxBinsDim] | |
125 | ||
126 | ||
127 | Int_t fNCentBins; //number of centrality bins | |
128 | Int_t fNCentBinsDim; //number of centrality bins bins +1 : necessary to initialize correctly the array | |
129 | Double_t* fCentBins; // [fNCentBinsDim] | |
130 | ||
14c8fedd | 131 | Int_t fNTrackCuts; // array dimension |
132 | Float_t* fAODTrackCuts;//[fNTrackCuts] | |
133 | TString * fTrackCutsNames;//[fNTrackCuts] | |
134 | Int_t fNvZeroCuts;// array dimension | |
135 | Float_t *fAODvZeroCuts;//[fNvZeroCuts] | |
136 | TString * fvZeroCutsNames;//[fNvZeroCuts] | |
c84dbedf | 137 | Int_t fBit; // filterBit |
138 | Short_t fCharge; // charge (+1 or -1) | |
14c8fedd | 139 | |
140 | ||
c84dbedf | 141 | ClassDef(AliHFAssociatedTrackCuts,3); |
14c8fedd | 142 | }; |
143 | ||
144 | ||
145 | #endif |