]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGHF/correlationHF/AliHFAssociatedTrackCuts.h
cleanup
[u/mrichter/AliRoot.git] / PWGHF / correlationHF / AliHFAssociatedTrackCuts.h
CommitLineData
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
53454b81 35
36
14c8fedd 37class AliAODTrack;
38class AliAODEvent;
39
40
41//
42class AliHFAssociatedTrackCuts : public AliAnalysisCuts
43{
44 public:
45 AliHFAssociatedTrackCuts();
46 AliHFAssociatedTrackCuts(const char* name, const char* title);
47
48
49 AliHFAssociatedTrackCuts(const AliHFAssociatedTrackCuts& source);
50 AliHFAssociatedTrackCuts& operator=(const AliHFAssociatedTrackCuts& source);
51
52 virtual ~AliHFAssociatedTrackCuts(); // destructor
53 Bool_t IsSelected(TList* list) {if(list) return kTRUE; return kFALSE;};
54 Bool_t IsSelected(TObject* obj) {if(obj) return kTRUE; return kFALSE;};
55 Bool_t IsInAcceptance();
bce70c96 56 Bool_t IsHadronSelected(AliAODTrack * track);
57 Bool_t CheckHadronKinematic(Double_t pt, Double_t d0);
c84dbedf 58 Bool_t Charge(Short_t charge, AliAODTrack* track);
14c8fedd 59 Bool_t CheckKaonCompatibility(AliAODTrack * track, Bool_t useMc, TClonesArray* mcArray, Int_t method=1);
60 Bool_t IsKZeroSelected(AliAODv0 *vzero, AliAODVertex *vtx1);
53454b81 61 Bool_t *IsMCpartFromHF(Int_t label, TClonesArray*mcArray);
8c2d7467 62 Bool_t InvMassDstarRejection(AliAODRecoDecayHF2Prong* d, AliAODTrack *track, Int_t hypD0) const;
63 void SetPidAssociated();
14c8fedd 64
bce70c96 65 //getters
66 Int_t GetMaxNEventsInPool() {return fPoolMaxNEvents;}
67 Int_t GetMinNTracksInPool() {return fPoolMinNTracks;}
68 Int_t GetMinEventsToMix(){return fMinEventsToMix;}
69 Int_t GetNZvtxPoolBins() {return fNzVtxBins;}
70 Double_t *GetZvtxPoolBins(){return fZvtxBins;}
71 Int_t GetNCentPoolBins() {return fNCentBins;}
72 Double_t *GetCentPoolBins(){return fCentBins;}
73
53454b81 74 Int_t GetNofMCEventType(){return fNofMCEventType;}
75 Int_t *GetMCEventType(){return fMCEventType;}
76 TString GetDescription(){return fDescription;}
77 Int_t GetNVarsTrack(){return fNTrackCuts;}
78
bce70c96 79
14c8fedd 80
81 void AddTrackCuts(const AliESDtrackCuts *cuts) {
82 delete fESDTrackCuts;
83 fESDTrackCuts=new AliESDtrackCuts(*cuts);
84 return;
85 }
53454b81 86
8c2d7467 87 void AddDescription(TString description){fDescription=description;}
88
bce70c96 89 //setters
90 //event pool settings
91 void SetMaxNEventsInPool(Int_t events){fPoolMaxNEvents=events;}
92 void SetMinNTracksInPool(Int_t tracks){fPoolMinNTracks=tracks;}
93 void SetMinEventsToMix(Int_t events){fMinEventsToMix=events;}
14c8fedd 94
bce70c96 95 void SetNofPoolBins(Int_t Nzvtxbins, Int_t Ncentbins){
96 fNzVtxBins=Nzvtxbins;
97 fNzVtxBinsDim=Nzvtxbins+1;
98
99 fNCentBins=Ncentbins;
100 fNCentBinsDim=Ncentbins+1;
101 }
102
103 void SetPoolBins(Double_t *ZvtxBins, Double_t* CentBins){
104 fZvtxBins=ZvtxBins;
105 fCentBins=CentBins;
106 }
53454b81 107
108 // set MC events to process
109
110 void SetNofMCEventTypes(Int_t k) {fNofMCEventType=k;}
111 void SetMCEventTypes(Int_t *MCEventTypeArray);
112
bce70c96 113 //cut settings
14c8fedd 114 void SetAODTrackCuts(Float_t *cutsarray);
115 void SetTrackCutsNames(/*TString *namearray*/);
116 void SetAODvZeroCuts(Float_t *cutsarray);
117 void SetvZeroCutsNames(/*TString *namearray*/);
118 void SetPidHF(AliAODPidHF* pid) {fPidObj = pid; return;}
c84dbedf 119 void SetCharge(Short_t charge) {fCharge = charge;}
120 void SetFilterBit(Int_t bit) {fBit = bit;}
9f6aafff 121 void Print(Option_t *option) const;
122 virtual void PrintAll() const;
123 virtual void PrintPoolParameters() const;
124 virtual void PrintSelectedMCevents() const;
53454b81 125
14c8fedd 126
127
128
129 void SetNVarsTrack(Int_t nVars){fNTrackCuts=nVars;}
130 void SetNVarsVzero(Int_t nVars){fNvZeroCuts=nVars;}
131
53454b81 132
133
14c8fedd 134private:
14c8fedd 135 AliESDtrackCuts *fESDTrackCuts; // track cut object
136 AliAODPidHF * fPidObj; /// PID object
bce70c96 137
138 Int_t fPoolMaxNEvents; // set maximum number of events in the pool
139 Int_t fPoolMinNTracks; // se minimum number of tracks in the pool
140 Int_t fMinEventsToMix; // set the minimum number of events you wanna mix
141
142 Int_t fNzVtxBins; // number of z vrtx bins
143 Int_t fNzVtxBinsDim; // number of z vrtx bins +1 : necessary to initialize correctly the array
144 Double_t* fZvtxBins; // [fNzVtxBinsDim]
145
146
147 Int_t fNCentBins; //number of centrality bins
148 Int_t fNCentBinsDim; //number of centrality bins bins +1 : necessary to initialize correctly the array
149 Double_t* fCentBins; // [fNCentBinsDim]
150
53454b81 151 Int_t fNofMCEventType;// number of event types to be selected in MC simultaneously;
152 Int_t *fMCEventType;//[fNofMCEventType]
153
14c8fedd 154 Int_t fNTrackCuts; // array dimension
155 Float_t* fAODTrackCuts;//[fNTrackCuts]
156 TString * fTrackCutsNames;//[fNTrackCuts]
157 Int_t fNvZeroCuts;// array dimension
158 Float_t *fAODvZeroCuts;//[fNvZeroCuts]
159 TString * fvZeroCutsNames;//[fNvZeroCuts]
c84dbedf 160 Int_t fBit; // filterBit
161 Short_t fCharge; // charge (+1 or -1)
53454b81 162 TString fDescription; // additional description to the cuts
14c8fedd 163
164
53454b81 165 ClassDef(AliHFAssociatedTrackCuts,4);
14c8fedd 166};
167
168
169#endif