1 #ifndef ALIJETCORRELSELECTOR_H
2 #define ALIJETCORRELSELECTOR_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
7 //__________________________________________
8 // Class for user selections.
9 // Object is created by ConfigJetCorrel.C macro and passed to
10 // AddTaskJetCorrel.C running macro via the main class AliAnalysisTaskJetCorrel
11 //-- Author: Paul Constantin
13 #include "CorrelTrack.h"
14 #include "CorrelKFTrack.h"
15 #include "CorrelRecoParent.h"
16 #include "CorrelList.h"
18 class AliJetCorrelSelector : public TObject {
21 AliJetCorrelSelector();
22 ~AliJetCorrelSelector();
25 UInt_t PoolDepth() const {return fPoolDepth;}
26 UInt_t NoOfCorrel() const {return fNumCorrel;}
27 UInt_t* CorrelTypes() const {return fCorrelType;}
28 UInt_t NoOfBins(cBinType_t cType) const {return fNumBins[cType]-1;}
29 Float_t BinBorder(cBinType_t cType, UInt_t ii) const;
30 Float_t MinLowBin(cBinType_t cType) const {return fBinning[cType][0];}
31 Float_t MaxHighBin(cBinType_t cType) const {return fBinning[cType][fNumBins[cType]-1];}
32 Int_t GetBin(cBinType_t cType, Float_t val) const;
33 Bool_t GenQA() const {return fGenQA;}
34 Bool_t UseAliKF() const {return fUseAliKF;}
35 UInt_t DPhiNumBins() const {return fDPhiNumBins;}
36 UInt_t DEtaNumBins() const {return fDEtaNumBins;}
37 Float_t PoutBW() const {return fPoutBW;}
40 void SetPoolDepth(UInt_t v) {fPoolDepth=v;}
41 void SetCorrelTypes(UInt_t s, UInt_t * const v);
42 void SetBinningCentr(UInt_t s, Float_t * const v);
43 void SetBinningZvert(UInt_t s, Float_t * const v);
44 void SetBinningTrigg(UInt_t s, Float_t * const v);
45 void SetBinningAssoc(UInt_t s, Float_t * const v);
46 void SetTriggers(UInt_t s, TString * const v);
47 void SetITSRefit(Bool_t v) {fITSRefit=v;}
48 void SetTPCRefit(Bool_t v) {fTPCRefit=v;}
49 void SetTRDRefit(Bool_t v) {fTRDRefit=v;}
50 void SetMaxEta(Float_t v) {fMaxEta=v;}
51 void SetPoutBinWidth(Float_t v) {fPoutBW=v;}
52 void SetMaxITSChi2(Float_t v) {fMaxITSChi2=v;}
53 void SetMaxTPCChi2(Float_t v) {fMaxTPCChi2=v;}
54 void SetMinNClusITS(UInt_t v) {fMinNClusITS=v;}
55 void SetMinNClusTPC(UInt_t v) {fMinNClusTPC=v;}
56 void SetMaxNsigmaVtx(Float_t v) {fMaxNsigmaVtx=v;}
57 void SetMaxTrkVtx(Float_t v) {fMaxTrkVtx=v;}
58 void SetRejectKinkChild(Bool_t v) {fRejectKinkChild=v;}
59 void SetQA(Bool_t v) {fGenQA=v;}
60 void SetDPhiNumBins(UInt_t v) {fDPhiNumBins=v;}
61 void SetDEtaNumBins(UInt_t v) {fDEtaNumBins=v;}
62 void SetTrkProximityCut(Float_t v) {fTrkMinProx=v;}
63 void SetUseAliKF(Bool_t v) {fUseAliKF=v;}
65 Bool_t SelectedEvtTrigger(AliESDEvent * const jcESD) const;
66 Bool_t CloseTrackPair(Float_t dist) const;
67 Bool_t LowQualityTrack(AliESDtrack* t) const;
68 Bool_t PassPID(AliESDtrack* t, cPartType_t pType) const;
69 Float_t GetSigmaToVertex(AliESDtrack* trk) const;
70 void GetPID(AliESDtrack* trk, Stat_t& fpid, Stat_t& fweight) const;
72 enum {kMaxCorrel = 1}; // Maximum no of correlations
73 enum {kMaxVert = 3}; // Maximum no of vertex bins
74 enum {kMaxCent = 3}; // Maximum no of centrality bins
75 enum {kMaxTrig = 13}; // Maximum no of trigger bins
76 enum {kMaxAsso = 7}; // Maximum no of associated bins
79 // Generic Selections:
80 Bool_t fGenQA; //! generate QA histos
81 UInt_t fDPhiNumBins, fDEtaNumBins; //! number of bins in DeltaPhi, DeltaEta histos
82 UInt_t fNumCorrel, fNumEvtTriggs, fPoolDepth; //! number of correlations, event triggers, pool depth
83 UInt_t* fCorrelType; //! array of correlation types
84 TString* fEvtTriggs; //! array of event triggers
85 UInt_t fNumBins[4]; //! number of bins: centr, zvert, trigg, assoc
86 Float_t* fBinning[4]; //! bin margins: centr, zvert, trigg, assoc
88 Bool_t fITSRefit, fTPCRefit, fTRDRefit, fRejectKinkChild; //! on/off cuts
89 Float_t fMaxEta; //! single-particle eta cut
90 Float_t fPoutBW; //! Pout bin width
91 Float_t fMaxNsigmaVtx; //! track-primary vertex cut (sigma)
92 Float_t fMaxTrkVtx; //! track-primary vertex cut (value)
93 Float_t fMaxITSChi2, fMaxTPCChi2; //! ITS/TPC Chi2/cluster cut
94 UInt_t fMinNClusITS, fMinNClusTPC; //! ITS/TPC number of clusters cut
95 Float_t fTrkMinProx; //! two-track proximity cut (dist at TPC entrance)
96 Bool_t fUseAliKF; //! use AliKF or TLorentzVector for parent reconstruction
98 // disable (make private) copy constructor, and assignment operator:
99 AliJetCorrelSelector(const AliJetCorrelSelector&);
100 AliJetCorrelSelector& operator=(const AliJetCorrelSelector&);
102 ClassDef(AliJetCorrelSelector, 1); //AliJetCorrelSelector