1 /**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
16 // Task for impact parameter (DCA) analysis
17 // study DCA in rphi (xy) and z: resolution and pull
18 // For further information see implementation file
21 #ifndef ALIANALYSISTASKDCA_H
22 #define ALIANALYSISTASKDCA_H
23 #ifndef ALIANALYSISTASKSE_H
24 #include "AliAnalysisTaskSE.h"
33 class AliESDtrackCuts;
39 class AliVertexerTracks;
42 class AliHFEextraCuts;
45 class AliAnalysisTaskDCA : public AliAnalysisTaskSE{
59 kAODanalysis = BIT(20)
63 AliAnalysisTaskDCA(const char * name);
64 AliAnalysisTaskDCA(const AliAnalysisTaskDCA &ref);
65 AliAnalysisTaskDCA& operator=(const AliAnalysisTaskDCA &ref);
66 virtual ~AliAnalysisTaskDCA();
68 virtual void UserCreateOutputObjects();
69 virtual void UserExec(Option_t *);
70 virtual void Terminate(Option_t *);
73 void PrintStatus() const;
74 void Load(TString filename = "impactPar.root");
76 void SetHFECuts(AliHFEcuts * const cuts) { fCuts = cuts; };
78 void SetNclustersITS(Int_t nITSclusters){ fNclustersITS = nITSclusters;};
79 void SetMinPrimVtxContrib( Int_t nPrimVtxContrib){ fMinNprimVtxContrbutor = nPrimVtxContrib; };
81 Bool_t GetPlugin(Int_t plug) const { return TESTBIT(fPlugins, plug); };
82 void SwitchOnPlugin(Int_t plug);
84 Bool_t IsAODanalysis() const { return TestBit(kAODanalysis); };
85 Bool_t IsESDanalysis() const { return !TestBit(kAODanalysis); };
86 Bool_t HasMCData() const { return TestBit(kHasMCdata); }
87 void SetHasMCData(Bool_t hasMC = kTRUE) { SetBit(kHasMCdata, hasMC); };
89 void SetPIDdetectors(Char_t * const detectors){ fPIDdetectors = detectors; }
90 void SetPIDStrategy(UInt_t strategy) { fPIDstrategy = strategy; }
91 void AddPIDdetector(TString detector);
93 void SetAODAnalysis() { SetBit(kAODanalysis, kTRUE); };
94 void SetESDAnalysis() { SetBit(kAODanalysis, kFALSE); };
99 void MakeParticleContainer();
100 void ProcessDcaAnalysis();
102 UShort_t fPlugins; // Enabled Plugins
103 AliHFEcuts *fCuts; // Cut Collection
105 AliESDpid *fDefaultPID; //! Default ESD PID
106 AliHFEpid *fHFEpid; //! PID
107 TString fPIDdetectors; // Detectors for Particle Identification
108 UInt_t fPIDstrategy; // PID Strategy
110 AliCFManager *fCFM; //! Correction Framework Manager
111 AliHFEdca *fDCA; // fDCA
113 Int_t fNclustersITS; // ITS clusters
114 Int_t fMinNprimVtxContrbutor; // minimum number of primary contributors
116 TH1I *fNEvents; //! counter for the number of Events
117 TList *fResidualList; //! histograms for the residuals
118 TList *fPullList; //! histograms for the pull
119 TList *fDcaList; //! histograms for the dca
120 TList *fKfDcaList; //! histograms for the kf dca
121 TList *fMcVertexList; //! histograms for the MC vertex
122 TList *fDataDcaList; //! histograms for the data dca
123 TList *fDataVertexList; //! histograms for the data vertex
124 TList *fDataPullList; //! histograms for the data pull
125 TList *fMcPidList; //! pid - MC: ESD combined pid
126 TList *fDataPidList; //! pid -Data: ESD combined pid
128 TList *fHfeDcaList; //! hfe pid: mc dca
129 TList *fHfeDataDcaList; //! hfe pid: data dca
131 TList *fOutput; //! Container for Task Output
133 ClassDef(AliAnalysisTaskDCA, 1); // The DCA Analysis Task