]>
Commit | Line | Data |
---|---|---|
33daad3d | 1 | /** |
2 | * @file HLTJetReconstruction.C | |
3 | * @brief Macro for testing HLT Jet Reconstruction | |
4 | * | |
5 | * This macro uses the ESDMCEventPublisher to publish AliMCEvents and AliESDEvents. | |
6 | * The processing is done be JetFinder's | |
7 | * Results are written to disk by a rootfile writer | |
8 | * | |
9 | * @author thaeder@kip.uni-heidelberg.de | |
10 | * @ingroup alihlt_jet | |
11 | */ | |
12 | ||
e6ae4f1e | 13 | // ---------------------------------------------------------------------------- |
14 | // -- Pythia Parameter | |
15 | // ---------------------------------------------------------------------------- | |
16 | ||
17 | enum PprRun_t { | |
18 | kPythia6Jets20_24, kPythia6Jets24_29, kPythia6Jets29_35, | |
19 | kPythia6Jets35_42, kPythia6Jets42_50, kPythia6Jets50_60, | |
20 | kPythia6Jets60_72, kPythia6Jets72_86, kPythia6Jets86_104, | |
21 | kPythia6Jets104_125, kPythia6Jets125_150, kPythia6Jets150_180, | |
22 | kPyJetJet, kPyGammaJetPHOS, kRunMax | |
23 | }; | |
24 | ||
25 | const Char_t* pprRunName[] = { | |
26 | "kPythia6Jets20_24", "kPythia6Jets24_29", "kPythia6Jets29_35", | |
27 | "kPythia6Jets35_42", "kPythia6Jets42_50", "kPythia6Jets50_60", | |
28 | "kPythia6Jets60_72", "kPythia6Jets72_86", "kPythia6Jets86_104", | |
29 | "kPythia6Jets104_125", "kPythia6Jets125_150", "kPythia6Jets150_180", | |
30 | "kPyJetJet", "kPyGammaJetPHOS" | |
31 | }; | |
32 | ||
1f9fec4a | 33 | // ---------------------------------------------------------------------------- |
34 | // -- Jet Parameter | |
35 | // ---------------------------------------------------------------------------- | |
36 | ||
37 | Float_t aConeRadius[] = { 0.4, 0.7 }; | |
38 | Float_t aCutPtSeed[] = { 4.0, 7.0, 10.0 }; | |
39 | Float_t aCutEtJet[] = { 4.0, 7.0, 10.0, 15.0 }; | |
40 | ||
e6ae4f1e | 41 | // ---------------------------------------------------------------------------- |
42 | ||
43 | ||
33daad3d | 44 | /** HLTJetReconstruction test macro |
45 | * @param nEvents Number of events which should be processed | |
46 | */ | |
1f9fec4a | 47 | void HLTJetReconstruction(Int_t nEvents=1, Bool_t generate=kFALSE, PprRun_t runType = kPythia6Jets104_125 ) { |
33daad3d | 48 | |
49 | TString writerInput; | |
e6ae4f1e | 50 | TString analysisInput; |
51 | TString jetInput; | |
33daad3d | 52 | |
e6ae4f1e | 53 | // -- Switch Logging |
54 | // ------------------- | |
55 | AliLog::SetGlobalLogLevel( AliLog::kError ); | |
33daad3d | 56 | AliHLTLogging log; |
e6ae4f1e | 57 | log.SwitchAliLog(0); |
33daad3d | 58 | |
e6ae4f1e | 59 | // -- Initialize HLT |
60 | // ------------------- | |
33daad3d | 61 | AliHLTSystem gHLT; |
e6ae4f1e | 62 | gHLT.SetGlobalLoggingLevel(0x7D); |
5ffba596 | 63 | |
64 | if ( getenv("FASTJET") ) { | |
65 | gHLT.LoadComponentLibraries("libCGAL.so"); | |
66 | gHLT.LoadComponentLibraries("libfastjet.so"); | |
67 | gHLT.LoadComponentLibraries("libSISConePlugin.so"); | |
68 | } | |
33daad3d | 69 | |
e0677301 | 70 | gHLT.LoadComponentLibraries("libESD.so"); |
71 | gHLT.LoadComponentLibraries("libSTEER.so"); | |
72 | gHLT.LoadComponentLibraries("libSTEERBase.so"); | |
73 | gHLT.LoadComponentLibraries("libAOD.so"); | |
74 | gHLT.LoadComponentLibraries("libANALYSIS.so"); | |
75 | gHLT.LoadComponentLibraries("libANALYSISalice.so"); | |
76 | gHLT.LoadComponentLibraries("libJETAN.so"); | |
0734d112 | 77 | |
78 | gHLT.LoadComponentLibraries("libAliHLTUtil.so"); | |
79 | gHLT.LoadComponentLibraries("libAliHLTJET.so"); | |
e0677301 | 80 | |
e6ae4f1e | 81 | gHLT.LoadComponentLibraries("liblhapdf.so"); |
82 | gHLT.LoadComponentLibraries("libEGPythia6.so"); | |
83 | gHLT.LoadComponentLibraries("libpythia6.so"); | |
84 | gHLT.LoadComponentLibraries("libAliPythia6.so"); | |
85 | ||
86 | // ----------------------------// | |
87 | // - - // | |
88 | // -- Parameters -- // | |
89 | // - - // | |
90 | // ----------------------------// | |
91 | ||
1f9fec4a | 92 | Float_t coneRadius = aConeRadius[0]; |
93 | Float_t cutPtSeed = aCutPtSeed[0]; | |
94 | Float_t cutEtJet = aCutEtJet[1]; | |
e6ae4f1e | 95 | |
96 | Int_t seed = 12345; | |
97 | ||
e0677301 | 98 | // ----------------------------// |
33daad3d | 99 | // - - // |
100 | // -- Publisher Components -- // | |
101 | // - - // | |
e0677301 | 102 | // ----------------------------// |
33daad3d | 103 | |
e6ae4f1e | 104 | if ( ! generate ) { |
1f9fec4a | 105 | // ------------------------------------------ |
106 | // -- The ESDMCEventPublisher | |
107 | // ------------------------------------------ | |
e6ae4f1e | 108 | TString publisherId("ESDMCEventPublisher"); |
1f9fec4a | 109 | // ------------------------------------------ |
79fe198d | 110 | // MCFAST - MC - ESD |
111 | TString publisherArg("-entrytype ESD -dataspec 0x0000001F -datapath /lustre/alice/jthaeder/data/HEAD_2010-07-09/7TeV/pp_Perugia0/014000"); | |
112 | ||
e6ae4f1e | 113 | AliHLTConfiguration ESDMCEventPublisher(publisherId.Data(), "ESDMCEventPublisher", NULL, publisherArg.Data() ); |
114 | ||
115 | if (!analysisInput.IsNull()) analysisInput+=" "; | |
116 | analysisInput += publisherId; | |
117 | ||
118 | if (!jetInput.IsNull()) jetInput+=" "; | |
119 | jetInput += publisherId; | |
120 | } | |
121 | ||
e6ae4f1e | 122 | else { |
1f9fec4a | 123 | // ------------------------------------------ |
124 | // -- The MCGenerator | |
125 | // ------------------------------------------ | |
e6ae4f1e | 126 | TString generatorId( Form("MCGenerator_%s", pprRunName[runType]) ); |
1f9fec4a | 127 | // ------------------------------------------ |
e6ae4f1e | 128 | |
129 | TString generatorArg( Form("-seed %d -nevents %d -runtype %d -coneRadius %.1f -jetCutMinEt %.1f", | |
130 | seed, nEvents, runType, coneRadius, cutEtJet)); | |
131 | ||
132 | AliHLTConfiguration mcGenerator(generatorId.Data(), "MCGenerator", NULL, generatorArg.Data() ); | |
133 | ||
134 | if (!analysisInput.IsNull()) analysisInput+=" "; | |
135 | analysisInput += generatorId; | |
136 | ||
137 | if (!jetInput.IsNull()) jetInput+=" "; | |
138 | jetInput += generatorId; | |
139 | } | |
e0677301 | 140 | |
141 | // ----------------------------// | |
33daad3d | 142 | // - - // |
143 | // -- Processing Components -- // | |
144 | // - - // | |
e0677301 | 145 | // ----------------------------// |
79fe198d | 146 | |
e6ae4f1e | 147 | #if 1 |
79fe198d | 148 | |
e6ae4f1e | 149 | // ------------------------------------------ |
e0677301 | 150 | // -- ConeJetFinder |
e6ae4f1e | 151 | // ------------------------------------------ |
e6ae4f1e | 152 | TString jetId("JETConeJet"); |
1f9fec4a | 153 | // ------------------------------------------ |
e6ae4f1e | 154 | |
79fe198d | 155 | TString jetArg( |
156 | Form("-algorithm FSCSquareCell -leading 1 -coneRadius %.1f -trackCutMinPt 0.0 -seedCutMinPt %.1f -jetCutMinEt %.1f", coneRadius, cutPtSeed, cutEtJet) | |
157 | ); | |
9b744e18 | 158 | |
e6ae4f1e | 159 | AliHLTConfiguration jetCone(jetId.Data(), "JETConeJetFinder", jetInput.Data(), jetArg.Data()); |
9b744e18 | 160 | |
e6ae4f1e | 161 | if (!analysisInput.IsNull()) analysisInput+=" "; |
162 | analysisInput += jetId; | |
6ce099ba | 163 | |
e6ae4f1e | 164 | #else |
79fe198d | 165 | |
e6ae4f1e | 166 | // ------------------------------------------ |
9b744e18 | 167 | // -- FastJetFinder |
e6ae4f1e | 168 | // ------------------------------------------ |
169 | ||
79fe198d | 170 | AliHLTConfiguration jetFinder("JETFastJet_Kt", "JETFastJetFinder", jetInput.Data(),"-finderType kt"); |
0734d112 | 171 | |
e6ae4f1e | 172 | if (!writerInput.IsNull()) writerInput+=" "; |
173 | writerInput+="JETFastJet_Kt"; | |
174 | ||
79fe198d | 175 | AliHLTConfiguration jetFinder("JETFastJet_AntiKt", "JETFastJetFinder", jetInput.Data(),"-finderType antikt"); |
e6ae4f1e | 176 | |
177 | if (!writerInput.IsNull()) writerInput+=" "; | |
178 | writerInput+="JETFastJet_AntiKt"; | |
179 | #endif | |
79fe198d | 180 | |
e6ae4f1e | 181 | // ------------------------------------------ |
182 | // -- Jet Analysis | |
183 | // ------------------------------------------ | |
e6ae4f1e | 184 | TString analysisId("JETAnalysis"); |
1f9fec4a | 185 | // ------------------------------------------ |
186 | ||
e6ae4f1e | 187 | TString analysisArg(""); |
188 | ||
189 | AliHLTConfiguration jetAnalysis(analysisId.Data(), "JETAnalysis", analysisInput.Data(), analysisArg.Data() ); | |
190 | ||
191 | if (!writerInput.IsNull()) writerInput+=" "; | |
192 | writerInput += analysisId; | |
6ce099ba | 193 | |
e0677301 | 194 | // ----------------------------// |
33daad3d | 195 | // - - // |
196 | // -- Sink Components -- // | |
197 | // - - // | |
e0677301 | 198 | // ----------------------------// |
e6ae4f1e | 199 | |
200 | TString writerArg( Form("-directory analysis -datafile analyze_%d_%s -write-all-events", nEvents, pprRunName[runType] )); | |
33daad3d | 201 | |
202 | // -- The RootFileWriter | |
79fe198d | 203 | AliHLTConfiguration rootWriter("RootWriter", "ROOTFileWriter", writerInput.Data(), writerArg.Data() ); |
e6ae4f1e | 204 | |
205 | // --------------------------- // | |
33daad3d | 206 | // - - // |
207 | // -- Run -- // | |
208 | // - - // | |
e6ae4f1e | 209 | // --------------------------- // |
33daad3d | 210 | |
211 | gHLT.BuildTaskList("RootWriter"); | |
212 | gHLT.Run(nEvents); | |
213 | ||
e6ae4f1e | 214 | return; |
33daad3d | 215 | } |