X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=ANALYSIS%2FAliAnalysisAlien.h;h=d988c55718aeb0846b9cdddac96a2867f8ac8baa;hb=46f6e464f03a45d9173edce5d14214475d666144;hp=052c095735952c79203f7f282ced85e320002e91;hpb=648174cf0cbe00c618cf7a338a4c08d99095fe51;p=u%2Fmrichter%2FAliRoot.git diff --git a/ANALYSIS/AliAnalysisAlien.h b/ANALYSIS/AliAnalysisAlien.h index 052c0957359..d988c55718a 100644 --- a/ANALYSIS/AliAnalysisAlien.h +++ b/ANALYSIS/AliAnalysisAlien.h @@ -38,9 +38,11 @@ public: virtual void SetExecutable(const char *name="analysis.sh") {fExecutable = name;} virtual void SetExecutableCommand(const char *command="root -b -q") {fExecutableCommand = command;} virtual void SetArguments(const char *name="") {fArguments = name;} + virtual void SetExecutableArgs(const char *name="") {fExecutableArgs = name;} virtual void SetAnalysisMacro(const char *name="myAnalysis.C") {fAnalysisMacro = name;} virtual void SetAnalysisSource(const char *name="myAnalysisClass.cxx") {fAnalysisSource = name;} virtual void SetAdditionalLibs(const char *list) {fAdditionalLibs = list;} + virtual void SetAdditionalRootLibs(const char *list) {fAdditionalRootLibs = list;} virtual void SetPrice(Int_t price=1) {fPrice = price;} virtual void SetRunRange(Int_t min, Int_t max) {fRunRange[0] = min; fRunRange[1] = max;} virtual void SetJobTag(const char *tag="") {fJobTag = tag;} @@ -61,35 +63,47 @@ public: virtual void SetGridOutputDir(const char *name="output") {fGridOutputDir = name;} virtual void SetOutputArchive(const char *list="log_archive.zip:stdout,stderr root_archive.zip:*.root") {fOutputArchive = list;} virtual void SetOutputFiles(const char *list) {fOutputFiles = list;} + virtual void SetOutputToRunNo(Int_t mode=1) {fOutputToRunNo = mode;} virtual void SetInputFormat(const char *format="xml-single") {fInputFormat = format;} virtual void SetMaxInitFailed(Int_t nfail=5) {fMaxInitFailed = nfail;} virtual void SetMergeExcludes(const char *list) {fMergeExcludes = list;}; + virtual void SetMergeViaJDL(Bool_t on=kTRUE) {fMergeViaJDL = on ? 1 : 0;} virtual void SetMasterResubmitThreshold(Int_t percentage) {fMasterResubmitThreshold = percentage;} virtual void SetNtestFiles(Int_t nfiles) {fNtestFiles = nfiles;} virtual void SetJDLName(const char *name="analysis.jdl") {fJDLName = name;} virtual void SetPreferedSE(const char *se) {fCloseSE = se;} virtual void SetProductionMode(Int_t mode=1) {fProductionMode = mode;} + virtual void SetRunPrefix(const char *prefix) {fRunPrefix = prefix;} virtual void SetOutputSingleFolder(const char *folder) {fOutputSingle = folder; fSplitMode="file"; fSplitMaxInputFileNumber=1;} + virtual void SetFastReadOption(Bool_t on=kTRUE) {fFastReadOption = on ? 1 : 0;} + virtual void SetOverwriteMode(Bool_t on=kTRUE) {fOverwriteMode = on ? 1 : 0;} - TGridJDL *GetGridJDL() {return fGridJDL;} + TGridJDL *GetGridJDL() const {return fGridJDL;} + TGridJDL *GetMergingJDL() const {return fMergingJDL;} const char *GetGridOutputDir() const {return fGridOutputDir;} //Utilities + Bool_t CheckFileCopy(const char *alienpath); virtual Bool_t CreateDataset(const char *pattern); virtual Bool_t CreateJDL(); virtual void EnablePackage(const char *package); static Bool_t DirectoryExists(const char *lfn); static Bool_t FileExists(const char *lfn); - static const char *GetJobStatus(Int_t jobidstart, Int_t lastid, Int_t &nrunning, Int_t &nwaiting, Int_t &nerror, Int_t &ndone); + static const char *GetJobStatus(Int_t jobidstart, Int_t lastid, Int_t &nrunning, Int_t &nwaiting, Int_t &nerror, Int_t &ndone); + static Bool_t MergeOutput(const char *output, const char *basedir, Int_t nmaxmerge); virtual Bool_t MergeOutputs(); virtual void Print(Option_t *option="") const; virtual Bool_t StartAnalysis(Long64_t nentries=123456789, Long64_t firstentry=0); - virtual void Submit(); + static Bool_t SetupPar(const char *package); + virtual Bool_t Submit(); + virtual Bool_t SubmitMerging(); virtual void WriteAnalysisFile(); virtual void WriteAnalysisMacro(); + virtual void WriteMergingMacro(); + virtual void WriteMergeExecutable(); virtual void WriteExecutable(); virtual Bool_t WriteJDL(Bool_t copy); virtual void WriteProductionFile(const char *filename) const; - virtual void WriteValidationScript(); + virtual void WriteValidationScript(Bool_t merge=kFALSE); protected: void CdWork(); @@ -97,13 +111,15 @@ protected: void CheckDataType(const char *lfn, Bool_t &is_collection, Bool_t &is_xml, Bool_t &use_tags); virtual Bool_t Connect(); virtual void SetDefaults(); - void SubmitNext(); + Bool_t SubmitNext(); Bool_t IsCollection(const char *lfn) const; + virtual Bool_t IsSingleOutput() const; Bool_t IsUsingTags() const {return TObject::TestBit(AliAnalysisGrid::kUseTags);} private: TGridJDL *fGridJDL; //! JDL maker + TGridJDL *fMergingJDL; //! JDL maker Int_t fPrice; // Grid price for the job; Int_t fTTL; // Time to live. Int_t fSplitMaxInputFileNumber; // Maximum number of files to be processed per subjob @@ -115,13 +131,19 @@ private: Int_t fMaxMergeFiles; // Maximum number of files to be merged in one chunk Int_t fNsubmitted; // Number of jobs submitted Int_t fProductionMode; // Production mode (0-off, 1-on) + Int_t fOutputToRunNo; // Use run number as output directory + Int_t fMergeViaJDL; // Enable merging via automatic JDL + Int_t fFastReadOption; // Use xrootd tweaks to reduce timeouts in file access + Int_t fOverwriteMode; // Overwrite existing files if any TString fRunNumbers; // List of runs to be processed TString fExecutable; // Executable script for AliEn job TString fExecutableCommand; // Command(s) to be executed in the executable script TString fArguments; // Arguments for the executable script + TString fExecutableArgs; // arguments added to the executable script after the analysis macro TString fAnalysisMacro; // Root macro steering the analysis TString fAnalysisSource; // User analysis implementation (.cxx) file(s) - TString fAdditionalLibs; // List (separated by blacs) of additional libraries needed for the analysis + TString fAdditionalRootLibs; // List (separated by blacs) of additional libraries needed for/before analysis libs/par file compilation + TString fAdditionalLibs; // List (separated by blacs) of additional libraries needed for the analysis loaded AFTER all par files TString fSplitMode; // Job split mode TString fAPIVersion; // API version TString fROOTVersion; // ROOT version @@ -143,9 +165,10 @@ private: TString fFriendChainName; // File name to construct friend chain (for AOD) TString fJobTag; // Job tag TString fOutputSingle; // Directory name for the output when split is per file + TString fRunPrefix; // Run prefix to be applied to run numbers TObjArray *fInputFiles; // List of input files to be processed by the job TObjArray *fPackages; // List of packages to be used - ClassDef(AliAnalysisAlien, 8) // Class providing some AliEn utilities + ClassDef(AliAnalysisAlien, 12) // Class providing some AliEn utilities }; #endif