1 #ifndef ALIFMDANALYSISTASKSHARING_H
2 #define ALIFMDANALYSISTASKSHARING_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice
8 #include "AliAnalysisTask.h"
10 #include "AliESDFMD.h"
12 #include "AliESDEvent.h"
13 #include "AliFMDFloatMap.h"
19 * Do the sharing correction.
24 class AliFMDAnalysisTaskSharing : public AliAnalysisTask
27 AliFMDAnalysisTaskSharing();
28 AliFMDAnalysisTaskSharing(const char* name, Bool_t SE = kTRUE);
29 virtual ~AliFMDAnalysisTaskSharing() {;}
30 AliFMDAnalysisTaskSharing(const AliFMDAnalysisTaskSharing& o) : AliAnalysisTask(),
34 foutputESDFMD(o.foutputESDFMD),
35 fSharedThis(o.fSharedThis),
36 fSharedPrev(o.fSharedPrev),
38 fStandalone(o.fStandalone),
39 fEsdVertex(o.fEsdVertex),
41 fLastTrackByStrip(o.fLastTrackByStrip),
42 fLastOrbit(o.fLastOrbit) {}
43 AliFMDAnalysisTaskSharing& operator=(const AliFMDAnalysisTaskSharing&) { return *this; }
45 // Implementation of interface methods
46 virtual void ConnectInputData(Option_t *option = "");
47 virtual void CreateOutputObjects();
48 virtual void Init() {}
49 virtual void LocalInit() {Init();}
50 virtual void Exec(Option_t */*option*/);
51 virtual void Terminate(Option_t* /* option*/);
52 virtual void SetDebugLevel(Int_t level) {fDebug = level;}
53 Float_t GetMultiplicityOfStrip(Float_t mult, Float_t eta, Float_t Eprev, Float_t Enext, UShort_t det, Char_t ring, UShort_t sec, UShort_t strip);
54 // void GetVertex(Double_t* vertexXYZ) ;
55 void SetFMDData(AliESDFMD* fmd) {foutputESDFMD = fmd;}
56 void SetOutputList(TList* outlist) {fDiagList = outlist;}
57 void SetVertex(AliESDVertex* vertex) {fEsdVertex = vertex;}
58 void SetInputESD(AliESDEvent* esd) {fESD = esd;}
59 Bool_t GetEventStatus() const {return fStatus;}
60 Float_t GetVtxEfficiencyFromData() ;
62 Float_t Eta2Theta(Float_t eta) const ;
63 Double_t EtaFromStrip(UShort_t det, Char_t ring, UShort_t sector, UShort_t strip, Double_t zvtx);
64 void ProcessPrimary();
66 Int_t fDebug; // Debug flag
67 AliESDEvent* fESD; //! ESD
68 // AliESDEvent fOutputESD;
69 AliESDFMD* foutputESDFMD; // the output ESDFMD object
72 Bool_t fSharedThis; // was this strip shared?
73 Bool_t fSharedPrev; // was the previous strip shared?
74 TList* fDiagList; // list of diag histos
75 Bool_t fStandalone; // do we run standalone or in SE task
76 AliESDVertex* fEsdVertex; // vtx info from the ESD
77 Bool_t fStatus; // event status
78 AliFMDFloatMap fLastTrackByStrip; // the last track to hit this strip
81 ClassDef(AliFMDAnalysisTaskSharing, 0); // Analysis task for FMD analysis