]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG0/esdTrackCuts/run.C
adding cut study of primaries vs. secondaries
[u/mrichter/AliRoot.git] / PWG0 / esdTrackCuts / run.C
1 void run(Char_t* data, Int_t nRuns=20, Int_t offset=0, Bool_t aDebug = kFALSE, Bool_t aProof = kFALSE, Bool_t mc = kFALSE, const char* option = "")
2 {
3   if (aProof)
4   {
5     TProof::Open("lxb6046");
6
7     // Enable the needed package
8     gProof->UploadPackage("STEERBase");
9     gProof->EnablePackage("STEERBase");
10     gProof->UploadPackage("ESD");
11     gProof->EnablePackage("ESD");
12     gProof->UploadPackage("ANALYSIS");
13     gProof->EnablePackage("ANALYSIS");
14     gProof->UploadPackage("PWG0base");
15     gProof->EnablePackage("PWG0base");
16   }
17   else
18   {
19     gSystem->Load("libVMC");
20     gSystem->Load("libTree");
21     gSystem->Load("libSTEERBase");
22     gSystem->Load("libESD");
23     gSystem->Load("libANALYSIS");
24     gSystem->Load("libPWG0base");
25   }
26
27   // Create chain of input files
28   gROOT->LoadMacro("../CreateESDChain.C");
29   chain = CreateESDChain(data, nRuns, offset);
30
31   // Create the analysis manager
32   mgr = new AliAnalysisManager("testAnalysis");
33
34   // selection of esd tracks
35   gROOT->ProcessLine(".L CreateCuts.C");
36   AliESDtrackCuts* esdTrackCuts = CreateTrackCuts();
37   if (!esdTrackCuts)
38   {
39     printf("ERROR: esdTrackCuts could not be created\n");
40     return;
41   }
42
43   TString taskName("AliCutTask.cxx+");
44   if (aDebug)
45     taskName += "+g";
46
47   // Create, add task
48   if (aProof) {
49     gProof->Load(taskName);
50   } else
51     gROOT->Macro(taskName);
52
53   task = new AliCutTask;
54   task->SetTrackCuts(esdTrackCuts);
55   mgr->AddTask(task);
56
57   // Add ESD handler
58   AliESDInputHandler* esdH = new AliESDInputHandler;
59   mgr->SetInputEventHandler(esdH);
60   
61   if (mc) {
62     task->EnableSecondaryStudy();
63     // Enable MC event handler
64     AliMCEventHandler* handler = new AliMCEventHandler;
65     handler->SetReadTR(kFALSE);
66     mgr->SetMCtruthEventHandler(handler);
67   }
68
69   // Attach input
70   cInput  = mgr->CreateContainer("cInput", TChain::Class(), AliAnalysisManager::kInputContainer);
71   mgr->ConnectInput(task, 0, cInput);
72
73   // Attach output
74   cOutput = mgr->CreateContainer("cOutput", TList::Class(), AliAnalysisManager::kOutputContainer);
75   mgr->ConnectOutput(task, 0, cOutput);
76
77   // Enable debug printouts
78   if (aDebug)
79     mgr->SetDebugLevel(2);
80
81   // Run analysis
82   mgr->InitAnalysis();
83   mgr->PrintStatus();
84   mgr->StartAnalysis((aProof) ? "proof" : "local", chain);
85 }