1 void 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 = "")
3 // aProof option: 0 no proof
5 // 2 proof with dataset
12 TProof::Open("lxb6046");
14 // Enable the needed package
17 gProof->UploadPackage("$ALICE_ROOT/STEERBase");
18 gProof->EnablePackage("$ALICE_ROOT/STEERBase");
19 gProof->UploadPackage("$ALICE_ROOT/ESD");
20 gProof->EnablePackage("$ALICE_ROOT/ESD");
21 gProof->UploadPackage("$ALICE_ROOT/AOD");
22 gProof->EnablePackage("$ALICE_ROOT/AOD");
23 gProof->UploadPackage("$ALICE_ROOT/ANALYSIS");
24 gProof->EnablePackage("$ALICE_ROOT/ANALYSIS");
25 gProof->UploadPackage("$ALICE_ROOT/ANALYSISalice");
26 gProof->EnablePackage("$ALICE_ROOT/ANALYSISalice");
30 gProof->UploadPackage("$ALICE_ROOT/AF-v4-12");
31 gProof->EnablePackage("$ALICE_ROOT/AF-v4-12");
34 gProof->UploadPackage("$ALICE_ROOT/PWG0base");
35 gProof->EnablePackage("$ALICE_ROOT/PWG0base");
39 gSystem->Load("libVMC");
40 gSystem->Load("libTree");
41 gSystem->Load("libSTEERBase");
42 gSystem->Load("libESD");
43 gSystem->Load("libAOD");
44 gSystem->Load("libANALYSIS");
45 gSystem->Load("libANALYSISalice");
46 gSystem->Load("libPWG0base");
49 // Create the analysis manager
50 mgr = new AliAnalysisManager;
52 AliPWG0Helper::AnalysisMode analysisMode = AliPWG0Helper::kTPC;
53 AliPWG0Helper::Trigger trigger = AliPWG0Helper::kMB1;
55 AliPWG0Helper::PrintConf(analysisMode, trigger);
57 TString taskName("AliMultiplicityTask.cxx+");
63 gProof->Load(taskName);
65 gROOT->Macro(taskName);
67 task = new AliMultiplicityTask(option);
69 if (analysisMode != AliPWG0Helper::kSPD)
71 // selection of esd tracks
72 gROOT->ProcessLine(".L ../CreateStandardCuts.C");
73 AliESDtrackCuts* esdTrackCuts = CreateTrackCuts(analysisMode);
76 printf("ERROR: esdTrackCuts could not be created\n");
80 task->SetTrackCuts(esdTrackCuts);
83 task->SetAnalysisMode(analysisMode);
84 task->SetTrigger(trigger);
89 //task->SetUseMCVertex();
94 // Enable MC event handler
95 AliMCEventHandler* handler = new AliMCEventHandler;
96 handler->SetReadTR(kFALSE);
97 mgr->SetMCtruthEventHandler(handler);
101 TString optionStr(option);
102 if (optionStr.Contains("pt-spectrum-func"))
104 //TF1* func = new TF1("func", "0.7 + x", 0, 0.3);
105 //TF1* func = new TF1("func", "1.3 - x", 0, 0.3);
106 //TF1* func = new TF1("func", "1", 0, 0.3);
107 //new TCanvas; func->Draw();
108 //inputList.Add(func->GetHistogram()->Clone("pt-spectrum"));
110 TFile* file = TFile::Open("ptspectrum_fit.root");
113 Printf("Could not open ptspectrum_fit.root");
117 TString subStr(optionStr(optionStr.Index("pt-spectrum-func")+17, 3));
118 TString histName(Form("ptspectrum_%s", subStr.Data()));
119 Printf("Pt-Spectrum modification. Using %s.", histName.Data());
120 TH1* hist = (TH1*) file->Get(histName);
123 Printf("Could not read histogram.");
127 new TCanvas; hist->Draw();
128 task->SetPtSpectrum((TH1*) hist->Clone("pt-spectrum"));
132 AliESDInputHandler* esdH = new AliESDInputHandler;
133 mgr->SetInputEventHandler(esdH);
136 cInput = mgr->CreateContainer("cInput", TChain::Class(), AliAnalysisManager::kInputContainer);
137 mgr->ConnectInput(task, 0, cInput);
140 cOutput = mgr->CreateContainer("cOutput", TList::Class(), AliAnalysisManager::kOutputContainer);
141 //cOutput->SetDataOwned(kTRUE);
142 mgr->ConnectOutput(task, 0, cOutput);
144 // Enable debug printouts
146 mgr->SetDebugLevel(2);
156 mgr->StartAnalysis("proof", data, nRuns, offset);
160 // Create chain of input files
161 gROOT->LoadMacro("../CreateESDChain.C");
162 chain = CreateESDChain(data, nRuns, offset);
164 mgr->StartAnalysis((aProof > 0) ? "proof" : "local", chain);