]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/SPECTRA/AntiprotonToProton/configProtonAnalysisBaseObject.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGLF / SPECTRA / AntiprotonToProton / configProtonAnalysisBaseObject.C
CommitLineData
a65a7e70 1AliProtonAnalysisBase *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}