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