]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG2/SPECTRA/macros/configProtonAnalysis.C
oving all the proton analysis related macros to the proper directory
[u/mrichter/AliRoot.git] / PWG2 / SPECTRA / macros / configProtonAnalysis.C
CommitLineData
0ab648ea 1//__________________________________________________//
2AliProtonAnalysis *GetProtonAnalysisObject(const char* analysisLevel = "ESD",
3 const char* esdAnalysisType = "Hybrid",
4 const char* pidMode = "Bayesian") {
5 //Function to setup the AliProtonAnalysis object and return it
6 AliProtonAnalysisBase *baseAnalysis = GetProtonAnalysisBaseObject(analysisLevel,esdAnalysisType,pidMode);
7
8 AliProtonAnalysis *analysis = new AliProtonAnalysis();
9 analysis->SetBaseAnalysis(baseAnalysis);
10 //if(analysisBase->GetEtaMode()) analysis->SetEtaMode();
11 analysis->InitAnalysisHistograms(baseAnalysis->GetNBinsX(),
12 baseAnalysis->GetMinX(),
13 baseAnalysis->GetMaxX(),
14 baseAnalysis->GetNBinsY(),
15 baseAnalysis->GetMinY(),
16 baseAnalysis->GetMaxY());
17
18 return analysis;
19}
20
21//__________________________________________________//
22AliProtonQAAnalysis *GetProtonQAAnalysisObject(const char* analysisLevel = "ESD",
23 const char* esdAnalysisType = "Hybrid",
24 const char* pidMode = "Bayesian") {
25 //Function to setup the AliProtonQAAnalysis object and return it
e7df5638 26 AliProtonAnalysisBase *baseAnalysis = GetProtonAnalysisBaseObject(analysisLevel,esdAnalysisType,pidMode);
27
0ab648ea 28 AliProtonQAAnalysis *analysis = new AliProtonQAAnalysis();
e7df5638 29 analysis->SetQAOn();
30 analysis->SetRunMCAnalysis();
31 //analysis->SetMCProcessId(4);//4: weak decay - 13: hadronic interaction
32 //analysis->SetMotherParticlePDGCode(3122);//3122: Lambda
33 analysis->SetQAYPtBins(baseAnalysis->GetNBinsX(),
34 baseAnalysis->GetMinX(),
35 baseAnalysis->GetMaxX(),
36 baseAnalysis->GetNBinsY(),
37 baseAnalysis->GetMinY(),
38 baseAnalysis->GetMaxY());
0ab648ea 39
40 return analysis;
41}
42
43//__________________________________________________//
44AliProtonAnalysisBase *GetProtonAnalysisBaseObject(const char* analysisLevel = "ESD",
45 const char* esdAnalysisType = "Hybrid",
46 const char* pidMode = "Bayesian") {
47 //Function to setup the AliProtonAnalysisBase object and return it
48 AliProtonAnalysisBase *baseAnalysis = new AliProtonAnalysisBase();
49 //baseAnalysis->SetDebugMode();
50 baseAnalysis->SetAnalysisLevel(analysisLevel);
51 if(analysisLevel == "ESD") {
52 baseAnalysis->SetTriggerMode(AliProtonAnalysisBase::kMB2);
53 switch(esdAnalysisType) {
54 case "TPC":
55 baseAnalysis->SetAnalysisMode(AliProtonAnalysisBase::kTPC);
56 baseAnalysis->SetPhaseSpace(10, -0.5, 0.5, 16, 0.5, 0.9);
57 baseAnalysis->SetTPCpid();
58 baseAnalysis->SetMinTPCClusters(100);
59 baseAnalysis->SetMaxChi2PerTPCCluster(2.2);
60 baseAnalysis->SetMaxCov11(0.5);
61 baseAnalysis->SetMaxCov22(0.5);
62 baseAnalysis->SetMaxCov33(0.5);
63 baseAnalysis->SetMaxCov44(0.5);
64 baseAnalysis->SetMaxCov55(0.5);
65 baseAnalysis->SetMaxSigmaToVertexTPC(2.0);
66 //baseAnalysis->SetMaxDCAXYTPC(1.5);
67 //baseAnalysis->SetMaxDCAZTPC(1.5);
68 break;
69 case "Hybrid":
70 baseAnalysis->SetAnalysisMode(AliProtonAnalysisBase::kHybrid);
71 baseAnalysis->SetPhaseSpace(10, -0.5, 0.5, 16, 0.5, 0.9);
72 baseAnalysis->SetTPCpid();
73 baseAnalysis->SetMinTPCClusters(110);
74 baseAnalysis->SetMaxChi2PerTPCCluster(2.2);
75 baseAnalysis->SetMaxCov11(0.5);
76 baseAnalysis->SetMaxCov22(0.5);
77 baseAnalysis->SetMaxCov33(0.5);
78 baseAnalysis->SetMaxCov44(0.5);
79 baseAnalysis->SetMaxCov55(0.5);
80 baseAnalysis->SetMaxSigmaToVertex(2.0);
81 /*baseAnalysis->SetMaxDCAXY(1.5);
82 baseAnalysis->SetMaxDCAZ(1.5);*/
83 baseAnalysis->SetPointOnITSLayer6();
84 baseAnalysis->SetPointOnITSLayer5();
85 //baseAnalysis->SetPointOnITSLayer4();
86 //baseAnalysis->SetPointOnITSLayer3();
87 baseAnalysis->SetPointOnITSLayer2();
88 baseAnalysis->SetPointOnITSLayer1();
89 baseAnalysis->SetMinITSClusters(5);
90 break;
91 case "Global":
92 baseAnalysis->SetAnalysisMode(AliProtonAnalysisBase::kGlobal);
93 baseAnalysis->SetPhaseSpace(20, -1.0, 1.0, 48, 0.3, 1.5);
94 baseAnalysis->SetMinTPCClusters(110);
95 baseAnalysis->SetMaxChi2PerTPCCluster(2.2);
96 baseAnalysis->SetMaxCov11(0.5);
97 baseAnalysis->SetMaxCov22(0.5);
98 baseAnalysis->SetMaxCov33(0.5);
99 baseAnalysis->SetMaxCov44(0.5);
100 baseAnalysis->SetMaxCov55(0.5);
101 baseAnalysis->SetMaxSigmaToVertex(2.0);
102 //baseAnalysis->SetMaxDCAXY(2.0);
103 //baseAnalysis->SetMaxDCAZ(2.0);
104 baseAnalysis->SetTPCRefit();
105 baseAnalysis->SetPointOnITSLayer1();
106 baseAnalysis->SetPointOnITSLayer2();
107 //baseAnalysis->SetPointOnITSLayer3();
108 //baseAnalysis->SetPointOnITSLayer4();
109 baseAnalysis->SetPointOnITSLayer5();
110 baseAnalysis->SetPointOnITSLayer6();
111 baseAnalysis->SetMinITSClusters(5);
112 baseAnalysis->SetITSRefit();
113 baseAnalysis->SetESDpid();
114 break;
115 default:
116 break;
117 }
118 baseAnalysis->SetAcceptedVertexDiamond(5.,5.,15.);
119 baseAnalysis->SetEtaMode();
120 switch(pidMode) {
121 case "Bayesian":
122 baseAnalysis->SetPIDMode(AliProtonAnalysisBase::kBayesian);
123 //Momentum dependent priors
124 /*TFile *f = TFile::Open("PriorProb/PriorProbabilities.root ");
125 TF1 *fitElectrons = (TF1 *)f->Get("fitElectrons");
126 TF1 *fitMuons = (TF1 *)f->Get("fitMuons");
127 TF1 *fitPions = (TF1 *)f->Get("fitPions");
128 TF1 *fitKaons = (TF1 *)f->Get("fitKaons");
129 TF1 *fitProtons = (TF1 *)f->Get("fitProtons");
130 baseAnalysis->SetPriorProbabilityFunctions(fitElectrons,
131 fitMuons,
132 fitPions,
133 fitKaons,
134 fitProtons);*/
135 //Fixed prior probabilities
136 Double_t partFrac[5] = {0.01, 0.01, 0.85, 0.10, 0.05};
137 if(!baseAnalysis->IsPriorProbabilityFunctionUsed())
138 baseAnalysis->SetPriorProbabilities(partFrac);
139 break;
140 case "Ratio":
141 baseAnalysis->SetPIDMode(AliProtonAnalysisBase::kRatio);
142 break;
143 case "Sigma":
144 baseAnalysis->SetPIDMode(AliProtonAnalysisBase::kSigma);
145 break;
146 default:
147 break;
148 }//PID mode
149 }//ESD
150 if(analysisLevel == "MC")
151 baseAnalysis->SetPhaseSpace(56, -1.0, 1.0, 16, 0.1, 1.5);
152
153 return baseAnalysis;
154}