}
// 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;
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;
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;
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,""));
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){
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;}
// 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