Tender macro should check derivation from AliESDInputHandler (to work also for RP).
authoragheata <agheata@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 23 Jun 2010 06:50:21 +0000 (06:50 +0000)
committeragheata <agheata@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 23 Jun 2010 06:50:21 +0000 (06:50 +0000)
Added protection for glibc error in validation script.

ANALYSIS/AliAnalysisAlien.cxx
ANALYSIS/TenderSupplies/AddTaskTender.C

index ea46416..f3cabbc 100644 (file)
@@ -3026,11 +3026,6 @@ void AliAnalysisAlien::WriteValidationScript(Bool_t merge)
       out << "ls -la ./"  << out_stream << endl;
       out << "echo \"* ----------------------------------------------------*\""  << out_stream << endl << endl;
       out << "##################################################" << endl;
-
-      out << "" << endl;
-      out << "parArch=`grep -Ei \"Cannot Build the PAR Archive\" stderr`" << endl;
-      out << "segViol=`grep -Ei \"Segmentation violation\" stderr`" << endl;
-      out << "segFault=`grep -Ei \"Segmentation fault\" stderr`" << endl;
       out << "" << endl;
 
       out << "if [ ! -f stderr ] ; then" << endl;
@@ -3039,6 +3034,12 @@ void AliAnalysisAlien::WriteValidationScript(Bool_t merge)
       out << "   echo \"Error = $error\" " << out_stream << endl;
       out << "fi" << endl;
 
+      out << "parArch=`grep -Ei \"Cannot Build the PAR Archive\" stderr`" << endl;
+      out << "segViol=`grep -Ei \"Segmentation violation\" stderr`" << endl;
+      out << "segFault=`grep -Ei \"Segmentation fault\" stderr`" << endl;
+      out << "glibcErr=`grep -Ei \"*** glibc detected ***\" stderr`" << endl;
+      out << "" << endl;
+
       out << "if [ \"$parArch\" != \"\" ] ; then" << endl;
       out << "   error=1" << endl;
       out << "   echo \"* ########## Job not validated - PAR archive not built  ###\" " << out_stream << endl;
@@ -3060,6 +3061,13 @@ void AliAnalysisAlien::WriteValidationScript(Bool_t merge)
       out << "   echo \"Error = $error\" " << out_stream << endl;
       out << "fi" << endl;
 
+      out << "if [ \"$glibcErr\" != \"\" ] ; then" << endl;
+      out << "   error=1" << endl;
+      out << "   echo \"* ########## Job not validated - *** glibc detected ***  ###\" " << out_stream << endl;
+      out << "   echo \"$glibcErr\" " << out_stream << endl;
+      out << "   echo \"Error = $error\" " << out_stream << endl;
+      out << "fi" << endl;
+
       // Part dedicated to the specific analyses running into the train
 
       TObjArray *arr = fOutputFiles.Tokenize(",");
@@ -3073,6 +3081,7 @@ void AliAnalysisAlien::WriteValidationScript(Bool_t merge)
          if (index > 0) output_file.Remove(index);
          if (merge && fMergeExcludes.Contains(output_file)) continue;
          if (extra.Contains(output_file)) continue;
+         if (output_file.Contains("*")) continue;
          out << "if ! [ -f " << output_file.Data() << " ] ; then" << endl;
          out << "   error=1" << endl;
          out << "   echo \"Output file(s) not found. Job FAILED !\""  << out_stream << endl;
index be23d64..df6d708 100644 (file)
@@ -6,7 +6,7 @@ AliAnalysisTask *AddTaskTender(){
     return 0;
   }
   // currently don't accept AOD input
-  if (mgr->GetInputEventHandler()->IsA()!=AliESDInputHandler::Class()) {
+  if (!mgr->GetInputEventHandler()->InheritsFrom(AliESDInputHandler::Class())) {
     Error("AddTask_tender_Tender","The analysis tender only works with ESD input!");
     return 0;
   }