]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/SPECTRA/macros/configProtonAnalysisBaseObject.C
Adding the possibility to check the background contribution - more QA plots to come...
[u/mrichter/AliRoot.git] / PWG2 / SPECTRA / macros / configProtonAnalysisBaseObject.C
1 AliProtonAnalysisBase *GetProtonAnalysisBaseObject(const char* analysisLevel = "ESD",\r
2                                                    Bool_t kAnalyzeMC = kTRUE,\r
3                                                    const char* esdAnalysisType = "Hybrid",\r
4                                                    const char* pidMode = "Bayesian") {\r
5   //Function to setup the AliProtonAnalysisBase object and return it\r
6   AliProtonAnalysisBase *baseAnalysis = new AliProtonAnalysisBase();\r
7   //baseAnalysis->SetDebugMode();\r
8   baseAnalysis->SetAnalysisLevel(analysisLevel);\r
9   if(analysisLevel == "ESD") {\r
10     if(kAnalyzeMC)\r
11       baseAnalysis->SetTriggerMode(AliProtonAnalysisBase::kMB2);\r
12     //use the offline trigger\r
13     baseAnalysis->OfflineTriggerInit();\r
14 \r
15     baseAnalysis->SetMinTPCClusters(80);\r
16     baseAnalysis->SetMaxChi2PerTPCCluster(3.5);\r
17     baseAnalysis->SetMaxCov11(2.0);\r
18     baseAnalysis->SetMaxCov22(2.0);\r
19     baseAnalysis->SetMaxCov33(0.5);\r
20     baseAnalysis->SetMaxCov44(0.5);\r
21     baseAnalysis->SetMaxCov55(2.0);\r
22     baseAnalysis->SetMinTPCdEdxPoints(80);\r
23     switch(esdAnalysisType) {\r
24     case "TPC":\r
25       baseAnalysis->SetAnalysisMode(AliProtonAnalysisBase::kTPC);\r
26       baseAnalysis->SetPhaseSpace(10, -0.5, 0.5, 16, 0.5, 0.9);\r
27       baseAnalysis->SetTPCpid();\r
28       baseAnalysis->SetMaxSigmaToVertexTPC(2.0);\r
29       //baseAnalysis->SetMaxDCAXYTPC(1.5);\r
30       //baseAnalysis->SetMaxDCAZTPC(1.5);\r
31       break;\r
32     case "Hybrid":\r
33       baseAnalysis->SetAnalysisMode(AliProtonAnalysisBase::kHybrid);\r
34       baseAnalysis->SetPhaseSpace(9, -0.9, 0.9, 5, 0.4, 0.9);\r
35       //baseAnalysis->SetPhaseSpace(18, -0.9, 0.9, 32, 0.5, 1.3);\r
36       baseAnalysis->SetTPCpid();\r
37       baseAnalysis->SetMaxSigmaToVertex(3.0);\r
38       /*baseAnalysis->SetMaxDCAXY(3.0);\r
39         baseAnalysis->SetMaxDCAZ(3.0);*/\r
40       //baseAnalysis->SetPointOnITSLayer6();\r
41       //baseAnalysis->SetPointOnITSLayer5();\r
42       //baseAnalysis->SetPointOnITSLayer4();\r
43       //baseAnalysis->SetPointOnITSLayer3();\r
44       //baseAnalysis->SetPointOnITSLayer2();\r
45       //baseAnalysis->SetPointOnITSLayer1();\r
46       baseAnalysis->SetMinITSClusters(2);\r
47       break;\r
48     case "Global":\r
49       baseAnalysis->SetAnalysisMode(AliProtonAnalysisBase::kGlobal);\r
50       baseAnalysis->SetPhaseSpace(20, -1.0, 1.0, 48, 0.3, 1.5);\r
51       baseAnalysis->SetMaxSigmaToVertex(2.0);\r
52       //baseAnalysis->SetMaxDCAXY(2.0);\r
53       //baseAnalysis->SetMaxDCAZ(2.0);\r
54       baseAnalysis->SetTPCRefit();\r
55       baseAnalysis->SetPointOnITSLayer1();\r
56       baseAnalysis->SetPointOnITSLayer2();\r
57       //baseAnalysis->SetPointOnITSLayer3();\r
58       //baseAnalysis->SetPointOnITSLayer4();\r
59       baseAnalysis->SetPointOnITSLayer5();\r
60       baseAnalysis->SetPointOnITSLayer6();\r
61       baseAnalysis->SetMinITSClusters(5);\r
62       baseAnalysis->SetITSRefit();\r
63       baseAnalysis->SetESDpid();\r
64       baseAnalysis->SetTOFpid();\r
65       break;\r
66     default:\r
67       break;\r
68     }\r
69     baseAnalysis->SetAcceptedVertexDiamond(2.,2.,15.);\r
70     baseAnalysis->SetMinNumOfContributors(3);\r
71     baseAnalysis->SetEtaMode();\r
72     switch(pidMode) {\r
73     case "Bayesian":\r
74       baseAnalysis->SetPIDMode(AliProtonAnalysisBase::kBayesian);\r
75       //Momentum dependent priors\r
76       /*TFile *f = TFile::Open("$ALICE_ROOT/PWG2/data/PriorProbabilities.root ");\r
77         TF1 *fitElectrons = (TF1 *)f->Get("fitElectrons");\r
78         TF1 *fitMuons = (TF1 *)f->Get("fitMuons");\r
79         TF1 *fitPions = (TF1 *)f->Get("fitPions");\r
80         TF1 *fitKaons = (TF1 *)f->Get("fitKaons");\r
81         TF1 *fitProtons = (TF1 *)f->Get("fitProtons");\r
82         baseAnalysis->SetPriorProbabilityFunctions(fitElectrons,\r
83         fitMuons,\r
84         fitPions,\r
85         fitKaons,\r
86         fitProtons);*/\r
87       //Fixed prior probabilities\r
88       Double_t partFrac[5] = {0.01, 0.01, 0.85, 0.10, 0.05};\r
89       if(!baseAnalysis->IsPriorProbabilityFunctionUsed())\r
90         baseAnalysis->SetPriorProbabilities(partFrac);\r
91       break;\r
92     case "Ratio":\r
93       baseAnalysis->SetPIDMode(AliProtonAnalysisBase::kRatio);\r
94       break;\r
95     case "Sigma1":\r
96       baseAnalysis->SetPIDMode(AliProtonAnalysisBase::kSigma1);\r
97       baseAnalysis->SetNSigma(4);\r
98       baseAnalysis->SetdEdxBandInfo("$ALICE_ROOT/PWG2/data/protonsdEdxInfo.dat");\r
99       break;\r
100     case "Sigma2":\r
101       baseAnalysis->SetPIDMode(AliProtonAnalysisBase::kSigma2);\r
102       baseAnalysis->SetNSigma(3);\r
103       baseAnalysis->SetdEdxBandInfo("$ALICE_ROOT/PWG2/data/protonsdEdxInfo.dat");\r
104       break;\r
105     default:\r
106       break;\r
107     }//PID mode\r
108   }//ESD\r
109   if(analysisLevel == "MC") \r
110     baseAnalysis->SetPhaseSpace(10, -0.5, 0.5, 16, 0.5, 0.9);\r
111   if(analysisLevel == "AOD")\r
112     baseAnalysis->SetPhaseSpace(10, -0.5, 0.5, 16, 0.5, 0.9);\r
113 \r
114   return baseAnalysis;\r
115 }\r