]>
Commit | Line | Data |
---|---|---|
94430cc1 | 1 | // $Id$ |
2 | /** | |
3 | * @file recraw-local.C | |
4 | * @brief Run reconstruction of raw data locally | |
5 | * | |
6 | * <pre> | |
7 | * Usage: aliroot -b -q -l \ | |
dd347dca | 8 | * recraw-local.C'("file", "cdb", minEvent, maxEvent, modules)' |
94430cc1 | 9 | * |
10 | * Examples: | |
dd347dca | 11 | * recraw-local.C'("alien:///alice/data/2009/.../....root")' |
94430cc1 | 12 | * recraw-local.C'("raw://run12345")' |
13 | * recraw-local.C'("raw://run12345", minEvent, MaxEvent)' | |
14 | * recraw-local.C'("raw.root", "local://$PWD", minEvent, MaxEvent)' | |
15 | * | |
16 | * Defaults | |
dd347dca | 17 | * cdb="raw://" -> take OCDB from GRID |
18 | * minEvent=-1 -> no lower event selection | |
19 | * maxEvent=-1 -> no upper event selection | |
20 | * modules="ALL" -> all modules | |
deb17658 | 21 | * hltOption="loglevel=0x7c" -> logging level info and above |
94430cc1 | 22 | * |
23 | * </pre> | |
24 | * | |
25 | * The input file can be a file on the grid, indicated by the tag | |
26 | * 'alien://' indicates. By default also the OCDB is set to the GRID. | |
27 | * If either the file or the OCDB is taken from the GRID, the macros | |
28 | * connects to the Grid in the beginning. | |
29 | * | |
30 | * Input files can be specified via te run number when using the tag | |
31 | * 'raw://' followed by the string 'run12345' where the number needs | |
32 | * to be adjusted. | |
deb17658 | 33 | * |
34 | * As for the OCDB it is always a good idea to use the OCDB from the | |
35 | * Grid as this will contain all the necessary objects and the latest | |
36 | * calibration. The special URI 'raw://' is most advisable as it selects | |
37 | * the storage automatically from the run number. Other options are e.g. | |
38 | * - "alien://folder=/alice/data/2010/OCDB" | |
39 | * - "local://$ALICE_ROOT/OCDB" | |
40 | * | |
41 | * Re-running the HLT reconstruction | |
42 | * By specifying the hlt options, the HLT chain can be re-run instead | |
43 | * of just extracting the online result. E.g. the following options | |
44 | * specify to ignore the HLTOUT payload and run the two chains defined | |
45 | * in the agents. The translation of the online configuration into | |
46 | * an HLT offline chain is under development. | |
47 | * <pre> | |
48 | * ignore-hltout chains=GLOBAL-esd-converter,TPC-clusters | |
49 | * <pre> | |
50 | * | |
dd347dca | 51 | * Note: You need a valid GRID token, use 'alien-token-init' of your |
52 | * alien installation. | |
94430cc1 | 53 | * |
54 | * @author Matthias.Richter@ift.uib.no | |
55 | * @ingroup alihlt_qa | |
56 | */ | |
57 | void recraw_local(const char *filename, | |
58 | const char *cdbURI, | |
59 | int minEvent=-1, | |
dd347dca | 60 | int maxEvent=-1, |
deb17658 | 61 | const char *modules="ALL", |
62 | const char *hltOptions="loglevel=0x7c") | |
94430cc1 | 63 | { |
64 | // connect to the GRID if we use a file or OCDB from the GRID | |
65 | TString struri=cdbURI; | |
66 | TString strfile=filename; | |
67 | if (struri.BeginsWith("raw://") || | |
68 | strfile.Contains("://") && !strfile.Contains("local://")) { | |
69 | TGrid::Connect("alien"); | |
70 | } | |
71 | ||
72 | // Set the CDB storage location | |
73 | AliCDBManager * man = AliCDBManager::Instance(); | |
74 | man->SetDefaultStorage(cdbURI); | |
75 | ||
76 | // Reconstruction settings | |
77 | AliReconstruction rec; | |
78 | ||
79 | if (minEvent>=0 || maxEvent>minEvent) { | |
80 | if (minEvent<0) minEvent=0; | |
81 | if (maxEvent<minEvent) maxEvent=minEvent; | |
82 | rec.SetEventRange(minEvent,maxEvent); | |
83 | } | |
84 | ||
dd347dca | 85 | if (modules) |
86 | rec.SetRunReconstruction(modules); | |
87 | else | |
88 | rec.SetRunReconstruction("ALL"); | |
94430cc1 | 89 | |
90 | // QA options | |
dd347dca | 91 | rec.SetRunQA("HLT TPC:ALL") ; |
92 | //rec.SetQARefDefaultStorage("local://$ALICE_ROOT/QAref") ; | |
94430cc1 | 93 | |
94 | // AliReconstruction settings | |
95 | rec.SetWriteESDfriend(kTRUE); | |
96 | rec.SetInput(filename); | |
deb17658 | 97 | rec.SetOption("HLT", hltOptions); |
94430cc1 | 98 | |
99 | rec.SetRunPlaneEff(kFALSE); | |
100 | ||
101 | // switch off cleanESD | |
102 | rec.SetCleanESD(kFALSE); | |
103 | ||
104 | AliLog::Flush(); | |
105 | rec.Run(); | |
106 | ||
107 | } | |
108 | ||
dd347dca | 109 | void recraw_local(const char *filename, |
94430cc1 | 110 | int minEvent=-1, |
dd347dca | 111 | int maxEvent=-1, |
deb17658 | 112 | const char *modules="ALL", |
113 | const char *hltOptions="loglevel=0x7f") | |
dd347dca | 114 | { |
deb17658 | 115 | recraw_local(filename, "raw://", minEvent, maxEvent, modules, hltOptions); |
dd347dca | 116 | } |
117 | ||
118 | void recraw_local() | |
94430cc1 | 119 | { |
dd347dca | 120 | cout << "recraw-local: Run AliRoot reconstruction locally" << endl; |
121 | cout << " Usage: aliroot -b -q -l \\" << endl; | |
deb17658 | 122 | cout << " recraw-local.C'(\"file\", \"cdb\", minEvent, maxEvent, modules, hltOptions)'" << endl; |
dd347dca | 123 | cout << "" << endl; |
124 | cout << " Examples:" << endl; | |
125 | cout << " recraw-local.C'(\"alien:///alice/data/2009/.../....root\")' " << endl; | |
126 | cout << " recraw-local.C'(\"raw://run12345\")'" << endl; | |
127 | cout << " recraw-local.C'(\"raw://run12345\", minEvent, MaxEvent)'" << endl; | |
128 | cout << " recraw-local.C'(\"raw.root\", \"local://$PWD\", minEvent, MaxEvent)'" << endl; | |
129 | cout << "" << endl; | |
130 | cout << " Defaults" << endl; | |
131 | cout << " cdb=\"raw://\" -> take OCDB from GRID" << endl; | |
132 | cout << " minEvent=-1 -> no lower event selection" << endl; | |
133 | cout << " maxEvent=-1 -> no upper event selection" << endl; | |
134 | cout << " modules=\"ALL\" -> all modules" << endl; | |
deb17658 | 135 | cout << " hltOption=\"loglevel=0x7c\" -> logging level info and above" << endl; |
94430cc1 | 136 | } |