]> git.uio.no Git - u/mrichter/AliRoot.git/blob - FMD/analysis/AliFMDAnalysisTaskSharing.h
Adding new macro, loadFromOCDB.C, for loading magnetic field, mapping and
[u/mrichter/AliRoot.git] / FMD / 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 #include "AliAnalysisTask.h"
8 #include "TH1F.h"
9 #include "TObjString.h"
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       fEnergy(o.fEnergy),
36       fNstrips(o.fNstrips),
37       fSharedThis(o.fSharedThis),
38       fSharedPrev(o.fSharedPrev),
39       fDiagList(),
40       fStandalone(o.fStandalone),
41       fEsdVertex(o.fEsdVertex),
42       fStatus(o.fStatus)   {}
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() {return fStatus;}
60  private:
61     Float_t Eta2Theta(Float_t eta);
62     Double_t EtaFromStrip(UShort_t det, Char_t ring, UShort_t sector, UShort_t strip, Double_t zvtx);
63     void ProcessPrimary();
64     
65     Int_t         fDebug;        //  Debug flag
66     AliESDEvent*  fESD;          //! ESD
67     // AliESDEvent   fOutputESD;
68     AliESDFMD*    foutputESDFMD;
69     Float_t       fEnergy;
70     Int_t         fNstrips;
71     Bool_t        fSharedThis;
72     Bool_t        fSharedPrev;
73     TList*        fDiagList;
74     Bool_t        fStandalone;
75     AliESDVertex* fEsdVertex;
76     Bool_t        fStatus;
77     AliFMDFloatMap fLastTrackByStrip;
78     
79     ClassDef(AliFMDAnalysisTaskSharing, 0); // Analysis task for FMD analysis
80 };
81  
82 #endif
83 // Local Variables:
84 //  mode: C++
85 // End Variables;