]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ANALYSIS/AliAnalysisAlien.h
Coverity 15168
[u/mrichter/AliRoot.git] / ANALYSIS / AliAnalysisAlien.h
index de7141924f25919d0e38dbe2079742b1b387709a..67b0752417b2b61741f05de8b5d85553f104008e 100644 (file)
 #include <TMath.h>
 #endif
 
+#ifndef ROOT_TMap
+#include <TMap.h>
+#endif
+
+class AliAnalysisManager;
+class AliAnalysisTaskCfg;
 class TGridJDL;
 
 class AliAnalysisAlien : public AliAnalysisGrid {
@@ -34,9 +40,11 @@ public:
    AliAnalysisAlien(const AliAnalysisAlien& other); 
    AliAnalysisAlien& operator=(const AliAnalysisAlien& other);
 // Setters   
+   virtual void        AddAdditionalLibrary(const char *name);
    virtual void        AddIncludePath(const char *path);
    virtual void        AddRunNumber(Int_t run);
    virtual void        AddRunNumber(const char *run);
+   virtual void        AddRunList(const char *runList);
    virtual void        AddDataFile(const char *lfn);
    virtual void        AddExternalPackage(const char *name);
    virtual void        SetExecutable(const char *name="analysis.sh")     {fExecutable = name;}
@@ -75,12 +83,14 @@ public:
    virtual void        SetTerminateFiles(const char *list)               {fTerminateFiles = list;}
    virtual void        SetMergeExcludes(const char *list)                {fMergeExcludes = list;};
    virtual void        SetMergeViaJDL(Bool_t on=kTRUE)                   {fMergeViaJDL = on ? 1 : 0;}
+   virtual void        SetMergeDirName(const char *name)                 {fMergeDirName = name;}
    virtual void        SetMasterResubmitThreshold(Int_t percentage)      {fMasterResubmitThreshold = percentage;}
    virtual void        SetNtestFiles(Int_t nfiles)                       {fNtestFiles = nfiles;}
    virtual void        SetNumberOfReplicas(Int_t ncopies)                {fNreplicas = TMath::Min(ncopies,4);}
    virtual void        SetJDLName(const char *name="analysis.jdl")       {fJDLName = name;}
    virtual void        SetPreferedSE(const char *se);
    virtual void        SetProductionMode(Int_t mode=1)                   {fProductionMode = mode;}
+   virtual void        SetRegisterExcludes(const char *list)             {fRegisterExcludes = list;}
    virtual void        SetRunPrefix(const char *prefix);
    virtual void        SetOutputSingleFolder(const char *folder)         {fOutputSingle = folder; fSplitMode="file"; fSplitMaxInputFileNumber=1;}
    virtual void        SetFastReadOption(Bool_t on=kTRUE)                {fFastReadOption = on ? 1 : 0;}
@@ -90,8 +100,16 @@ public:
    TGridJDL           *GetMergingJDL() const {return fMergingJDL;}
    const char         *GetGridOutputDir() const                          {return fGridOutputDir;}
 //Utilities
-   Bool_t              CheckFileCopy(const char *alienpath);
+   void                AddModule(AliAnalysisTaskCfg *module);
+   void                AddModules(TObjArray *list);
+   AliAnalysisManager *CreateAnalysisManager(const char *name, const char *filename="");
+   Int_t               GetNmodules() const;
+   AliAnalysisTaskCfg *GetModule(const char *name);
+   Bool_t              LoadModules();
+   Bool_t              GenerateTest(const char *name, const char *modname="");
+   Bool_t              GenerateTrain(const char *name);
    virtual Bool_t      CreateDataset(const char *pattern);
+   Bool_t              CopyLocalDataset(const char *griddir, const char *pattern, Int_t nfiles, const char *output="data.txt", const char *archivefile="", const char *outputdir="data");
    virtual Bool_t      CreateJDL();
    virtual void        EnablePackage(const char *package);
    static Bool_t       DirectoryExists(const char *lfn);
@@ -99,6 +117,7 @@ public:
    static const char  *GetJobStatus(Int_t jobidstart, Int_t lastid, Int_t &nrunning, Int_t &nwaiting, Int_t &nerror, Int_t &ndone);
    const char         *GetListOfFiles(const char *type);
    Bool_t              CheckMergedFiles(const char *filename, const char *aliendir, Int_t nperchunk, const char *jdl="");
+   static AliAnalysisManager *LoadAnalysisManager(const char *fname);
    static Bool_t       MergeOutput(const char *output, const char *basedir, Int_t nmaxmerge, Int_t stage=0);
    virtual Bool_t      MergeOutputs();
    virtual void        Print(Option_t *option="") const;
@@ -120,6 +139,8 @@ public:
    virtual void        SetProofCluster(const char *cluster)              {fProofCluster = cluster;}
    virtual void        SetProofDataSet(const char *dataset)              {fProofDataSet = dataset;}
    virtual const char *GetProofDataSet() const                           {return fProofDataSet.Data();}
+   virtual void        SetProofParameter(const char *pname, const char *value);
+   const char         *GetProofParameter(const char *pname) const;
    virtual void        SetProofReset(Int_t mode)                         {fProofReset = mode;}
    virtual void        SetNproofWorkers(Int_t nworkers)                  {fNproofWorkers = nworkers;}
    virtual void        SetNproofWorkersPerSlave(Int_t nworkers)          {fNproofWorkersPerSlave = nworkers;}
@@ -140,6 +161,9 @@ protected:
    Bool_t              IsCollection(const char *lfn) const;
    virtual Bool_t      IsSingleOutput() const;
    Bool_t              IsUsingTags() const {return TObject::TestBit(AliAnalysisGrid::kUseTags);}
+   Bool_t              LoadModule(AliAnalysisTaskCfg *mod);
+   Bool_t              CheckDependencies();
+   Bool_t              CheckFileCopy(const char *alienpath);
 
 private:
    TGridJDL        *fGridJDL;         //! JDL maker
@@ -191,6 +215,7 @@ private:
    TString          fJDLName;         // JDL file to be generated
    TString          fTerminateFiles;  // List of output files produced during Terminate
    TString          fMergeExcludes;   // List of output files excluded from merging
+   TString          fRegisterExcludes; // List of liles not to be registered/merged
    TString          fIncludePath;     // Include path
    TString          fCloseSE;         // Preffered storage element. Taken from alien_CLOSE_SE environment.
    TString          fFriendChainName; // File name to construct friend chain (for AOD)
@@ -202,9 +227,12 @@ private:
    TString          fFileForTestMode; // .txt file for the chain to be used in PROOF test mode
    TString          fRootVersionForProof; // ROOT version to be used in PROOF mode. The default one taken if empty.
    TString          fAliRootMode;     // AliRoot mode among the list supported by the proof cluster
+   TString          fMergeDirName;    // Name of the directory that should be added to the output directory
    TObjArray       *fInputFiles;      // List of input files to be processed by the job
    TObjArray       *fPackages;        // List of packages to be used
+   TObjArray       *fModules;         // List of AliAnalysisTaskCfg modules
+   TMap             fProofParam;      // Key-value pairs for proof mode
    
-   ClassDef(AliAnalysisAlien, 16)   // Class providing some AliEn utilities
+   ClassDef(AliAnalysisAlien, 20)   // Class providing some AliEn utilities
 };
 #endif