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 useXAOD ();
00143
00144
00148 public:
00149 SH::MetaObject *options ();
00150 const SH::MetaObject *options () const;
00151
00152
00161 public:
00162 static const std::string optRemoveSubmitDir;
00163
00164
00169 public:
00170 static const std::string optMaxEvents;
00171
00172
00177 public:
00178 static const std::string optSkipEvents;
00179
00180
00184
00190 public:
00191 static const std::string optFilesPerWorker;
00192
00193
00205 public:
00206 static const std::string optEventsPerWorker;
00207
00208
00215 public:
00216 static const std::string optSubmitFlags;
00217
00218
00221 public:
00222 static const std::string optCondorConf;
00223
00224
00231 public:
00232 static const std::string optCacheSize;
00233
00234
00246 public:
00247 static const std::string optCacheLearnEntries;
00248
00249
00256 public:
00257 static const std::string optD3PDPerfStats;
00258
00259
00265 public:
00266 static const std::string optD3PDReadStats;
00267
00268
00275 public:
00276 static const std::string optXAODPerfStats;
00277
00278
00284 public:
00285 static const std::string optXAODReadStats;
00286
00287
00295 public:
00296 static const std::string optD3PDCacheMinEvent;
00297 static const std::string optD3PDCacheMinEventFraction;
00298 static const std::string optD3PDCacheMinByte;
00299 static const std::string optD3PDCacheMinByteFraction;
00300
00301
00307 public:
00308 static const std::string optPerfTree;
00309
00310
00315 public:
00316 static const std::string optXaodAccessMode;
00317 static const std::string optXaodAccessMode_branch;
00318 static const std::string optXaodAccessMode_class;
00319 static const std::string optXaodAccessMode_athena;
00320
00321
00324 public:
00325 static const std::string optXAODSummaryReport;
00326
00327
00334 public:
00335 static const std::string optPrintPerFileStats;
00336
00337
00339 public:
00340 static const std::string optDisableMetrics;
00341
00342
00346 public:
00347 static const std::string optResetShell;
00348
00351 public:
00352 static const std::string optLocalNoUnsetup;
00353
00354
00356 public:
00357 static const std::string optBackgroundProcess;
00358
00359
00363 public:
00364 static const std::string optGridDestSE;
00365 static const std::string optGridSite;
00366 static const std::string optGridCloud;
00367 static const std::string optGridExcludedSite;
00368 static const std::string optGridNGBPerJob;
00369 static const std::string optGridMemory;
00370 static const std::string optGridMaxCpuCount;
00371 static const std::string optGridNFiles;
00372 static const std::string optGridNFilesPerJob;
00373 static const std::string optGridNJobs;
00374 static const std::string optGridMaxFileSize;
00375 static const std::string optGridMaxNFilesPerJob;
00376 static const std::string optGridUseChirpServer;
00377 static const std::string optGridExpress;
00378 static const std::string optGridNoSubmit;
00379 static const std::string optGridMergeOutput;
00380 static const std::string optTmpDir;
00381 static const std::string optRootVer;
00382 static const std::string optCmtConfig;
00383 static const std::string optGridDisableAutoRetry;
00384 static const std::string optOfficial;
00385 static const std::string optVoms;
00386
00389
00390 static const std::string optRetries;
00391 static const std::string optRetriesWait;
00392
00394
00395
00396
00399 public:
00400 static const std::string optBatchSharedFileSystem;
00401
00402
00403
00404
00405
00406
00407 friend void swap (Job& a, Job& b);
00408
00410 private:
00411 SH::SampleHandler m_sampleHandler;
00412 private:
00413 std::vector<EL::Algorithm*> m_algs;
00414 private:
00415 std::vector<EL::OutputStream> m_output;
00416 private:
00417 SH::MetaObject m_options;
00418 };
00419 }
00420
00421 #endif