]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGCF/EBYE/LRC/AliLRCBase.h
major update in LRC code (Igor Altsybeev <Igor.Altsybeev@cern.ch>)
[u/mrichter/AliRoot.git] / PWGCF / EBYE / LRC / AliLRCBase.h
1 //-------------------------------------------------------------------------\r
2 //    Description: \r
3 //    This class is abstact (interface) base class for different classes \r
4 //    used for track-by-track data analysis in AliAnalysisTaskLRC\r
5 //    Origin: Andrey Ivanov (SPbSU-CERN) anivanov@cern.ch, \r
6 //    Igor Altsybeev (SPbSU-CERN) \r
7 //-------------------------------------------------------------------------\r
8 /*  See cxx source for full Copyright notice */\r
9 \r
10 #ifndef ALILRCBASE_H\r
11 #define ALILRCBASE_H\r
12 \r
13 #include <TObject.h>\r
14 \r
15 \r
16 \r
17 // Include\r
18 class TList;\r
19 class AliLRCBase: public TObject\r
20 {\r
21 public: \r
22         /*enum LRCparticleType\r
23         {\r
24                 kLRCany = -1,\r
25                 kLRCother = 0,\r
26                 kLRCelectron,\r
27                 kLRCmuon,\r
28                 kLRCpion,\r
29                 kLRCkaon,\r
30                 kLRCproton,             \r
31         };\r
32                 \r
33         enum LRCpidFillCondition\r
34         {\r
35                 kLRCpidIgnored,\r
36                 kLRCpidForBackwardOnly,\r
37                 kLRCpidForForwardOnly,\r
38                 kLRCpidForBoth,\r
39         };*/\r
40 \r
41 \r
42     // Constructors\r
43     AliLRCBase(): TObject() {}; // Constructor\r
44 \r
45     // Destructor\r
46     virtual ~AliLRCBase(){};\r
47 \r
48     virtual Bool_t InitDataMembers() = 0; //Is to be called in CreateOutputObjects method\r
49 \r
50     // Setters\r
51     virtual  void SetOutputSlotNumber(Int_t SlotNumber) = 0; // Sets number of output slot for LRCProcessor\r
52     //  virtual  void SetPrintInfo( Bool_t _flagPrintInfo )  = 0; // Print info flag\r
53 \r
54     // Getters\r
55     virtual void GetETAWindows(Double_t &_StartForwardETA,Double_t &_EndForwardETA,Double_t &_StartBakwardETA,Double_t &_EndBakwardETA) = 0;\r
56     virtual void GetPhiWindows(Double_t &_StartForwardPhi,Double_t &_EndForwardPhi,Double_t &_StartBakwardPhi,Double_t &_EndBakwardPhi) = 0;\r
57     virtual TList* CreateOutput() const         = 0 ; // Creates output object\r
58     virtual TString GetShortDef() const         = 0  ; // Returns fShortDef value\r
59     virtual Int_t GetOutputSlotNumber() const = 0 ; // Returns number of output slot for LRCProcessor\r
60 \r
61     // Track by track event import\r
62     virtual void StartEvent()   = 0;  // Open new Event for track by track event import\r
63     virtual void FinishEvent(Bool_t kDontCount = kFALSE)        = 0; // Close opened event\r
64 \r
65     virtual void SetETAWindows( Double_t _StartForwardETA, Double_t _EndForwardETA, Double_t _StartBackwardETA, Double_t _EndBackwardETA ) = 0; // Sets both forward and backward\r
66 \r
67     virtual void AddTrackPtEta( Double_t Pt, Double_t Eta, Double_t Phi, Short_t Charge = 100, Int_t particleType = -1  )       = 0; // Imports track from the event\r
68     virtual void AddTrackForward( Double_t Pt, Double_t Eta, Double_t Phi, Short_t Charge, Int_t particleType  )        = 0; // Imports track to the event directly to Forward window\r
69     virtual void AddTrackBackward( Double_t Pt, Double_t Eta, Double_t Phi, Short_t Charge, Int_t particleType   )      = 0; // Imports track to the event directly to Backward window\r
70     virtual void AddTrackPtEtaMixing( Int_t winFB, Double_t Pt, Double_t Eta ,Double_t Phi, Short_t Charge, Int_t particleType = -1 ) = 0;\r
71 \r
72     virtual void SetEventCentrality(Double_t centrality) = 0;\r
73     virtual void SetEventPlane(Double_t eventPlane) = 0;\r
74 \r
75     virtual void SetParticleType( char* strForwardOrBackward, char* strPid ) = 0;\r
76 \r
77     virtual void SetForwardWindowPhi(Double_t StartForwardPhi,Double_t EndForwardPhi) = 0;\r
78     virtual void SetBackwardWindowPhi(Double_t StartBackwardPhi,Double_t EndBackwardPhi) = 0;\r
79  \r
80     virtual  void SetHistPtRange(Double_t LoPt,Double_t HiPt,Int_t PtBins) = 0;  // Sets range for Pt histos axis\r
81 \r
82     virtual void   Terminate() = 0; //was done for yield study\r
83 \r
84         //virtual void SetPidFillCondition( LRCparticleType particleType, LRCpidFillCondition fillCond ) \r
85         //      { fPidFillCondition = fillCond; \r
86         //              fWhichParticleToProcess = particleType; }  // how to fill bckwd and fwd hists by pid\r
87 \r
88     //void SetParticleTypeToFill( LRCparticleType particleType ) { fWhichParticleToProcess = particleType; }  // which particle type in this processor is considered\r
89 \r
90 //protected:\r
91         //LRCparticleType fWhichParticleToProcess; // ! LRC processor sense only this type of particles (-1 by default)\r
92         //LRCpidFillCondition fPidFillCondition;\r
93 private:\r
94 \r
95     virtual  void SetShortDef() =0;  // Sets fShortDef according to window paramiters\r
96 \r
97     AliLRCBase(const AliLRCBase&); // not implemented\r
98     AliLRCBase& operator=(const AliLRCBase&); // not implemented\r
99 \r
100 \r
101 \r
102     ClassDef(AliLRCBase, 1);\r
103 };\r
104 \r
105 #endif\r
106 \r