]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG0/multiplicity/run.C
Updated AliUnfolding class. The regularization schemas have changed taking into accou...
[u/mrichter/AliRoot.git] / PWG0 / multiplicity / run.C
CommitLineData
745d6088 1void run(Char_t* data, Long64_t nRuns = -1, Long64_t offset = 0, Bool_t aDebug = kFALSE, Int_t aProof = 0, Bool_t mc = kTRUE, const char* option = "")
a9017e49 2{
745d6088 3 // aProof option: 0 no proof
4 // 1 proof with chain
5 // 2 proof with dataset
6
7 if (nRuns < 0)
8 nRuns = 1234567890;
9
a9017e49 10 if (aProof)
11 {
70fdd197 12 gEnv->SetValue("XSec.GSI.DelegProxy", "2");
69b09e3b 13 TProof::Open("alicecaf");
14 //gProof->SetParallel(1);
a9017e49 15
16 // Enable the needed package
dca331bb 17 if (1)
18 {
19 gProof->UploadPackage("$ALICE_ROOT/STEERBase");
20 gProof->EnablePackage("$ALICE_ROOT/STEERBase");
21 gProof->UploadPackage("$ALICE_ROOT/ESD");
22 gProof->EnablePackage("$ALICE_ROOT/ESD");
23 gProof->UploadPackage("$ALICE_ROOT/AOD");
24 gProof->EnablePackage("$ALICE_ROOT/AOD");
25 gProof->UploadPackage("$ALICE_ROOT/ANALYSIS");
26 gProof->EnablePackage("$ALICE_ROOT/ANALYSIS");
27 gProof->UploadPackage("$ALICE_ROOT/ANALYSISalice");
28 gProof->EnablePackage("$ALICE_ROOT/ANALYSISalice");
29 }
30 else
31 {
69b09e3b 32 gProof->UploadPackage("$ALICE_ROOT/AF-v4-16");
33 gProof->EnablePackage("$ALICE_ROOT/AF-v4-16");
dca331bb 34 }
745d6088 35
36 gProof->UploadPackage("$ALICE_ROOT/PWG0base");
37 gProof->EnablePackage("$ALICE_ROOT/PWG0base");
a9017e49 38 }
39 else
40 {
41 gSystem->Load("libVMC");
42 gSystem->Load("libTree");
43 gSystem->Load("libSTEERBase");
44 gSystem->Load("libESD");
dca331bb 45 gSystem->Load("libAOD");
a9017e49 46 gSystem->Load("libANALYSIS");
dca331bb 47 gSystem->Load("libANALYSISalice");
a9017e49 48 gSystem->Load("libPWG0base");
49 }
50
a9017e49 51 // Create the analysis manager
dca331bb 52 mgr = new AliAnalysisManager;
a9017e49 53
70fdd197 54 AliPWG0Helper::AnalysisMode analysisMode = AliPWG0Helper::kTPC | AliPWG0Helper::kFieldOn;
55 AliTriggerAnalysis::Trigger trigger = AliTriggerAnalysis::kMB1;
a2cdb42c 56
57 AliPWG0Helper::PrintConf(analysisMode, trigger);
a9017e49 58
59 TString taskName("AliMultiplicityTask.cxx+");
60 if (aDebug)
61 taskName += "+g";
62
63 // Create, add task
745d6088 64 if (aProof > 0) {
a9017e49 65 gProof->Load(taskName);
66 } else
67 gROOT->Macro(taskName);
68
2fa65f52 69 task = new AliMultiplicityTask(option);
f3eb27f6 70
70fdd197 71 if (!(analysisMode & AliPWG0Helper::kSPD))
f3eb27f6 72 {
73 // selection of esd tracks
74 gROOT->ProcessLine(".L ../CreateStandardCuts.C");
75 AliESDtrackCuts* esdTrackCuts = CreateTrackCuts(analysisMode);
76 if (!esdTrackCuts)
77 {
78 printf("ERROR: esdTrackCuts could not be created\n");
79 return;
80 }
81
82 task->SetTrackCuts(esdTrackCuts);
83 }
69b09e3b 84 else
85 task->SetDeltaPhiCut(0.05);
f3eb27f6 86
745d6088 87 task->SetAnalysisMode(analysisMode);
a2cdb42c 88 task->SetTrigger(trigger);
2fa65f52 89
90 if (mc)
91 task->SetReadMC();
92
f3eb27f6 93 //task->SetUseMCVertex();
94
a9017e49 95 mgr->AddTask(task);
96
69b09e3b 97 TString optionStr(option);
98
2fa65f52 99 if (mc) {
100 // Enable MC event handler
101 AliMCEventHandler* handler = new AliMCEventHandler;
69b09e3b 102 if (!optionStr.Contains("particle-efficiency"))
103 handler->SetReadTR(kFALSE);
2fa65f52 104 mgr->SetMCtruthEventHandler(handler);
105 }
a9017e49 106
dca331bb 107 // pt study
dca331bb 108 if (optionStr.Contains("pt-spectrum-func"))
109 {
69b09e3b 110 TF1* func = new TF1("func", "1", 0, 0.2);
111 //TF1* func = new TF1("func", "1.5 - x / 0.2 * 0.5", 0, 0.2);
112 //TF1* func = new TF1("func", "1.25 - x / 0.2 * 0.25", 0, 0.2);
113 //TF1* func = new TF1("func", "0.75 + x / 0.2 * 0.25", 0, 0.2);
114 hist = func->GetHistogram();
dca331bb 115 //new TCanvas; func->Draw();
116 //inputList.Add(func->GetHistogram()->Clone("pt-spectrum"));
117
dca331bb 118 new TCanvas; hist->Draw();
69b09e3b 119 task->SetPtSpectrum((TH1D*) hist->Clone("pt-spectrum"));
dca331bb 120 }
121
a9017e49 122 // Add ESD handler
123 AliESDInputHandler* esdH = new AliESDInputHandler;
69b09e3b 124 esdH->SetInactiveBranches("AliESDACORDE FMD ALIESDTZERO ALIESDZDC AliRawDataErrorLogs CaloClusters Cascades EMCALCells EMCALTrigger ESDfriend Kinks AliESDTZERO ALIESDACORDE MuonTracks TrdTracks");
a9017e49 125 mgr->SetInputEventHandler(esdH);
126
127 // Attach input
861795a8 128 cInput = mgr->GetCommonInputContainer();
a9017e49 129 mgr->ConnectInput(task, 0, cInput);
130
131 // Attach output
132 cOutput = mgr->CreateContainer("cOutput", TList::Class(), AliAnalysisManager::kOutputContainer);
133 //cOutput->SetDataOwned(kTRUE);
134 mgr->ConnectOutput(task, 0, cOutput);
135
136 // Enable debug printouts
137 if (aDebug)
138 mgr->SetDebugLevel(2);
139
140 // Run analysis
141 mgr->InitAnalysis();
142 mgr->PrintStatus();
745d6088 143
144 if (aProof == 2)
145 {
146 // process dataset
147
148 mgr->StartAnalysis("proof", data, nRuns, offset);
149 }
69b09e3b 150 else if (aProof == 3)
151 {
152 gROOT->ProcessLine(".L CreateChainFromDataSet.C");
153 ds = gProof->GetDataSet(data)->GetStagedSubset();
154 chain = CreateChainFromDataSet(ds);
155 mgr->StartAnalysis("local", chain, nRuns, offset);
156 }
745d6088 157 else
158 {
159 // Create chain of input files
160 gROOT->LoadMacro("../CreateESDChain.C");
161 chain = CreateESDChain(data, nRuns, offset);
162
163 mgr->StartAnalysis((aProof > 0) ? "proof" : "local", chain);
164 }
a9017e49 165}