00001 #ifndef EVENT_LOOP_JOB_HH
00002 #define EVENT_LOOP_JOB_HH
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00017
00018
00019
00020 #include <EventLoop/Global.h>
00021
00022 #include <vector>
00023 #include <SampleHandler/SampleHandler.h>
00024 #include <SampleHandler/MetaObject.h>
00025
00026 namespace EL
00027 {
00030 void swap (Job& a, Job& b);
00031
00032
00033 class Job
00034 {
00035
00036
00037
00038
00041 public:
00042 void testInvariant () const;
00043
00044
00048 public:
00049 Job ();
00050
00051
00055 public:
00056 Job (const Job& that);
00057
00058
00061 public:
00062 ~Job ();
00063
00064
00069 public:
00070 Job& operator = (const Job& that);
00071
00072
00076 public:
00077 const SH::SampleHandler& sampleHandler () const;
00078 void sampleHandler (const SH::SampleHandler& val_sampleHandler);
00079
00080
00085 public:
00086 typedef std::vector<EL::Algorithm*>::const_iterator algsIter;
00087 algsIter algsBegin () const;
00088 algsIter algsEnd () const;
00089 void algsAdd (Algorithm *alg_swallow);
00090
00091
00102 public:
00103 void algsAddClone (const Algorithm& alg);
00104
00105
00108 public:
00109 bool algsHas (const std::string& name) const;
00110
00111
00121 public:
00122 typedef OutputStream* outputMIter;
00123 typedef const OutputStream* outputIter;
00124 outputMIter outputBegin ();
00125 outputIter outputBegin () const;
00126 outputMIter outputEnd ();
00127 outputIter outputEnd () const;
00128 void outputAdd (const OutputStream& val_output);
00129
00130
00133 public:
00134 bool outputHas (const std::string& name) const;
00135
00136
00141 public:
00142 void useD3PDReader ();
00143
00144
00149 public:
00150 void useXAOD ();
00151
00152
00156 public:
00157 SH::MetaObject *options ();
00158 const SH::MetaObject *options () const;
00159
00160
00169 public:
00170 static const std::string optRemoveSubmitDir;
00171
00172
00177 public:
00178 static const std::string optMaxEvents;
00179
00180
00185 public:
00186 static const std::string optSkipEvents;
00187
00188
00192
00198 public:
00199 static const std::string optFilesPerWorker;
00200
00201
00213 public:
00214 static const std::string optEventsPerWorker;
00215
00216
00223 public:
00224 static const std::string optSubmitFlags;
00225
00226
00229 public:
00230 static const std::string optCondorConf;
00231
00232
00239 public:
00240 static const std::string optCacheSize;
00241
00242
00254 public:
00255 static const std::string optCacheLearnEntries;
00256
00257
00264 public:
00265 static const std::string optD3PDPerfStats;
00266
00267
00273 public:
00274 static const std::string optD3PDReadStats;
00275
00276
00283 public:
00284 static const std::string optXAODPerfStats;
00285
00286
00292 public:
00293 static const std::string optXAODReadStats;
00294
00295
00303 public:
00304 static const std::string optD3PDCacheMinEvent;
00305 static const std::string optD3PDCacheMinEventFraction;
00306 static const std::string optD3PDCacheMinByte;
00307 static const std::string optD3PDCacheMinByteFraction;
00308
00309
00315 public:
00316 static const std::string optPerfTree;
00317
00318
00323 public:
00324 static const std::string optXaodAccessMode;
00325 static const std::string optXaodAccessMode_branch;
00326 static const std::string optXaodAccessMode_class;
00327 static const std::string optXaodAccessMode_athena;
00328
00329
00332 public:
00333 static const std::string optXAODSummaryReport;
00334
00335
00342 public:
00343 static const std::string optPrintPerFileStats;
00344
00345
00347 public:
00348 static const std::string optDisableMetrics;
00349
00350
00354 public:
00355 static const std::string optResetShell;
00356
00359 public:
00360 static const std::string optLocalNoUnsetup;
00361
00362
00364 public:
00365 static const std::string optBackgroundProcess;
00366
00367
00371 public:
00372 static const std::string optGridDestSE;
00373 static const std::string optGridSite;
00374 static const std::string optGridCloud;
00375 static const std::string optGridExcludedSite;
00376 static const std::string optGridNGBPerJob;
00377 static const std::string optGridMemory;
00378 static const std::string optGridMaxCpuCount;
00379 static const std::string optGridNFiles;
00380 static const std::string optGridNFilesPerJob;
00381 static const std::string optGridNJobs;
00382 static const std::string optGridMaxFileSize;
00383 static const std::string optGridMaxNFilesPerJob;
00384 static const std::string optGridUseChirpServer;
00385 static const std::string optGridExpress;
00386 static const std::string optGridNoSubmit;
00387 static const std::string optGridMergeOutput;
00388 static const std::string optTmpDir;
00389 static const std::string optRootVer;
00390 static const std::string optCmtConfig;
00391 static const std::string optGridDisableAutoRetry;
00392 static const std::string optOfficial;
00393 static const std::string optVoms;
00394
00397
00398 static const std::string optRetries;
00399 static const std::string optRetriesWait;
00400
00402
00403
00404
00407 public:
00408 static const std::string optBatchSharedFileSystem;
00409
00410
00411
00412
00413
00414
00415 friend void swap (Job& a, Job& b);
00416
00418 private:
00419 SH::SampleHandler m_sampleHandler;
00420 private:
00421 std::vector<EL::Algorithm*> m_algs;
00422 private:
00423 std::vector<EL::OutputStream> m_output;
00424 private:
00425 SH::MetaObject m_options;
00426 };
00427 }
00428
00429 #endif