]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/SPECTRA/Nuclei/B2/AliLnDriver.h
Merge branch 'master' into TPCdev
[u/mrichter/AliRoot.git] / PWGLF / SPECTRA / Nuclei / B2 / AliLnDriver.h
1 #ifndef ALILNDRIVER_H
2 #define ALILNDRIVER_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 // driver for computing the pt and spectra
8 // author: Eulogio Serradilla <eulogio.serradilla@cern.ch>
9
10 #include <TObject.h>
11 #include <TString.h>
12
13 class TString;
14 class TFileMerger;
15
16 class AliLnDriver: public TObject
17 {
18   public:
19         
20         AliLnDriver();
21         virtual ~AliLnDriver();
22         
23         void MakePtCorr() const;
24         void MakePt() const;
25         void MakeRatio() const;
26         void MakeSpectra() const;
27         
28         Int_t Run() const;
29         
30         TString GetSpecies() const { return fSpecies; }
31         TString GetOutputTag() const { return fOutputTag; }
32         TString GetOutputCorrTag() const { return fOutputCorTag; }
33         
34         TString GetPtCorrDebugFilename() const { return fOutputPtCorrDebug; }
35         TString GetPtDebugFilename() const { return fOutputPtDebug; }
36         
37         void SetInputFilenames(const TString& data, const TString& simu, const TString& simuFix, const TString& ptcorr);
38         void SetOutputFilenames(const TString& pt, const TString& ratio, const TString& spectra);
39         void SetDebugFilenames(const TString& corrdebug, const TString& ptdebug) { fOutputPtCorrDebug = corrdebug; fOutputPtDebug = ptdebug; }
40         
41         void SetSpecies(const TString& species) { fSpecies = species; }
42         
43         void SetOutputTag(const TString& tag) { fOutputTag = tag; }
44         void SetOutputCorTag(const TString& tag) { fOutputCorTag = tag; }
45         
46         void SetTriggerEfficiency(Double_t eff[3]);
47         void SetExtrapolateToINEL(Bool_t flag=1) { fINEL = flag; }
48         void SetOnlyGeneration(Bool_t flag=1) { fIsOnlyGen = flag; }
49         
50         void SetMakeCorrections(Bool_t flag=1) { fMakeCorr = flag; }
51         void SetMakePt(Bool_t flag=1) { fMakePt = flag; }
52         void SetMakeRatio(Bool_t flag=1) { fMakeRatio = flag; }
53         void SetMakeSpectra(Bool_t flag=1) { fMakeSpectra = flag; }
54         void SetMakeStats(Bool_t flag=1) { fMakeStats = flag; }
55         
56         void SetRapidityInterval(Double_t ymin, Double_t ymax) { fYMin = ymin; fYMax = ymax; }
57         
58         void SetPtInterval(Double_t min, Double_t max) { fPtMin = min; fPtMax = max; }
59         void SetPidPt(Double_t ptpid) { fPidPt = ptpid; }
60         void SetBkgInterval(Double_t min, Double_t max) { fBkgMin = min; fBkgMax = max; }
61         void SetPidInterval(Double_t min, Double_t max) { fIntMin = min; fIntMax = max; }
62         void SetPid(Bool_t flag=1) { fPid = flag; }
63         void SetSecondaries(Bool_t flag=1) { fSecondaries = flag; }
64         void SetSecProcedure(Int_t proc) { fSecProc = proc; }
65         void SetAntiNucleusAsTemplate(Bool_t flag=1) { fANucTemplate = flag; }
66         void SetMatDCAxyModel(Int_t model=1) { fMatDCAxyMod = model; }
67         void SetNBin(Int_t nbin) { fNbin = nbin; }
68         void SetDCAxyInterval(Double_t dcamin, Double_t dcamax) { fMinDCAxy = dcamin; fMaxDCAxy = dcamax; }
69         void SetEfficiency(Bool_t flag=1, Bool_t g3Fluka=0) { fEfficiency = flag; fG3Fluka=g3Fluka; }
70         void SetScalingFactors(Double_t mat, Double_t fd) { fScMat=mat; fScFd=fd; }
71         
72         void SetMCtoINEL(Bool_t flag=1) { fMCtoINEL = flag; }
73         void SetFitFractionCorr(Bool_t flag=1) { fFitFrac=flag; }
74         void SetFeedDownCorr(Bool_t flag=1) { fFdwnCorr=flag; }
75         void SetSameFeedDownCorr(Bool_t flag=1) { fSameFdwn = flag; }
76         
77         void SetPidProcedure(Int_t proc) { fPidProc=proc; }
78         void SetPidEfficiency(Double_t eff) { fPidEff=eff; }
79         void SetAddFakeTracks(Bool_t flag=1) { fAddFakeTracks = flag; }
80         
81         void SetDebugLevel(Int_t level) { fDebugLevel = level; }
82         
83   private:
84  
85         AliLnDriver(const AliLnDriver& other);
86         AliLnDriver& operator=(const AliLnDriver& other);
87         
88   private:
89  
90         TString fSpecies;       // particle species
91         TString fOutputTag;     // tag for output file
92         TString fOutputCorTag;  // tag for correction file
93         
94         Double_t fTrigEff[3];   // trigger efficiency, stat. and syst. errors
95         Bool_t  fIsOnlyGen;     // if it is only generation
96         Bool_t  fINEL;          // extrapolate to inelastic events
97         
98         Bool_t  fMakeCorr;      // make corrections
99         Bool_t  fMakePt;        // make pt
100         Bool_t  fMakeRatio;     // make antiparticle/particle ratio
101         Bool_t  fMakeSpectra;   // make spectra
102         Bool_t  fMakeStats;     // make event stats
103         
104         Double_t fPtMin;        // minimum pt value
105         Double_t fPtMax;        // maximum pt value
106         Bool_t   fPid;          // enable pid correction
107         Double_t fPidPt;        // minimum pt value for pid correction
108         Bool_t   fSecondaries;  // enable correction of secondaries
109         Int_t    fSecProc;      // procedure to estimate fractions
110         Int_t    fMatDCAxyMod;  // DCAxy model for correction of secondaries
111         Bool_t   fANucTemplate; // enable antinucleus as template for primaries
112         Int_t    fNbin;         // rebin of DCAxy distribution
113         Double_t fYMin;         // min rapidity
114         Double_t fYMax;         // max rapidity
115         Double_t fMinDCAxy;     // min DCAxy
116         Double_t fMaxDCAxy;     // max DCAxy
117         Double_t fBkgMin;       // lower limit for removing background
118         Double_t fBkgMax;       // upper limit for removing background
119         Double_t fIntMin;       // lower limit for integration
120         Double_t fIntMax;       // upper limit for integration
121         Bool_t   fEfficiency;   // enable efficiency correction
122         Bool_t   fG3Fluka;      // enable G3/Fluka correction for TPC
123         Double_t fScMat;        // scaling factor for material fraction
124         Double_t fScFd;         // scaling factor for feed-down fraction
125         
126         TString fInputData;     // input data filename
127         TString fInputSimu;     // input simulation filename
128         TString fInputSimuFix;  // input fixed simulation filename
129         
130         TString fOutputPtCorr;  // output filename for pt corrections
131         TString fOutputPt;      // output filename for pt
132         TString fOutputRatio;   // output filename for antiparticle/particle ratio
133         TString fOutputSpectra; // output filename for differential yields
134         
135         TString fOutputPtCorrDebug; // output filename for debugging pt corrections
136         TString fOutputPtDebug;     // output filename for debugging pt
137         
138         Bool_t fFitFrac;        // enable fit to fractions
139         Bool_t fFdwnCorr;       // enable feed-down correction
140         Bool_t fSameFdwn;       // same feed-down correction for positives and negatives
141         Bool_t fMCtoINEL;       // MC to extrapolate to inel or for triggering events
142         
143         Bool_t fAddFakeTracks;  // include fake tracks in the efficiency and templates
144         
145         Int_t fPidProc;  // pid procedure for the pt distribution
146         
147         Double_t fPidEff;  // pid efficiency for all pt bins
148         
149         Int_t fDebugLevel; // 0 no verbose, > 1 verbose
150         
151         ClassDef(AliLnDriver,3)
152 };
153
154 #endif // ALILNDRIVER_H