]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/FORWARD/analysis/AliFMDAnalysisTaskSharing.h
A few upgrades plus files missing from previous commit
[u/mrichter/AliRoot.git] / PWG2 / FORWARD / analysis / AliFMDAnalysisTaskSharing.h
1 #ifndef ALIFMDANALYSISTASKSHARING_H
2 #define ALIFMDANALYSISTASKSHARING_H
3  
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               
6  **/
7  
8 #include "AliAnalysisTask.h"
9
10 #include "AliESDFMD.h"
11 //#include "TTree.h"
12 #include "AliESDEvent.h"
13 #include "AliFMDFloatMap.h"
14 class TChain;
15 class AliAODEvent;
16 class AliESDVertex;
17
18 /**
19  * Do the sharing correction. 
20  * @ingroup FMD_ana
21  * 
22  * 
23  */
24 class AliFMDAnalysisTaskSharing : public AliAnalysisTask
25 {
26  public:
27     AliFMDAnalysisTaskSharing();
28     AliFMDAnalysisTaskSharing(const char* name, Bool_t SE = kTRUE);
29     virtual ~AliFMDAnalysisTaskSharing() {;}
30  AliFMDAnalysisTaskSharing(const AliFMDAnalysisTaskSharing& o) : AliAnalysisTask(),
31       fDebug(o.fDebug),
32       fESD(o.fESD),
33       // fOutputESD(),
34       foutputESDFMD(o.foutputESDFMD),
35       fSharedThis(o.fSharedThis),
36       fSharedPrev(o.fSharedPrev),
37       fDiagList(),
38       fStandalone(o.fStandalone),
39       fEsdVertex(o.fEsdVertex),
40       fStatus(o.fStatus),
41       fLastTrackByStrip(o.fLastTrackByStrip),
42       fLastOrbit(o.fLastOrbit) {}
43     AliFMDAnalysisTaskSharing& operator=(const AliFMDAnalysisTaskSharing&) { return *this; }
44     
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() ;
61  private:
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();
65     
66     Int_t         fDebug;        //  Debug flag
67     AliESDEvent*  fESD;          //! ESD
68     // AliESDEvent   fOutputESD;
69     AliESDFMD*    foutputESDFMD; // the output ESDFMD object
70     // Float_t       fEnergy;       
71     // Int_t         fNstrips;
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
79     UInt_t          fLastOrbit;
80     
81     ClassDef(AliFMDAnalysisTaskSharing, 0); // Analysis task for FMD analysis
82 };
83  
84 #endif
85 // Local Variables:
86 //  mode: C++
87 // End Variables;