#ifndef ALIANALYSISTASKPIDV0BASE_H
#define ALIANALYSISTASKPIDV0BASE_H
class TF1;
class TRandom3;
class TObjArray;
class AliVEvent;
class AliESDEvent;
class AliMCEvent;
class AliPIDResponse;
class AliESDv0KineCuts;
class AliPID;
class AliAnalysisFilter;
class AliVTrack;
#include <TTreeStream.h>
#include "AliInputEventHandler.h"
#include "AliTOFPIDResponse.h"
#include "AliAnalysisTaskSE.h"
#include "AliAnalysisUtils.h"
class AliAnalysisTaskPIDV0base : public AliAnalysisTaskSE {
public:
enum PileUpRejectionType { kPileUpRejectionOff = 0, kPileUpRejectionSPD = 1, kPileUpRejectionMV = 2 };
enum TPCcutType { kNoCut = 0, kTPCCutMIGeo = 1, kTPCnclCut = 2 };
AliAnalysisTaskPIDV0base();
AliAnalysisTaskPIDV0base(const char *name);
virtual ~AliAnalysisTaskPIDV0base();
virtual void UserCreateOutputObjects();
virtual void UserExec(Option_t *option);
virtual void Terminate(const Option_t*);
virtual Bool_t GetVertexIsOk(AliVEvent* event, Bool_t doVtxZcut = kTRUE) const;
virtual Bool_t GetIsPileUp(AliVEvent* event, PileUpRejectionType pileUpRejectionType) const;
virtual Bool_t GetIsPbpOrpPb() const { return fIsPbpOrpPb; };
virtual void SetIsPbpOrpPb(Bool_t newValue) { fIsPbpOrpPb = newValue; };
virtual Double_t GetZvtxCutEvent() const { return fZvtxCutEvent; };
virtual void SetZvtxCutEvent(Double_t newValue) { fZvtxCutEvent = newValue; if (fAnaUtils) fAnaUtils->SetMaxVtxZ(fZvtxCutEvent);};
virtual Bool_t GetUsePhiCut() const { return fUsePhiCut; };
virtual void SetUsePhiCut(Bool_t newValue) { fUsePhiCut = newValue; };
virtual TPCcutType GetTPCcutType() const { return fTPCcutType; };
virtual Bool_t GetUseTPCCutMIGeo() const { return (fTPCcutType == kTPCCutMIGeo); };
virtual Bool_t GetUseTPCnclCut() const { return (fTPCcutType == kTPCnclCut); };
virtual void SetTPCcutType(TPCcutType newType) { fTPCcutType = newType; };
virtual Double_t GetEtaCut() const { return fEtaCut; };
virtual void SetEtaCut(Double_t etaCut){ fEtaCut = etaCut; };
virtual const AliAnalysisFilter* GetTrackFilter() const { return fTrackFilter; };
virtual void SetTrackFilter(AliAnalysisFilter* trackF) {fTrackFilter = trackF;}
virtual Char_t GetV0tag(Int_t trackIndex) const;
virtual Bool_t GetStoreMotherIndex() const { return fStoreMotherIndex; };
virtual void SetStoreMotherIndex(Bool_t newValue) { fStoreMotherIndex = newValue; };
virtual Int_t GetV0motherIndex(Int_t trackIndex) const;
virtual Double_t GetPhiPrime(Double_t phi, Double_t magField, Int_t charge) const;
virtual Bool_t PhiPrimeCut(const AliVTrack* track, Double_t magField) const;
virtual Bool_t PhiPrimeCut(Double_t trackPt, Double_t trackPhi, Short_t trackCharge, Double_t magField) const;
virtual Float_t GetDeltaTOF(const AliVTrack *track, const AliTOFPIDResponse* tofPIDresponse, const Double_t* times,
AliPID::EParticleType type) const;
static Double_t GetCutGeo() { return fgCutGeo; };
static Double_t GetCutNcr() { return fgCutNcr; };
static Double_t GetCutNcl() { return fgCutNcl; };
static void SetCutGeo(Double_t value) { fgCutGeo = value; };
static void SetCutNcr(Double_t value) { fgCutNcr = value; };
static void SetCutNcl(Double_t value) { fgCutNcl = value; };
static Bool_t TPCCutMIGeo(const AliVTrack* track, const AliVEvent* evt, TTreeStream* streamer = 0x0);
static Bool_t TPCCutMIGeo(const AliVTrack* track, const AliInputEventHandler* evtHandler, TTreeStream* streamer = 0x0)
{ if (!evtHandler) return kFALSE; return TPCCutMIGeo(track, evtHandler->GetEvent(), streamer); };
static UShort_t GetCutPureNcl() { return fgCutPureNcl; };
static void SetCutPureNcl(UShort_t value) { fgCutPureNcl = value; };
static Bool_t TPCnclCut(const AliVTrack* track);
protected:
void FillV0PIDlist(AliESDEvent* esdEvent = 0x0);
void ClearV0PIDlist();
static Double_t fgCutGeo;
static Double_t fgCutNcr;
static Double_t fgCutNcl;
static UShort_t fgCutPureNcl;
AliVEvent *fEvent;
AliESDEvent *fESD;
AliMCEvent *fMC;
AliPIDResponse *fPIDResponse;
AliESDv0KineCuts *fV0KineCuts;
AliAnalysisUtils *fAnaUtils;
Bool_t fIsPbpOrpPb;
Bool_t fUsePhiCut;
TPCcutType fTPCcutType;
Double_t fZvtxCutEvent;
Double_t fEtaCut;
TF1* fPhiCutLow;
TF1* fPhiCutHigh;
TRandom3* fRandom;
AliAnalysisFilter* fTrackFilter;
Int_t fNumTagsStored;
Char_t* fV0tags;
Bool_t fStoreMotherIndex;
Int_t* fV0motherIndex;
private:
AliAnalysisTaskPIDV0base(const AliAnalysisTaskPIDV0base&);
AliAnalysisTaskPIDV0base& operator=(const AliAnalysisTaskPIDV0base&);
ClassDef(AliAnalysisTaskPIDV0base, 3);
};
inline Float_t AliAnalysisTaskPIDV0base::GetDeltaTOF(const AliVTrack *track, const AliTOFPIDResponse* tofPIDresponse,
const Double_t* times, AliPID::EParticleType type) const
{
return (track->GetTOFsignal() - tofPIDresponse->GetStartTime(track->P()) - times[type]);
}
#endif
AliAnalysisTaskPIDV0base.h:1 AliAnalysisTaskPIDV0base.h:2 AliAnalysisTaskPIDV0base.h:3 AliAnalysisTaskPIDV0base.h:4 AliAnalysisTaskPIDV0base.h:5 AliAnalysisTaskPIDV0base.h:6 AliAnalysisTaskPIDV0base.h:7 AliAnalysisTaskPIDV0base.h:8 AliAnalysisTaskPIDV0base.h:9 AliAnalysisTaskPIDV0base.h:10 AliAnalysisTaskPIDV0base.h:11 AliAnalysisTaskPIDV0base.h:12 AliAnalysisTaskPIDV0base.h:13 AliAnalysisTaskPIDV0base.h:14 AliAnalysisTaskPIDV0base.h:15 AliAnalysisTaskPIDV0base.h:16 AliAnalysisTaskPIDV0base.h:17 AliAnalysisTaskPIDV0base.h:18 AliAnalysisTaskPIDV0base.h:19 AliAnalysisTaskPIDV0base.h:20 AliAnalysisTaskPIDV0base.h:21 AliAnalysisTaskPIDV0base.h:22 AliAnalysisTaskPIDV0base.h:23 AliAnalysisTaskPIDV0base.h:24 AliAnalysisTaskPIDV0base.h:25 AliAnalysisTaskPIDV0base.h:26 AliAnalysisTaskPIDV0base.h:27 AliAnalysisTaskPIDV0base.h:28 AliAnalysisTaskPIDV0base.h:29 AliAnalysisTaskPIDV0base.h:30 AliAnalysisTaskPIDV0base.h:31 AliAnalysisTaskPIDV0base.h:32 AliAnalysisTaskPIDV0base.h:33 AliAnalysisTaskPIDV0base.h:34 AliAnalysisTaskPIDV0base.h:35 AliAnalysisTaskPIDV0base.h:36 AliAnalysisTaskPIDV0base.h:37 AliAnalysisTaskPIDV0base.h:38 AliAnalysisTaskPIDV0base.h:39 AliAnalysisTaskPIDV0base.h:40 AliAnalysisTaskPIDV0base.h:41 AliAnalysisTaskPIDV0base.h:42 AliAnalysisTaskPIDV0base.h:43 AliAnalysisTaskPIDV0base.h:44 AliAnalysisTaskPIDV0base.h:45 AliAnalysisTaskPIDV0base.h:46 AliAnalysisTaskPIDV0base.h:47 AliAnalysisTaskPIDV0base.h:48 AliAnalysisTaskPIDV0base.h:49 AliAnalysisTaskPIDV0base.h:50 AliAnalysisTaskPIDV0base.h:51 AliAnalysisTaskPIDV0base.h:52 AliAnalysisTaskPIDV0base.h:53 AliAnalysisTaskPIDV0base.h:54 AliAnalysisTaskPIDV0base.h:55 AliAnalysisTaskPIDV0base.h:56 AliAnalysisTaskPIDV0base.h:57 AliAnalysisTaskPIDV0base.h:58 AliAnalysisTaskPIDV0base.h:59 AliAnalysisTaskPIDV0base.h:60 AliAnalysisTaskPIDV0base.h:61 AliAnalysisTaskPIDV0base.h:62 AliAnalysisTaskPIDV0base.h:63 AliAnalysisTaskPIDV0base.h:64 AliAnalysisTaskPIDV0base.h:65 AliAnalysisTaskPIDV0base.h:66 AliAnalysisTaskPIDV0base.h:67 AliAnalysisTaskPIDV0base.h:68 AliAnalysisTaskPIDV0base.h:69 AliAnalysisTaskPIDV0base.h:70 AliAnalysisTaskPIDV0base.h:71 AliAnalysisTaskPIDV0base.h:72 AliAnalysisTaskPIDV0base.h:73 AliAnalysisTaskPIDV0base.h:74 AliAnalysisTaskPIDV0base.h:75 AliAnalysisTaskPIDV0base.h:76 AliAnalysisTaskPIDV0base.h:77 AliAnalysisTaskPIDV0base.h:78 AliAnalysisTaskPIDV0base.h:79 AliAnalysisTaskPIDV0base.h:80 AliAnalysisTaskPIDV0base.h:81 AliAnalysisTaskPIDV0base.h:82 AliAnalysisTaskPIDV0base.h:83 AliAnalysisTaskPIDV0base.h:84 AliAnalysisTaskPIDV0base.h:85 AliAnalysisTaskPIDV0base.h:86 AliAnalysisTaskPIDV0base.h:87 AliAnalysisTaskPIDV0base.h:88 AliAnalysisTaskPIDV0base.h:89 AliAnalysisTaskPIDV0base.h:90 AliAnalysisTaskPIDV0base.h:91 AliAnalysisTaskPIDV0base.h:92 AliAnalysisTaskPIDV0base.h:93 AliAnalysisTaskPIDV0base.h:94 AliAnalysisTaskPIDV0base.h:95 AliAnalysisTaskPIDV0base.h:96 AliAnalysisTaskPIDV0base.h:97 AliAnalysisTaskPIDV0base.h:98 AliAnalysisTaskPIDV0base.h:99 AliAnalysisTaskPIDV0base.h:100 AliAnalysisTaskPIDV0base.h:101 AliAnalysisTaskPIDV0base.h:102 AliAnalysisTaskPIDV0base.h:103 AliAnalysisTaskPIDV0base.h:104 AliAnalysisTaskPIDV0base.h:105 AliAnalysisTaskPIDV0base.h:106 AliAnalysisTaskPIDV0base.h:107 AliAnalysisTaskPIDV0base.h:108 AliAnalysisTaskPIDV0base.h:109 AliAnalysisTaskPIDV0base.h:110 AliAnalysisTaskPIDV0base.h:111 AliAnalysisTaskPIDV0base.h:112 AliAnalysisTaskPIDV0base.h:113 AliAnalysisTaskPIDV0base.h:114 AliAnalysisTaskPIDV0base.h:115 AliAnalysisTaskPIDV0base.h:116 AliAnalysisTaskPIDV0base.h:117 AliAnalysisTaskPIDV0base.h:118 AliAnalysisTaskPIDV0base.h:119 AliAnalysisTaskPIDV0base.h:120 AliAnalysisTaskPIDV0base.h:121 AliAnalysisTaskPIDV0base.h:122 AliAnalysisTaskPIDV0base.h:123 AliAnalysisTaskPIDV0base.h:124 AliAnalysisTaskPIDV0base.h:125 AliAnalysisTaskPIDV0base.h:126 AliAnalysisTaskPIDV0base.h:127 AliAnalysisTaskPIDV0base.h:128 AliAnalysisTaskPIDV0base.h:129 AliAnalysisTaskPIDV0base.h:130 AliAnalysisTaskPIDV0base.h:131 AliAnalysisTaskPIDV0base.h:132 AliAnalysisTaskPIDV0base.h:133 AliAnalysisTaskPIDV0base.h:134 AliAnalysisTaskPIDV0base.h:135 AliAnalysisTaskPIDV0base.h:136 AliAnalysisTaskPIDV0base.h:137 AliAnalysisTaskPIDV0base.h:138 AliAnalysisTaskPIDV0base.h:139 AliAnalysisTaskPIDV0base.h:140 AliAnalysisTaskPIDV0base.h:141 AliAnalysisTaskPIDV0base.h:142 AliAnalysisTaskPIDV0base.h:143 AliAnalysisTaskPIDV0base.h:144 AliAnalysisTaskPIDV0base.h:145 AliAnalysisTaskPIDV0base.h:146 AliAnalysisTaskPIDV0base.h:147 AliAnalysisTaskPIDV0base.h:148 AliAnalysisTaskPIDV0base.h:149 AliAnalysisTaskPIDV0base.h:150 AliAnalysisTaskPIDV0base.h:151 AliAnalysisTaskPIDV0base.h:152 AliAnalysisTaskPIDV0base.h:153