]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ANALYSIS/AliAnalysisAlien.h
Added extra histograms for cosmics identification
[u/mrichter/AliRoot.git] / ANALYSIS / AliAnalysisAlien.h
index 11c0f9812ec3bf0bb3cc2c3d635dae5d50e61c07..d988c55718aeb0846b9cdddac96a2867f8ac8baa 100644 (file)
@@ -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,9 +63,11 @@ 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;}
@@ -71,26 +75,35 @@ public:
    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();
@@ -98,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
@@ -116,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
@@ -148,6 +169,6 @@ private:
    TObjArray       *fInputFiles;      // List of input files to be processed by the job
    TObjArray       *fPackages;        // List of packages to be used
    
-   ClassDef(AliAnalysisAlien, 9)   // Class providing some AliEn utilities
+   ClassDef(AliAnalysisAlien, 12)   // Class providing some AliEn utilities
 };
 #endif