X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=ANALYSIS%2FAliAnalysisGrid.h;h=62105a273fa27fc6d28dd862cb9e92ac439d4c8a;hb=d980278e2efa86226521df1bba834409471d4556;hp=3deeeb37e557d730ff42f6d8cfa6b5f7273e01f2;hpb=fe2d7fc2b7e27ceab8ef6f305fba4c3cb6d21bbe;p=u%2Fmrichter%2FAliRoot.git diff --git a/ANALYSIS/AliAnalysisGrid.h b/ANALYSIS/AliAnalysisGrid.h index 3deeeb37e55..62105a273fa 100644 --- a/ANALYSIS/AliAnalysisGrid.h +++ b/ANALYSIS/AliAnalysisGrid.h @@ -14,6 +14,8 @@ #include #endif +class TChain; + class AliAnalysisGrid : public TNamed { public: @@ -31,15 +33,28 @@ enum EPluginRunMode { kUsePars = BIT(22), kDefaultOutputs = BIT(23) }; +enum EPluginBits { + kBitMask32 = 0xffffffff, + kUseCopy = BIT(0), + kCheckCopy = BIT(1), + kKeepLogs = BIT(2), + kClearPackages = BIT(3), + kUseSubmitPolicy = BIT(4), + kProofConnectGrid = BIT(5), + kOneStageMerging = BIT(6), + kUseMCchain = BIT(7), + kLocalTest = BIT(8) +}; - AliAnalysisGrid() {} - AliAnalysisGrid(const char *name) : TNamed(name,"") {} + AliAnalysisGrid() : TNamed(), fSpecialBits(0) {} + AliAnalysisGrid(const char *name) : TNamed(name,""), fSpecialBits(0) {} virtual ~AliAnalysisGrid() {} AliAnalysisGrid(const AliAnalysisGrid& other); AliAnalysisGrid& operator=(const AliAnalysisGrid& other); // Getters virtual EPluginRunMode GetRunMode() const; // Setters + virtual void AddAdditionalLibrary(const char *name) = 0; virtual void AddIncludePath(const char *path) = 0; virtual void AddRunNumber(Int_t run) = 0; virtual void AddRunNumber(const char *run) = 0; @@ -49,6 +64,7 @@ enum EPluginRunMode { virtual void SetArguments(const char *name="") = 0; virtual void SetAnalysisMacro(const char *name="myAnalysis.C") = 0; virtual void SetAnalysisSource(const char *name="myAnalysisClass.cxx") = 0; + virtual void SetValidationScript(const char *name="validation.sh") = 0; virtual void SetAdditionalLibs(const char *list) = 0; virtual void SetPrice(Int_t price=1) = 0; virtual void SetJobTag(const char *tag="") = 0; @@ -64,15 +80,23 @@ enum EPluginRunMode { virtual void SetDataPattern(const char *pattern) = 0; virtual void SetDefaultOutputs(Bool_t flag=kTRUE) = 0; virtual void SetGridOutputDir(const char *name="output") = 0; - virtual void SetOutputArchive(const char *list="log_archive.zip:stdout,stderr root_archive.zip:*.root") = 0; + virtual void SetOutputArchive(const char *list="log_archive.zip:std*@disk=1 root_archive.zip:*.root@disk=2") = 0; virtual void SetOutputFiles(const char *list) = 0; virtual void SetInputFormat(const char *format="xml-single") = 0; virtual void SetMaxInitFailed(Int_t nfail=5) = 0; + virtual void SetTerminateFiles(const char *list) = 0; virtual void SetMergeExcludes(const char *list) = 0; + virtual void SetMergeViaJDL(Bool_t on=kTRUE) = 0; virtual void SetMasterResubmitThreshold(Int_t percentage) = 0; virtual void SetNtestFiles(Int_t nfiles) = 0; virtual void SetJDLName(const char *name="analysis.jdl") = 0; virtual void SetPreferedSE(const char *se) = 0; + virtual void SetProductionMode(Int_t mode=1) = 0; + virtual void SetRegisterExcludes(const char *list) = 0; + virtual void SetRunPrefix(const char *prefix) = 0; + virtual void SetOutputSingleFolder(const char *folder) = 0; + virtual void SetFastReadOption(Bool_t on=kTRUE) = 0; + virtual void SetOverwriteMode(Bool_t on=kTRUE) = 0; // Set run mode. Can be "full", "test", "offline", "submit" or "merge" virtual void SetRunMode(const char *mode="full"); @@ -86,11 +110,56 @@ enum EPluginRunMode { virtual void WriteAnalysisFile() = 0; virtual void WriteAnalysisMacro() = 0; virtual void WriteExecutable() = 0; - virtual void WriteValidationScript() = 0; + virtual void WriteValidationScript(Bool_t merge=kFALSE) = 0; + +// Flags + Bool_t IsUseCopy() const {return TestSpecialBit(kUseCopy);} + void SetUseCopy(Bool_t flag=kTRUE) {SetSpecialBit(kUseCopy,flag);} + Bool_t IsCheckCopy() const {return TestSpecialBit(kCheckCopy);} + void SetCheckCopy(Bool_t flag=kTRUE) {SetSpecialBit(kCheckCopy,flag);} + Bool_t IsKeepLogs() const {return TestSpecialBit(kKeepLogs);} + void SetKeepLogs(Bool_t flag=kTRUE) {SetSpecialBit(kKeepLogs,flag);} + Bool_t IsUseSubmitPolicy() const {return TestSpecialBit(kUseSubmitPolicy);} + void SetUseSubmitPolicy(Bool_t flag=kTRUE) {SetSpecialBit(kUseSubmitPolicy,flag);} + Bool_t IsOneStageMerging() const {return TestSpecialBit(kOneStageMerging);} + void SetOneStageMerging(Bool_t flag) {SetSpecialBit(kOneStageMerging,flag);} + Bool_t IsUseMCchain() const {return TestSpecialBit(kUseMCchain);} + void SetUseMCchain(Bool_t flag=kTRUE) {SetSpecialBit(kUseMCchain,flag);} + Bool_t IsLocalTest() const {return TestSpecialBit(kLocalTest);} + void SetLocalTest(Bool_t flag=kTRUE) {SetSpecialBit(kLocalTest,flag);} + +// PROOF mode + virtual void SetProofCluster(const char *cluster) = 0; + virtual void SetProofDataSet(const char *dataset) = 0; + virtual const char *GetProofDataSet() const = 0; + virtual void SetProofReset(Int_t mode) = 0; + virtual void SetClearPackages(Bool_t flag=kTRUE) {SetSpecialBit(kClearPackages,flag);} + virtual void SetProofConnectGrid(Bool_t flag=kTRUE) {SetSpecialBit(kProofConnectGrid,flag);} + virtual void SetNproofWorkers(Int_t nworkers) = 0; + virtual void SetNproofWorkersPerSlave(Int_t nworkers) = 0; + virtual void SetRootVersionForProof(const char *version) = 0; + virtual void SetAliRootMode(const char *mode) = 0; + virtual void SetProofProcessOpt(const char *proofOpt="") = 0; + virtual TString GetProofProcessOpt() = 0; + // .txt file containing the list of files to be chained in test mode + virtual void SetFileForTestMode(const char *filename) = 0; + virtual TChain *GetChainForTestMode(const char *treeName) const = 0; protected: +// Methods virtual Bool_t Connect() = 0; - virtual void SetDefaults() = 0; - ClassDef(AliAnalysisGrid, 1) // Base class for GRID utilities + virtual void SetDefaults() = 0; + void SetSpecialBit(UInt_t f) { fSpecialBits |= f & kBitMask32; } + void ResetSpecialBit(UInt_t f) { fSpecialBits &= ~(f & kBitMask32); } + void SetSpecialBit(UInt_t f, Bool_t set) {(set)?SetSpecialBit(f):ResetSpecialBit(f);} + Bool_t TestSpecialBit(UInt_t f) const { return (Bool_t) ((fSpecialBits & f) != 0); } + Int_t TestSpecialBits(UInt_t f) const { return (Int_t) (fSpecialBits & f); } + void InvertSpecialBit(UInt_t f) { fSpecialBits ^= f & kBitMask32; } + +protected: + UInt_t fSpecialBits; // special bits + + + ClassDef(AliAnalysisGrid, 2) // Base class for GRID utilities }; #endif