]>
Commit | Line | Data |
---|---|---|
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 | ||
19 | class TNtuple; | |
8e74e9cf | 20 | class TH1F; |
388ca814 | 21 | class TH2F; |
22 | class AliESDEvent; | |
388ca814 | 23 | class AliESDVertex; |
65602ad2 | 24 | class AliVEvent; |
388ca814 | 25 | |
74917c1f | 26 | #include "AliAnalysisTaskSE.h" |
388ca814 | 27 | |
74917c1f | 28 | class 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 |