Fix for coverity (AdC)
[u/mrichter/AliRoot.git] / PWGPP / global / AliAnalysisTaskVertexESD.h
CommitLineData
388ca814 1#ifndef AliAnalysisTaskVertexESD_cxx
2#define AliAnalysisTaskVertexESD_cxx
3
4/* Copyright(c) 1998-2009, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
6
7//*************************************************************************
8// Class AliAnalysisTaskVertexESD
9// AliAnalysisTask to extract from ESD the information for the analysis
10// of the primary vertex reconstruction efficiency and resolution
11// (for MC events) and distributions (for real data). Three vertices:
12// - SPD tracklets
13// - ITS+TPC tracks
14// - TPC-only tracks
15//
16// Author: A.Dainese, andrea.dainese@pd.infn.it
17//*************************************************************************
18
19class TNtuple;
8e74e9cf 20class TH1F;
388ca814 21class TH2F;
22class AliESDEvent;
388ca814 23class AliESDVertex;
65602ad2 24class AliVEvent;
388ca814 25
74917c1f 26#include "AliAnalysisTaskSE.h"
388ca814 27
74917c1f 28class AliAnalysisTaskVertexESD : public AliAnalysisTaskSE
388ca814 29{
30 public:
31
32 AliAnalysisTaskVertexESD(const char *name = "AliAnalysisTaskVertexESD");
33 virtual ~AliAnalysisTaskVertexESD();
34
74917c1f 35 virtual void UserCreateOutputObjects();
36 virtual void UserExec(Option_t *option);
388ca814 37 virtual void Terminate(Option_t *);
4148ee5b 38 void SetCheckEventType(Bool_t check=kTRUE) {fCheckEventType=check;}
388ca814 39 Bool_t GetReadMC() const { return fReadMC; }
4148ee5b 40 void SetReadMC(Bool_t flag=kTRUE) { fReadMC=flag; if(flag) fCheckEventType=kFALSE;}
fb5f0fd9 41 void SetRerecoVertexTPC(Bool_t flag=kTRUE) { fRecoVtxTPC=flag; }
42 void SetRerecoVertexITSTPC(Bool_t flag=kTRUE) { fRecoVtxITSTPC=flag; }
64d0fccb 43 void SetRerecoVertexITSTPCHalfEvent(Bool_t flag=kTRUE) { fRecoVtxITSTPCHalfEvent=flag; }
cb393b39 44 void SetOnlyITSTPCTracks() {fOnlyITSTPCTracks=kTRUE;}
45 void SetOnlyITSSATracks() {fOnlyITSSATracks=kTRUE;}
b588553c 46 void SetFillNtuple(Bool_t fill=kTRUE) {fFillNtuple=fill;}
4f0574ad 47 void SetFillNtupleBeamSpot(Bool_t fillBeamSpot=kFALSE){fFillTreeBeamSpot = fillBeamSpot;}
65602ad2 48 void SetTriggerType(AliVEvent::EOfflineTriggerTypes triggerType) {fTriggerType = triggerType;}
b588553c 49
388ca814 50 protected:
4148ee5b 51 Bool_t fCheckEventType; // read only events of type 7
388ca814 52 Bool_t fReadMC; // read Monte Carlo
94f15f9b 53 Bool_t fRecoVtxTPC; // reco TPC vertex on the flight
54 Bool_t fRecoVtxITSTPC; // reco ITS+TPC vertex on the flight
4d95fd6c 55 Bool_t fRecoVtxITSTPCHalfEvent; // reco ITS+TPC vertex with even and odd tracks
cb393b39 56 Bool_t fOnlyITSTPCTracks; // only ITS-TPC tracks to redo ITSTPC vertex
57 Bool_t fOnlyITSSATracks; // only ITS-SA tracks to redo ITSTPC vertex
4f0574ad 58 Bool_t fFillNtuple; // fill ntuple
59 Bool_t fFillTreeBeamSpot; //beam spot info in a tree
388ca814 60 AliESDEvent *fESD; // ESD object
388ca814 61 TList *fOutput; //! list send on output slot 0
62 TNtuple *fNtupleVertexESD;//! output ntuple
b588553c 63 TH1F *fhSPDVertexX; //! output histo
64 TH1F *fhSPDVertexY; //! output histo
65 TH1F *fhSPDVertexZ; //! output histo
9f076c54 66 TH1F *fhSPDVertexZonly; //! output histo
b588553c 67 TH1F *fhTRKVertexX; //! output histo
68 TH1F *fhTRKVertexY; //! output histo
69 TH1F *fhTRKVertexZ; //! output histo
70 TH1F *fhTPCVertexX; //! output histo
71 TH1F *fhTPCVertexY; //! output histo
72 TH1F *fhTPCVertexZ; //! output histo
388ca814 73 TH2F *fhTrackRefs; //! output histo
4f0574ad 74 TTree *fTreeBeamSpot; //! output tree beam spot
388ca814 75
a874bb01 76 TH1F *fhTriggeredTrklets; //! output histo
77 TH1F *fhSPD3DTrklets; //! output histo
78 TH1F *fhSPDZTrklets; //! output histo
79 TH1F *fhTRKTrklets; //! output histo
80 TH1F *fhTRKcTrklets; //! output histo
81 TH1F *fhTRKncTrklets; //! output histo
d0bbaf02 82 TH1F *fhTPCTrklets; //! output histo
83 TH1F *fhTPCcTrklets; //! output histo
84 TH1F *fhTPCncTrklets; //! output histo
a874bb01 85 TH1F *fhSPD3DZreco; //! output histo
86 TH1F *fhSPDZZreco; //! output histo
87
88
89 TH1F *fhSPDVertexXPile; //! output histo
90 TH1F *fhSPDVertexYPile; //! output histo
91 TH1F *fhSPDVertexZPile; //! output histo
8d3b93cb 92 TH1F *fhSPDVertexDiffZPileContr2; //! output histo
93 TH1F *fhSPDVertexDiffZPileContr3; //! output histo
94 TH1F *fhSPDVertexDiffZPileContr4; //! output histo
95 TH1F *fhSPDVertexDiffZPileContr5; //! output histo
68d70d53 96 TH1F *fhSPDVertexDiffZPileDefault; //! output histo
a874bb01 97 TH1F *fhSPDContributorsPile; //! output histo
98 TH2F *fhSPDDispContributors; //! output histo
65602ad2 99 AliVEvent::EOfflineTriggerTypes fTriggerType; //flag to set trigger type
9f076c54 100
101 TH2F *fhntrksSPDvsSPDcls;//! output histo correlation contributors vs number of clustrers spd
102 TH2F *fhntrksZvsSPDcls; //! output histo correlation contributors vs number of clustrers spd
a874bb01 103
388ca814 104 private:
105
106 AliAnalysisTaskVertexESD(const AliAnalysisTaskVertexESD&); // not implemented
107 AliAnalysisTaskVertexESD& operator=(const AliAnalysisTaskVertexESD&); // not implemented
8c7764e0 108 AliESDVertex* ReconstructPrimaryVertexTPC(Bool_t constr=kFALSE) const;
4d95fd6c 109 AliESDVertex* ReconstructPrimaryVertexITSTPC(Bool_t constr=kFALSE,Int_t mode=0) const;
388ca814 110
9f076c54 111 ClassDef(AliAnalysisTaskVertexESD,11); // primary vertex analysis
388ca814 112};
113
114#endif