]>
Commit | Line | Data |
---|---|---|
a65a7e70 | 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 | } |