- Small bug fix
authorcblume <cblume@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 6 Oct 2009 11:04:33 +0000 (11:04 +0000)
committercblume <cblume@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 6 Oct 2009 11:04:33 +0000 (11:04 +0000)
  - Exit only if both xml-files are unreadable
  - Store runtype and start- and end-time in DCS object

TRD/AliTRDPreprocessor.cxx
TRD/Cal/AliTRDCalDCS.cxx
TRD/Cal/AliTRDCalDCS.h

index eb66cfd..08d04ef 100644 (file)
@@ -915,13 +915,14 @@ UInt_t AliTRDPreprocessor::ProcessDCSConfigData()
   //
   // return 0 for success, otherwise:
   //  5 : Could not get the SOR and EOR file from the FXS
-  //  8 : Something wrong with the SOR file
-  //  9 : Something wrong with the EOR file
+  //  8 : Both files are not valid
   // 10 : SOR XML is not well-formed
   // 11 : EOR XML is not well-formed
-  // 12 : ERROR in XML SAX validation: something wrong with the content
-  // 14 : ERROR while creating calibration objects in the handler
-  // 15 : ERROR while storing data in the CDB
+  // 12 : ERROR in SOR XML SAX validation: something wrong with the content
+  // 12 : ERROR in EOR XML SAX validation: something wrong with the content
+  // 14 : ERROR while creating SOR calibration objects in the handler
+  // 15 : ERROR while creating EOR calibration objects in the handler
+  // 16 : ERROR while storing data in the CDB
   //
 
   Log("Processing the DCS config summary files.");
@@ -939,46 +940,49 @@ UInt_t AliTRDPreprocessor::ProcessDCSConfigData()
 
   Bool_t fileExistE = true, fileExistS = true;
 
+  // check if the files are there
   if (xmlFileS == NULL) {
     Log(Form("Warning: SOR File %s not found!",xmlFileS));
-    fileExistE = false;
+    fileExistS = false;
   } else if (xmlFileE == NULL) {
     Log(Form("Warning: EOR File %s not found!",xmlFileE));
-    fileExistS = false;
+    fileExistE = false;
   } else {
     Log(Form("Both Files (%s and %s) found.",xmlFileS,xmlFileE));
   }
 
+  // test the files
   if (fileExistS) {
-    // test the files
     std::ifstream fileTestS;
     fileTestS.open(xmlFileS, std::ios_base::binary | std::ios_base::in);
     if (!fileTestS.good() || fileTestS.eof() || !fileTestS.is_open()) {
-      Log(Form("ERROR: File %s not valid!",xmlFileS));
-      return 8;
+      Log(Form("Warning: File %s not valid!",xmlFileS));
+      fileExistS = false;
     }
     fileTestS.seekg(0, std::ios_base::end);
     if (static_cast<int>(fileTestS.tellg()) < 2) {
-      Log(Form("ERROR: File %s is empty!",xmlFileS));
-      return 8;
+      Log(Form("Warning: File %s is empty!",xmlFileS));
+      fileExistS = false;
     }
   }
-
   if (fileExistE) {
     std::ifstream fileTestE;
     fileTestE.open(xmlFileE, std::ios_base::binary | std::ios_base::in);
     if (!fileTestE.good() || fileTestE.eof() || !fileTestE.is_open()) {
-      Log(Form("ERROR: File %s not valid!",xmlFileE));
-      return 9;
+      Log(Form("Warning: File %s not valid!",xmlFileE));
+      fileExistE = false;
     }
     fileTestE.seekg(0, std::ios_base::end);
     if (static_cast<int>(fileTestE.tellg()) < 2) {
-      Log(Form("ERROR: File %s is empty!",xmlFileE));
-      return 9;
+      Log(Form("Warning: File %s is empty!",xmlFileE));
+      fileExistE = false;
     }
   }
-
-  Log("Tested files are valid.");   
+  if (!fileExistS && !fileExistE) {
+    Log("ERROR: Both files (SOR/EOR) are not valid!");
+    return 8;
+  }
+  Log("One or both of the tested files are valid.");
 
   // make a robust XML validation
   TSAXParser testParser;
@@ -994,7 +998,6 @@ UInt_t AliTRDPreprocessor::ProcessDCSConfigData()
   // create parser and parse
   TSAXParser saxParserS, saxParserE;
   AliTRDSaxHandler saxHandlerS, saxHandlerE;
-
   if (fileExistS) {
     saxParserS.ConnectToHandler("AliTRDSaxHandler", &saxHandlerS);
     saxParserS.ParseFile(xmlFileS);
@@ -1003,30 +1006,26 @@ UInt_t AliTRDPreprocessor::ProcessDCSConfigData()
     saxParserE.ConnectToHandler("AliTRDSaxHandler", &saxHandlerE);
     saxParserE.ParseFile(xmlFileE);
   }
-
-  // report errors if present 
-  if (((fileExistS && saxParserS.GetParseCode() == 0) || !fileExistS) && (!fileExistE || (fileExistE && saxParserE.GetParseCode() == 0))) {
-    Log("XML file validation OK.");
-  } else {
-    if (fileExistS) {
-      Log(Form("ERROR in XML file validation. SOR Parse Code: %s", saxParserS.GetParseCode()));
-    }
-    if (fileExistE) {
-      Log(Form("ERROR in XML file validation. EOR Parse Code: %s", saxParserE.GetParseCode()));
-    }
+  // report errors of the parser if present
+  if (fileExistS && saxParserS.GetParseCode() != 0) {
+    Log(Form("ERROR in XML file validation. SOR Parse Code: %s", saxParserS.GetParseCode()));
     return 12;
   }
-  if (((fileExistS && saxHandlerS.GetHandlerStatus() == 0) || !fileExistS) && (!fileExistE || (saxHandlerE.GetHandlerStatus() == 0))) {
-    Log("SAX handler reports no errors.");
-  } else  {
-    if (fileExistS) {
-      Log(Form("ERROR while creating calibration objects. SOR Error code: %s", saxHandlerS.GetHandlerStatus()));
-    }
-    if (fileExistE) {
-      Log(Form("ERROR while creating calibration objects. EOR Error code: %s", saxHandlerE.GetHandlerStatus()));
-    }
-    return 14;
+  if (fileExistE && saxParserE.GetParseCode() != 0) {
+    Log(Form("ERROR in XML file validation. EOR Parse Code: %s", saxParserE.GetParseCode()));
+    return 13;
   }
+  Log("XML file validation OK.");
+  // report errors of the handler if present
+  if (fileExistS && saxHandlerS.GetHandlerStatus() != 0) {
+    Log(Form("ERROR while creating calibration objects. SOR Error code: %s", saxHandlerS.GetHandlerStatus()));
+    return 14;  
+  }
+  if (fileExistE && saxHandlerE.GetHandlerStatus() != 0) {
+    Log(Form("ERROR while creating calibration objects. EOR Error code: %s", saxHandlerE.GetHandlerStatus()));
+    return 15;
+  }
+  Log("SAX handler reports no errors.");
 
   // put both objects in one TObjArray to store them
   TObjArray* fCalObjArray = new TObjArray(2);
@@ -1036,13 +1035,21 @@ UInt_t AliTRDPreprocessor::ProcessDCSConfigData()
   if (fileExistS) {
     AliTRDCalDCS* fCalDCSObjSOR = saxHandlerS.GetCalDCSObj();
     fCalDCSObjSOR->EvaluateGlobalParameters();
+    fCalDCSObjSOR->SetRunType(GetRunType());
+    fCalDCSObjSOR->SetStartTime(GetStartTimeDCSQuery());
+    fCalDCSObjSOR->SetEndTime(GetEndTimeDCSQuery());
     fCalObjArray->AddAt(fCalDCSObjSOR,0);
+    Log("TRDCalDCS object for SOR created.");
   }
 
   if (fileExistE) {
     AliTRDCalDCS* fCalDCSObjEOR = saxHandlerE.GetCalDCSObj();
     fCalDCSObjEOR->EvaluateGlobalParameters();
+    fCalDCSObjEOR->SetRunType(GetRunType());
+    fCalDCSObjEOR->SetStartTime(GetStartTimeDCSQuery());
+    fCalDCSObjEOR->SetEndTime(GetEndTimeDCSQuery());
     fCalObjArray->AddAt(fCalDCSObjEOR,1);
+    Log("TRDCalDCS object for EOR created.");
   }
 
   // store the DCS calib data in the CDB
@@ -1052,14 +1059,14 @@ UInt_t AliTRDPreprocessor::ProcessDCSConfigData()
   metaData1.SetComment("DCS configuration data in two AliTRDCalDCS objects in one TObjArray (0:SOR, 1:EOR).");
   if (!Store("Calib", "DCS", fCalObjArray, &metaData1, 0, kTRUE)) {
     Log("problems while storing DCS config data object");
-    return 15;
+    return 16;
   } else {
     Log("DCS config data object stored.");
   }
 
   //delete fCalObjArray;
 
-  Log("Processing of the DCS config summary file DONE.");  
+  Log("SUCCESS: Processing of the DCS config summary file DONE.");  
   return 0;
 }
 
index 9969a19..6a26d84 100644 (file)
@@ -51,6 +51,9 @@ AliTRDCalDCS::AliTRDCalDCS()
   ,fFEEArr(new TObjArray(540))
   ,fPTRArr(new TObjArray(6))
   ,fGTUObj(new AliTRDCalDCSGTU())
+  ,fRunType("")
+  ,fStartTime(0)
+  ,fEndTime(0)
 {
   //
   // AliTRDCalDCS default constructor
@@ -81,6 +84,9 @@ AliTRDCalDCS::AliTRDCalDCS(const Text_t *name, const Text_t *title)
   ,fFEEArr(new TObjArray(540))
   ,fPTRArr(new TObjArray(6))
   ,fGTUObj(new AliTRDCalDCSGTU())
+  ,fRunType("")
+  ,fStartTime(0)
+  ,fEndTime(0)
 {
   //
   // AliTRDCalDCS constructor
@@ -111,6 +117,9 @@ AliTRDCalDCS::AliTRDCalDCS(const AliTRDCalDCS &cd)
   ,fFEEArr(new TObjArray(540))
   ,fPTRArr(new TObjArray(6))
   ,fGTUObj(new AliTRDCalDCSGTU())
+  ,fRunType("")
+  ,fStartTime(0)
+  ,fEndTime(0)
 {
   //
   // AliTRDCalDCS copy constructor
@@ -194,3 +203,4 @@ void AliTRDCalDCS::EvaluateGlobalParameters()
   }
 }
 
+
index 65960c4..778b53f 100644 (file)
@@ -34,6 +34,9 @@ class AliTRDCalDCS : public TNamed {
   void    SetFEEArr(TObjArray * const fa)      { fFEEArr              = fa;    }
   void    SetPTRArr(TObjArray * const pa)      { fPTRArr              = pa;    }
   void    SetGTUObj(AliTRDCalDCSGTU *go)       { fGTUObj              = go;    }
+  void    SetRunType(TString rt)               { fRunType = rt;                }
+  void    SetStartTime(UInt_t st)              { fStartTime = st;              }
+  void    SetEndTime(UInt_t et)                { fEndTime = et;                }
   
   Int_t   GetGlobalNumberOfTimeBins() const    { return fGNumberOfTimeBins;    }
   Int_t   GetGlobalConfigTag() const           { return fGConfigTag;           }
@@ -53,6 +56,9 @@ class AliTRDCalDCS : public TNamed {
   TString GetGlobalTrackletDef() const         { return fGTrackletDef;         }
   TString GetGlobalTriggerSetup() const        { return fGTriggerSetup;        }
   TString GetGlobalAddOptions() const          { return fGAddOptions;          }
+  TString GetRunType() const                   { return fRunType;              }
+  UInt_t  GetStartTime() const                 { return fStartTime;            }
+  UInt_t  GetEndTime() const                   { return fEndTime;              }
   TObjArray*       GetFEEArr() const           { return fFEEArr;               }
   TObjArray*       GetPTRArr() const           { return fPTRArr;               }
   AliTRDCalDCSFEE* GetCalDCSFEEObj(Int_t det) 
@@ -83,15 +89,18 @@ class AliTRDCalDCS : public TNamed {
   TString fGTrackletDef;         // definition for tracklet mode trk (empty if diverse)
   TString fGTriggerSetup;        // trigger setup (ptrg, autotrg, autol0) (empty if diverse)
   TString fGAddOptions;          // additional options (nopm, nion) (empty if diverse)
-
+  TString fRunType;              // the type of run (physics, pedestal, ...)
+  UInt_t  fStartTime;            // value from GetStartTimeDCSQuery
+  UInt_t  fEndTime;              // value from GetiEndTimeDCSQuery
   
-  //individual configuration parameters
-  TObjArray *fFEEArr; // config param of the individual chambers
-  TObjArray *fPTRArr; // config param of the pretrigger
+  // individual configuration parameters
+  TObjArray *fFEEArr;            // config param of the individual chambers
+  TObjArray *fPTRArr;            // config param of the pretrigger
 
-  AliTRDCalDCSGTU *fGTUObj;
+  AliTRDCalDCSGTU *fGTUObj;      // GTU object
 
-  ClassDef(AliTRDCalDCS,3)         //  TRD calibration class for TRD DCS parameters
+  ClassDef(AliTRDCalDCS,4)       //  TRD calibration class for TRD DCS parameters
 
 };
 #endif
+