]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/SPECTRA/AntiprotonToProton/configProtonAnalysisBaseObject.C
end-of-line normalization
[u/mrichter/AliRoot.git] / PWGLF / SPECTRA / AntiprotonToProton / configProtonAnalysisBaseObject.C
1 AliProtonAnalysisBase *GetProtonAnalysisBaseObject(const char* analysisLevel = "ESD",
2                                                    Bool_t kAnalyzeMC = kTRUE,
3                                                    const char* esdAnalysisType = "Hybrid",
4                                                    const char* pidMode = "Bayesian",
5                                                    Bool_t kUseOnlineTrigger = kFALSE,
6                                                    Bool_t kUseOfflineTrigger = kFALSE,
7                                                    Bool_t kRunQA = kFALSE) {
8   //Function to setup the AliProtonAnalysisBase object and return it
9   AliProtonAnalysisBase *baseAnalysis = new AliProtonAnalysisBase();
10   //baseAnalysis->SetDebugMode();
11   if(kRunQA) baseAnalysis->SetRunQA();
12   baseAnalysis->SetAnalysisLevel(analysisLevel);
13   if(analysisLevel == "ESD") {
14     if(kAnalyzeMC)
15       baseAnalysis->SetTriggerMode(AliProtonAnalysisBase::kMB2);
16     //use the offline trigger
17     if(kUseOnlineTrigger) baseAnalysis->UseOnlineTrigger();
18
19     //use the offline trigger
20     if(kUseOfflineTrigger) baseAnalysis->OfflineTriggerInit();
21
22     baseAnalysis->SetMinTPCClusters(80);
23     baseAnalysis->SetMaxChi2PerTPCCluster(3.5);
24     /*baseAnalysis->SetMaxCov11(2.0);
25     baseAnalysis->SetMaxCov22(2.0);
26     baseAnalysis->SetMaxCov33(0.5);
27     baseAnalysis->SetMaxCov44(0.5);
28     baseAnalysis->SetMaxCov55(2.0);*/
29     baseAnalysis->SetMinTPCdEdxPoints(80);
30     switch(esdAnalysisType) {
31     case "TPC":
32       baseAnalysis->SetAnalysisMode(AliProtonAnalysisBase::kTPC);
33       baseAnalysis->SetPhaseSpace(10, -0.5, 0.5, 16, 0.5, 0.9);
34       baseAnalysis->SetTPCpid();
35       baseAnalysis->SetMaxSigmaToVertexTPC(2.0);
36       //baseAnalysis->SetMaxDCAXYTPC(1.5);
37       //baseAnalysis->SetMaxDCAZTPC(1.5);
38       break;
39     case "Hybrid":
40       baseAnalysis->SetAnalysisMode(AliProtonAnalysisBase::kHybrid);
41       baseAnalysis->SetPhaseSpace(9, -0.9, 0.9, 6, 0.45, 1.05);
42       //baseAnalysis->SetPhaseSpace(18, -0.9, 0.9, 32, 0.5, 1.3);
43       baseAnalysis->SetTPCpid();
44       //baseAnalysis->SetMaxSigmaToVertex(3.0);
45       //baseAnalysis->SetMaxDCAXY(0.5);
46       //baseAnalysis->SetMaxDCAZ(0.7);
47       baseAnalysis->SetMaxDCA3D(2.0);
48       //baseAnalysis->SetPointOnITSLayer6();
49       //baseAnalysis->SetPointOnITSLayer5();
50       //baseAnalysis->SetPointOnITSLayer4();
51       //baseAnalysis->SetPointOnITSLayer3();
52       //baseAnalysis->SetPointOnITSLayer2();
53       //baseAnalysis->SetPointOnITSLayer1();
54       baseAnalysis->SetPointOnSPDLayers();
55       baseAnalysis->SetMinITSClusters(2);
56       break;
57     case "FullHybrid":
58       baseAnalysis->SetAnalysisMode(AliProtonAnalysisBase::kFullHybrid);
59       baseAnalysis->SetPhaseSpace(9, -0.9, 0.9, 6, 0.45, 1.05);
60       //baseAnalysis->SetPhaseSpace(18, -0.9, 0.9, 32, 0.5, 1.3);
61       baseAnalysis->SetTPCpid();
62       //baseAnalysis->SetMaxSigmaToVertex(3.0);
63       //baseAnalysis->SetMaxDCAXY(0.2);
64       //baseAnalysis->SetMaxDCAZ(0.7);
65       //baseAnalysis->SetMaxDCA3D(0.2);
66       baseAnalysis->SetPtDependentDCAxy(5,2.89575e+02,6.62161e+01,1.99085e+00);
67       //baseAnalysis->SetPointOnITSLayer6();
68       //baseAnalysis->SetPointOnITSLayer5();
69       //baseAnalysis->SetPointOnITSLayer4();
70       //baseAnalysis->SetPointOnITSLayer3();
71       //baseAnalysis->SetPointOnITSLayer2();
72       //baseAnalysis->SetPointOnITSLayer1();
73       baseAnalysis->SetPointOnSPDLayers();
74       baseAnalysis->SetMinITSClusters(2);
75       break;
76     case "Global":
77       baseAnalysis->SetAnalysisMode(AliProtonAnalysisBase::kGlobal);
78       baseAnalysis->SetPhaseSpace(20, -1.0, 1.0, 48, 0.3, 1.5);
79       baseAnalysis->SetMaxSigmaToVertex(2.0);
80       //baseAnalysis->SetMaxDCAXY(2.0);
81       //baseAnalysis->SetMaxDCAZ(2.0);
82       baseAnalysis->SetTPCRefit();
83       baseAnalysis->SetPointOnITSLayer1();
84       baseAnalysis->SetPointOnITSLayer2();
85       //baseAnalysis->SetPointOnITSLayer3();
86       //baseAnalysis->SetPointOnITSLayer4();
87       baseAnalysis->SetPointOnITSLayer5();
88       baseAnalysis->SetPointOnITSLayer6();
89       baseAnalysis->SetMinITSClusters(5);
90       baseAnalysis->SetITSRefit();
91       baseAnalysis->SetESDpid();
92       baseAnalysis->SetTOFpid();
93       break;
94     default:
95       break;
96     }
97     baseAnalysis->SetAcceptedVertexDiamond(1.,1.,10.);
98     baseAnalysis->SetMinNumOfContributors(0);
99     //baseAnalysis->SetEtaMode();
100     switch(pidMode) {
101     case "Bayesian":
102       baseAnalysis->SetPIDMode(AliProtonAnalysisBase::kBayesian);
103       //Momentum dependent priors
104       /*TFile *f = TFile::Open("$ALICE_ROOT/PWG2/data/PriorProbabilities.root ");
105         TF1 *fitElectrons = (TF1 *)f->Get("fitElectrons");
106         TF1 *fitMuons = (TF1 *)f->Get("fitMuons");
107         TF1 *fitPions = (TF1 *)f->Get("fitPions");
108         TF1 *fitKaons = (TF1 *)f->Get("fitKaons");
109         TF1 *fitProtons = (TF1 *)f->Get("fitProtons");
110         baseAnalysis->SetPriorProbabilityFunctions(fitElectrons,
111         fitMuons,
112         fitPions,
113         fitKaons,
114         fitProtons);*/
115       //Fixed prior probabilities
116       Double_t partFrac[5] = {0.01, 0.01, 0.85, 0.10, 0.05};
117       if(!baseAnalysis->IsPriorProbabilityFunctionUsed())
118         baseAnalysis->SetPriorProbabilities(partFrac);
119       break;
120     case "Ratio":
121       baseAnalysis->SetPIDMode(AliProtonAnalysisBase::kRatio);
122       baseAnalysis->SetRatio(-0.2);
123       break;
124     case "Sigma":
125       baseAnalysis->SetPIDMode(AliProtonAnalysisBase::kSigma1);
126       baseAnalysis->SetNSigma(4);
127       break;
128     default:
129       break;
130     }//PID mode
131   }//ESD
132   if(analysisLevel == "MC") 
133     baseAnalysis->SetPhaseSpace(10, -0.5, 0.5, 16, 0.5, 0.9);
134   if(analysisLevel == "AOD")
135     baseAnalysis->SetPhaseSpace(10, -0.5, 0.5, 16, 0.5, 0.9);
136
137   return baseAnalysis;
138 }