]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG0/trigger/run.C
adding class to trigger offline on content of the ESD
[u/mrichter/AliRoot.git] / PWG0 / trigger / run.C
1 void Load(const char* taskName, Bool_t debug)
2 {
3   TString compileTaskName;
4   compileTaskName.Form("%s.cxx++", taskName);
5   if (debug)
6     compileTaskName += "g";
7
8   if (gProof) {
9     gProof->Load(compileTaskName);
10   } else
11     gROOT->Macro(compileTaskName);
12
13   // Enable debug printouts
14   if (debug)
15   {
16     AliLog::SetClassDebugLevel(taskName, AliLog::kDebug+2);
17   }
18   else
19     AliLog::SetClassDebugLevel(taskName, AliLog::kWarning);
20 }
21
22 void run(const Char_t* data, Int_t nRuns=20, Int_t offset=0, Bool_t aDebug = kFALSE, Int_t aProof = kFALSE, const char* option = "")
23 {
24   // aProof option: 0 no proof
25   //                1 proof with chain
26   //                2 proof with dataset
27   //
28   // option is passed to the task(s)
29   
30   if (nRuns < 0)
31     nRuns = 1234567890;
32
33   if (aProof)
34   {
35     TProof::Open("alicecaf"); 
36     //gProof->SetParallel(1);
37
38     // Enable the needed package
39     if (1)
40     {
41       gProof->UploadPackage("$ALICE_ROOT/STEERBase");
42       gProof->EnablePackage("$ALICE_ROOT/STEERBase");
43       gProof->UploadPackage("$ALICE_ROOT/ESD");
44       gProof->EnablePackage("$ALICE_ROOT/ESD");
45       gProof->UploadPackage("$ALICE_ROOT/AOD");
46       gProof->EnablePackage("$ALICE_ROOT/AOD");
47       gProof->UploadPackage("$ALICE_ROOT/ANALYSIS");
48       gProof->EnablePackage("$ALICE_ROOT/ANALYSIS");
49       gProof->UploadPackage("$ALICE_ROOT/ANALYSISalice");
50       gProof->EnablePackage("$ALICE_ROOT/ANALYSISalice");
51     }
52     else
53     {
54       gProof->UploadPackage("/afs/cern.ch/alice/caf/sw/ALICE/PARs/v4-17-Release/AF-v4-17");
55       gProof->EnablePackage("AF-v4-17");
56     }
57
58     gProof->UploadPackage("$ALICE_ROOT/PWG0base");
59     gProof->EnablePackage("$ALICE_ROOT/PWG0base");
60   }
61   else
62   {
63     gSystem->AddIncludePath("-I${ALICE_ROOT}/include/ -I${ALICE_ROOT}/PWG0/ -I${ALICE_ROOT}/PWG0/dNdEta/"); 
64     gSystem->Load("libVMC");
65     gSystem->Load("libTree");
66     gSystem->Load("libProof");
67     gSystem->Load("libSTEERBase");
68     gSystem->Load("libESD");
69     gSystem->Load("libAOD");
70     gSystem->Load("libANALYSIS");
71     gSystem->Load("libANALYSISalice");
72     gSystem->Load("libPWG0base");
73   }
74
75   // Create the analysis manager
76   mgr = new AliAnalysisManager;
77
78   // Add ESD handler
79   AliESDInputHandler* esdH = new AliESDInputHandler;
80   esdH->SetInactiveBranches("AliESDACORDE ALIESDTZERO AliRawDataErrorLogs CaloClusters Cascades EMCALCells EMCALTrigger ESDfriend Kinks Kinks Cascades AliESDTZERO ALIESDACORDE MuonTracks TrdTracks CaloClusters");
81   mgr->SetInputEventHandler(esdH);
82
83   cInput = mgr->GetCommonInputContainer();
84   
85   Load("AliTriggerTask", aDebug);
86   TString optStr(option);
87   task = new AliTriggerTask(optStr);
88
89   mgr->AddTask(task);
90
91   // Attach input
92   mgr->ConnectInput(task, 0, cInput);
93
94   // Attach output
95   cOutput = mgr->CreateContainer("cOutput", TList::Class(), AliAnalysisManager::kOutputContainer);
96   mgr->ConnectOutput(task, 0, cOutput);
97
98   // Enable debug printouts
99   if (aDebug)
100     mgr->SetDebugLevel(2);
101
102   // Run analysis
103   mgr->InitAnalysis();
104   mgr->PrintStatus();
105
106   if (aProof == 2)
107   {
108     // process dataset
109
110     mgr->StartAnalysis("proof", data, nRuns, offset);
111   }
112   else if (aProof == 3)
113   {
114     gROOT->ProcessLine(".L CreateChainFromDataSet.C");
115     ds = gProof->GetDataSet(data)->GetStagedSubset();
116     chain = CreateChainFromDataSet(ds);
117     mgr->StartAnalysis("local", chain, nRuns, offset);
118   }
119   else
120   {
121     // Create chain of input files
122     gROOT->LoadMacro("../CreateESDChain.C");
123
124     chain = CreateESDChain(data, nRuns, offset);
125     //chain = CreateChain("TE", data, nRuns, offset);
126
127     mgr->StartAnalysis((aProof > 0) ? "proof" : "local", chain);
128   }
129 }