]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Fixed overwriting of an AOD extension if a task wants to add a kParamContainer in...
authoragheata <agheata@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 30 Sep 2010 13:05:54 +0000 (13:05 +0000)
committeragheata <agheata@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 30 Sep 2010 13:05:54 +0000 (13:05 +0000)
ANALYSIS/AliAnalysisAlien.cxx
ANALYSIS/AliAnalysisManager.cxx
STEER/AliAODHandler.cxx
STEER/AliAODHandler.h
STEER/AliVEventHandler.h

index 8941488d0f4c8a59f50ab60c1bb0f5d03aa51b32..b0be7301ad2b4ab8a03ce15801d455d4fa819996 100644 (file)
@@ -2236,7 +2236,7 @@ Bool_t AliAnalysisAlien::StartAnalysis(Long64_t /*nentries*/, Long64_t /*firstEn
    }
    // Are we in PROOF mode ?
    if (mgr->IsProofMode()) {
-      Info("StartAnalysis", "##### Starting PROOF analysis on via the plugin #####");
+      Info("StartAnalysis", "##### Starting PROOF analysis on cluster <%s> via the plugin #####", fProofCluster.Data());
       if (fProofCluster.IsNull()) {
          Error("StartAnalysis", "You need to specify the proof cluster name via SetProofCluster");
          return kFALSE;
@@ -2643,7 +2643,7 @@ Bool_t AliAnalysisAlien::SubmitNext()
    if (!fNsubmitted) {
       ntosubmit = 1;
       if (!IsUseSubmitPolicy()) {
-         if (ntosubmit>5)
+         if (nmasterjobs>5)
             Info("SubmitNext","### Warning submit policy not used ! Submitting too many jobs at a time may be prohibitted. \
                 \n### You can use SetUseSubmitPolicy() to enable if you have problems.");
          ntosubmit = nmasterjobs;
index 5a2f6d2ee477fcf22f6a3107cc54981e16676843..a443ca729483315e97ff9441f043acc14aa4339c 100644 (file)
@@ -823,8 +823,10 @@ void AliAnalysisManager::Terminate()
       for (icont=0; icont<fParamCont->GetEntriesFast(); icont++) allOutputs->Add(fParamCont->At(icont));
    TIter next1(allOutputs);
    TString handlerFile = "";
+   TString extraOutputs = "";
    if (fOutputEventHandler) {
       handlerFile = fOutputEventHandler->GetOutputFileName();
+      extraOutputs = fOutputEventHandler->GetExtraOutputs();
    }
    icont = 0;
    TList filestmp;
@@ -846,7 +848,7 @@ void AliAnalysisManager::Terminate()
       if (!file) {
              //if (handlerFile == filename && !gSystem->AccessPathName(filename)) openoption = "UPDATE";
          Bool_t firsttime = kTRUE;
-         if (filestmp.FindObject(filename)) {
+         if (filestmp.FindObject(filename) || extraOutputs.Contains(filename)) {
             firsttime = kFALSE;
          } else {   
             filestmp.Add(new TNamed(filename,""));
index dd1fea22d29603ef78941dd0814a573ae5c3d185..0d0dd3013f8376741f37b93b559e07a644298ab7 100644 (file)
@@ -586,6 +586,30 @@ const char *AliAODHandler::GetOutputFileName()
    return fFileName.Data();
 }
 
+//______________________________________________________________________________
+const char *AliAODHandler::GetExtraOutputs() const
+{
+// Get extra outputs as a string separated by commas.
+   static TString eoutputs;
+   eoutputs = "";
+   TObject *obj;
+   if (fExtensions) {
+      TIter next1(fExtensions);
+      while ((obj=next1())) {
+         if (!eoutputs.IsNull()) eoutputs += ",";
+         eoutputs += obj->GetName();
+      }
+   }
+   if (fFilters) {
+      TIter next2(fFilters);
+      while ((obj=next2())) {
+         if (!eoutputs.IsNull()) eoutputs += ",";
+         eoutputs += obj->GetName();
+      }
+   }
+   return eoutputs.Data();
+}
+
 //______________________________________________________________________________
 void  AliAODHandler::SetMCHeaderInfo(AliAODMCHeader *mcHeader,AliGenEventHeader *genHeader){
 
index bebd7dacbb0d4ba19ea58b51ab24477124aeda41..32230c0581be94a04cf1096c068adbb88336df0e 100644 (file)
@@ -31,6 +31,8 @@ class AliAODHandler : public AliVEventHandler {
     virtual ~AliAODHandler();
     virtual void         SetOutputFileName(const char* fname);
     virtual const char*  GetOutputFileName();
+    // Extra outputs as a string separated by commas
+    virtual const char*  GetExtraOutputs() const;
     virtual Bool_t       Init(Option_t* option);
     virtual Bool_t       Init(TTree* /*tree*/, Option_t* /*option*/)  {return kTRUE;}
     virtual Bool_t       BeginEvent(Long64_t /*entry*/) {fFillAOD=kFALSE; return kTRUE;}
index 24a44f1b7476a821c1f2dbea65af77fec793527e..d2fe57e8613aa3459279ad67549244a8b2204a20 100644 (file)
@@ -27,6 +27,8 @@ class AliVEventHandler : public TNamed {
     // Output
     virtual void         SetOutputFileName(const char* fname)   = 0;
     virtual const char*  GetOutputFileName()              = 0;
+    // Extra outputs as a string separated by commas
+    virtual const char*  GetExtraOutputs() const {return NULL;}
     // Input
     virtual void         SetInputTree(TTree* tree)        = 0;
     // Steering