updates for DA: timestamp reading fix + allow to read parameters/cuts from file
authordsilverm <dsilverm@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 29 Sep 2009 18:36:46 +0000 (18:36 +0000)
committerdsilverm <dsilverm@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 29 Sep 2009 18:36:46 +0000 (18:36 +0000)
EMCAL/AliCaloCalibPedestal.cxx
EMCAL/AliCaloCalibPedestal.h
EMCAL/AliCaloCalibSignal.cxx
EMCAL/AliCaloCalibSignal.h
EMCAL/EMCALLEDda.cxx
EMCAL/EMCALPEDda.cxx

index d69d650..27e2d89 100644 (file)
@@ -37,6 +37,7 @@
 #include "TH1.h"
 #include "TFile.h"
 #include <fstream>
+#include <sstream>
 #include <iostream>
 #include <cmath>
 
@@ -307,6 +308,98 @@ void AliCaloCalibPedestal::Reset()
   //To think about: should fReference be deleted too?... let's not do it this time, at least...
 }
 
+// Parameter/cut handling
+//_____________________________________________________________________
+void AliCaloCalibPedestal::SetParametersFromFile(const char *parameterFile)
+{
+  static const string delimitor("::");
+       
+  // open, check input file
+  ifstream in( parameterFile );
+  if( !in ) {
+    printf("in AliCaloCalibPedestal::SetParametersFromFile - Using default/run_time parameters.\n");
+    return;
+  } 
+
+  // Note: this method is a bit more complicated than it really has to be
+  // - allowing for multiple entries per line, arbitrary order of the
+  // different variables etc. But I wanted to try and do this in as
+  // correct a C++ way as I could (as an exercise).
+
+  // read in
+  char readline[1024];
+  while ((in.rdstate() & ios::failbit) == 0 ) {
+    
+    // Read into the raw char array and then construct a string
+    // to do the searching
+    in.getline(readline, 1024);
+    istringstream s(readline);         
+               
+    while ( ( s.rdstate() & ios::failbit ) == 0 ) {
+                       
+      string key_value; 
+      s >> key_value;
+      
+      // check stream status
+      if( s.rdstate() & ios::failbit ) break;
+                       
+      // skip rest of line if comments found
+      if( key_value.substr( 0, 2 ) == "//" ) break;
+                       
+      // look for "::" in key_value pair
+      size_t position = key_value.find( delimitor );
+      if( position == string::npos ) {
+       printf("wrong format for key::value pair: %s\n", key_value.c_str());
+      }
+                               
+      // split key_value pair
+      string key( key_value.substr( 0, position ) );
+      string value( key_value.substr( position+delimitor.size(), 
+                                     key_value.size()-delimitor.size() ) );
+                       
+      // check value does not contain a new delimitor
+      if( value.find( delimitor ) != string::npos ) {
+       printf("wrong format for key::value pair: %s\n", key_value.c_str());
+      }
+      
+      // debug: check key value pair
+      // printf("AliCaloCalibPedestal::SetParametersFromFile - key %s value %s\n", key.c_str(), value.c_str());
+
+      // if the key matches with something we expect, we assign the new value
+      istringstream iss(value);
+      // the comparison strings defined at the beginning of this method
+      if ( (key == "fFirstPedestalSample") || (key == "fLastPedestalSample") ) {
+       printf("AliCaloCalibPedestal::SetParametersFromFile - key %s value %s\n", key.c_str(), value.c_str());
+
+       if (key == "fFirstPedestalSample") { 
+         iss >> fFirstPedestalSample; 
+       }
+       else if (key == "fLastPedestalSample") { 
+         iss >> fLastPedestalSample; 
+       }
+      } // some match
+
+    }          
+  }
+
+  in.close();
+  return;
+       
+}
+
+//_____________________________________________________________________
+void AliCaloCalibPedestal::WriteParametersToFile(const char *parameterFile)
+{
+  static const string delimitor("::");
+  ofstream out( parameterFile );
+  out << "// " << parameterFile << endl;
+  out << "fFirstPedestalSample" << "::" << fFirstPedestalSample << endl;
+  out << "fLastPedestalSample" << "::" << fLastPedestalSample << endl;
+
+  out.close();
+  return;
+}
+
 //_____________________________________________________________________
 Bool_t AliCaloCalibPedestal::AddInfo(const AliCaloCalibPedestal *ped)
 {
index 252d3c0..c7e8233 100644 (file)
@@ -54,6 +54,10 @@ class AliCaloCalibPedestal : public TObject {
   AliCaloAltroMapping **GetAltroMapping() { return fMapping; };
   void  SetAltroMapping(AliCaloAltroMapping **mapp) { fMapping = mapp; };
 
+  // Parameter/cut handling
+  void SetParametersFromFile(const char *parameterFile);
+  void WriteParametersToFile(const char *parameterFile);
+
   ////////////////////////////
   //Simple getters
   // Main profiles:
@@ -184,7 +188,7 @@ class AliCaloCalibPedestal : public TObject {
   static const int fgkPhosCols = 56; // number of columns per module for PHOS
   static const int fgkPhosModules = 5; // number of modules for PHOS
   
-  ClassDef(AliCaloCalibPedestal, 4)
+  ClassDef(AliCaloCalibPedestal, 5)
 
 };
     
index f86365e..eef6e0b 100644 (file)
 //  fSignals->GetXXX..()
 // etc.
 //________________________________________________________________________
+#include <string>
+#include <sstream>
+#include <fstream>
 
 #include "TProfile.h"
 #include "TFile.h"
 
 #include "AliRawReader.h"
-#include "AliRawEventHeaderBase.h"
 #include "AliCaloRawStreamV3.h"
 
 //The include file
@@ -265,6 +267,101 @@ Bool_t AliCaloCalibSignal::CheckFractionAboveAmp(int *AmpVal,
   return returnCode;
 }
 
+// Parameter/cut handling
+//_____________________________________________________________________
+void AliCaloCalibSignal::SetParametersFromFile(const char *parameterFile)
+{
+  static const string delimitor("::");
+       
+  // open, check input file
+  ifstream in( parameterFile );
+  if( !in ) {
+    printf("in AliCaloCalibSignal::SetParametersFromFile - Using default/run_time parameters.\n");
+    return;
+  } 
+
+  // Note: this method is a bit more complicated than it really has to be
+  // - allowing for multiple entries per line, arbitrary order of the
+  // different variables etc. But I wanted to try and do this in as
+  // correct a C++ way as I could (as an exercise).
+
+  // read in
+  char readline[1024];
+  while ((in.rdstate() & ios::failbit) == 0 ) {
+    
+    // Read into the raw char array and then construct a string
+    // to do the searching
+    in.getline(readline, 1024);
+    istringstream s(readline);         
+               
+    while ( ( s.rdstate() & ios::failbit ) == 0 ) {
+                       
+      string key_value; 
+      s >> key_value;
+      
+      // check stream status
+      if( s.rdstate() & ios::failbit ) break;
+                       
+      // skip rest of line if comments found
+      if( key_value.substr( 0, 2 ) == "//" ) break;
+                       
+      // look for "::" in key_value pair
+      size_t position = key_value.find( delimitor );
+      if( position == string::npos ) {
+       printf("wrong format for key::value pair: %s\n", key_value.c_str());
+      }
+                               
+      // split key_value pair
+      string key( key_value.substr( 0, position ) );
+      string value( key_value.substr( position+delimitor.size(), 
+                                     key_value.size()-delimitor.size() ) );
+                       
+      // check value does not contain a new delimitor
+      if( value.find( delimitor ) != string::npos ) {
+       printf("wrong format for key::value pair: %s\n", key_value.c_str());
+      }
+      
+      // debug: check key value pair
+      // printf("AliCaloCalibSignal::SetParametersFromFile - key %s value %s\n", key.c_str(), value.c_str());
+
+      // if the key matches with something we expect, we assign the new value
+      if ( (key == "fAmpCut") || (key == "fReqFractionAboveAmpCutVal") || (key == "fSecInAverage") ) {
+       istringstream iss(value);
+       printf("AliCaloCalibSignal::SetParametersFromFile - key %s value %s\n", key.c_str(), value.c_str());
+
+       if (key == "fAmpCut") { 
+         iss >> fAmpCut; 
+       }
+       else if (key == "fReqFractionAboveAmpCutVal") { 
+         iss >> fReqFractionAboveAmpCutVal; 
+       }
+       else if (key == "fSecInAverage") { 
+         iss >> fSecInAverage; 
+       }
+      } // some match found/expected
+
+    }          
+  }
+
+  in.close();
+  return;
+       
+}
+
+//_____________________________________________________________________
+void AliCaloCalibSignal::WriteParametersToFile(const char *parameterFile)
+{
+  static const string delimitor("::");
+  ofstream out( parameterFile );
+  out << "// " << parameterFile << endl;
+  out << "fAmpCut" << "::" << fAmpCut << endl;
+  out << "fReqFractionAboveAmpCutVal" << "::" << fReqFractionAboveAmpCutVal << endl;
+  out << "fSecInAverage" << "::" << fSecInAverage << endl;
+
+  out.close();
+  return;
+}
+
 //_____________________________________________________________________
 Bool_t AliCaloCalibSignal::AddInfo(const AliCaloCalibSignal *sig)
 {
@@ -336,11 +433,11 @@ Bool_t AliCaloCalibSignal::ProcessEvent(AliRawReader *rawReader)
   // if fMapping is NULL the rawstream will crate its own mapping
   AliCaloRawStreamV3 rawStream(rawReader, fCaloString, (AliAltroMapping**)fMapping);
 
-  return ProcessEvent( &rawStream, (AliRawEventHeaderBase*)rawReader->GetEventHeader() );
+  return ProcessEvent( &rawStream, rawReader->GetTimestamp() );
 }
 
 //_____________________________________________________________________
-Bool_t AliCaloCalibSignal::ProcessEvent(AliCaloRawStreamV3 *in, AliRawEventHeaderBase *aliHeader)
+Bool_t AliCaloCalibSignal::ProcessEvent(AliCaloRawStreamV3 *in, UInt_t Timestamp)
 { 
   // Method to process=analyze one event in the data stream
   if (!in) return kFALSE; //Return right away if there's a null pointer
@@ -458,10 +555,10 @@ Bool_t AliCaloCalibSignal::ProcessEvent(AliCaloRawStreamV3 *in, AliRawEventHeade
   fNAcceptedEvents++; // one more event accepted
 
   if (fStartTime == 0) { // if start-timestamp wasn't set,we'll pick it up from the first event we encounter
-    fStartTime = aliHeader->Get("Timestamp");
+    fStartTime = Timestamp;
   }
 
-  fHour = (aliHeader->Get("Timestamp")-fStartTime)/(double)fgkNumSecInHr;
+  fHour = (Timestamp - fStartTime)/(double)fgkNumSecInHr;
   if (fLatestHour < fHour) {
     fLatestHour = fHour; 
   }
index 72eb53f..c3e2297 100644 (file)
@@ -28,7 +28,6 @@
 class AliCaloRawStreamV3;
 class AliCaloAltroMapping;
 class AliRawReader;
-class AliRawEventHeaderBase;
 
 class AliCaloCalibSignal : public TObject {
   
@@ -45,13 +44,17 @@ class AliCaloCalibSignal : public TObject {
   
   // Event processing methods:
   Bool_t ProcessEvent(AliRawReader *rawReader);
-  Bool_t ProcessEvent(AliCaloRawStreamV3 *in, AliRawEventHeaderBase *aliHeader); // added header for time info
+  Bool_t ProcessEvent(AliCaloRawStreamV3 *in, UInt_t Timestamp); // added header for time info
   Bool_t CheckFractionAboveAmp(int *AmpVal, int resultArray[]); // check fraction of signals to check for LED events
 
   // Mapping handling
   AliCaloAltroMapping **GetAltroMapping() { return fMapping; };
   void  SetAltroMapping(AliCaloAltroMapping **mapp) { fMapping = mapp; };
 
+  // Parameter/cut handling
+  void SetParametersFromFile(const char *parameterFile);
+  void WriteParametersToFile(const char *parameterFile);
+
   ////////////////////////////
   //Simple getters
   // for TTree
@@ -203,7 +206,7 @@ class AliCaloCalibSignal : public TObject {
   int fNLowGain[fgkMaxTowers]; // same, for low gain
   int fNRef[fgkMaxRefs * 2]; // same, for LED refs; *2 for both gains
   
-  ClassDef(AliCaloCalibSignal, 4) // don't forget to change version if you change class member list..
+  ClassDef(AliCaloCalibSignal, 5) // don't forget to change version if you change class member list..
     
 };
     
index 7ef10f8..a2f4388 100644 (file)
@@ -78,12 +78,12 @@ int main(int argc, char **argv) {
                                        "TStreamerInfo",
                                        "RIO",
                                        "TStreamerInfo()"); 
-
+  
   int i, status;
-
+  
   /* log start of process */
   printf("EMCAL DA started - %s\n",__FILE__);
-
+  
   /* declare monitoring program */
   status=monitorDeclareMp( __FILE__ );
   if (status!=0) {
@@ -93,10 +93,10 @@ int main(int argc, char **argv) {
   /* define wait event timeout - 1s max */
   monitorSetNowait();
   monitorSetNoWaitNetworkTimeout(1000);
-
+  
   /* Retrieve mapping files from DAQ DB */ 
- const char* mapFiles[kNRCU] = {"RCU0A.data","RCU1A.data","RCU0C.data","RCU1C.data"};
-
+  const char* mapFiles[kNRCU] = {"RCU0A.data","RCU1A.data","RCU0C.data","RCU1C.data"};
+  
   for(Int_t iFile=0; iFile<kNRCU; iFile++) {
     int failed = daqDA_DB_getFile(mapFiles[iFile], mapFiles[iFile]);
     if(failed) { 
@@ -114,29 +114,44 @@ int main(int argc, char **argv) {
   TString path = "./";
   path += "RCU";
   TString path2;
-TString side[] = {"A","C"};//+ and - pseudorapidity supermodules
- for(Int_t j = 0; j < 2; j++){
-  for(Int_t i = 0; i < 2; i++) {
-    path2 = path;
-    path2 += i;
-    path2 += side[j]; 
-    path2 += ".data";
-    mapping[j*2 + i] = new AliCaloAltroMapping(path2.Data());
+  TString side[] = {"A","C"};//+ and - pseudorapidity supermodules
+  for(Int_t j = 0; j < 2; j++){
+    for(Int_t i = 0; i < 2; i++) {
+      path2 = path;
+      path2 += i;
+      path2 += side[j]; 
+      path2 += ".data";
+      mapping[j*2 + i] = new AliCaloAltroMapping(path2.Data());
+    }
   }
- }
-
+  
+  /* Retrieve cut=parameter file from DAQ DB */ 
+  const char* parameterFile = {"EMCALLEDda.dat"};
+  
+  int failed = daqDA_DB_getFile(parameterFile, parameterFile);
+  if (failed) { 
+    printf("Cannot retrieve file : %s from DAQ DB. Exit now..\n",
+          parameterFile);
+#ifdef LOCAL_DEBUG
+#else
+    return -1;
+#endif
+  }
+  
   /* set up our analysis classes */  
   AliCaloCalibPedestal * calibPedestal = new AliCaloCalibPedestal(AliCaloCalibPedestal::kEmCal); 
   calibPedestal->SetAltroMapping( mapping );
+  calibPedestal->SetParametersFromFile( parameterFile );
   AliCaloCalibSignal * calibSignal = new AliCaloCalibSignal(AliCaloCalibSignal::kEmCal); 
   calibSignal->SetAltroMapping( mapping );
-
+  calibSignal->SetParametersFromFile( parameterFile );
+  
   AliRawReader *rawReader = NULL;
   int nevents=0;
-
+  
   /* loop over RAW data files */
   for ( i=1; i<argc; i++ ) {
-
+    
     /* define data source : this is argument i */
     printf("Processing file %s\n", argv[i]);
     status=monitorSetDataSource( argv[i] );
@@ -144,16 +159,16 @@ TString side[] = {"A","C"};//+ and - pseudorapidity supermodules
       printf("monitorSetDataSource() failed. Error=%s. Exiting ...\n", monitorDecodeError(status));
       return -1;
     }
-
+    
     /* read until EOF */
     struct eventHeaderStruct *event;
     eventTypeType eventT;
-
+    
     for ( ; ; ) { // infinite loop
-
+      
       /* check shutdown condition */
       if (daqDA_checkShutdown()) {break;}
-
+      
       /* get next event (blocking call until timeout) */
       status=monitorGetEventDynamic((void **)&event);
       if (status==MON_ERR_EOF) {
@@ -164,37 +179,39 @@ TString side[] = {"A","C"};//+ and - pseudorapidity supermodules
        printf("monitorGetEventDynamic() failed : %s\n",monitorDecodeError(status));
        break;
       }
-
+      
       /* retry if got no event */
       if (event==NULL) {
        continue;
       }
       eventT = event->eventType; /* just convenient shorthand */
-
+      
       /* skip start/end of run events */
       if ( (eventT != physicsEvent) && (eventT != calibrationEvent) ) {
        continue;
       }
-
+      
       nevents++; // count how many acceptable events we have
-
+      
       //  Signal calibration
       rawReader = new AliRawReaderDate((void*)event);
+      calibSignal->SetRunNumber(event->eventRunNb);
       calibSignal->ProcessEvent(rawReader);
       rawReader->Reset();
+      calibPedestal->SetRunNumber(event->eventRunNb);
       calibPedestal->ProcessEvent(rawReader);
       delete rawReader;
-
+      
       /* free resources */
       free(event);    
-
+      
     } //until EOF
   } // loop over files
-
+  
   // calculate average values also, for the LED info
   calibSignal->SetUseAverage(kTRUE);
   calibSignal->Analyze();
-
+  
   // by default, we only save the full info in debug mode  
 #ifdef LOCAL_DEBUG
 #else
@@ -202,13 +219,13 @@ TString side[] = {"A","C"};//+ and - pseudorapidity supermodules
   calibSignal->GetTreeAmpVsTime()->Reset();
   calibSignal->GetTreeLEDAmpVsTime()->Reset();
 #endif
-
+  
   //
   // write class to rootfile
   //
-
+  
   printf ("%d physics/calibration events processed.\n",nevents);
-
+  
   TFile f(RESULT_FILE, "recreate");
   if (!f.IsZombie()) { 
     f.cd();
@@ -222,7 +239,7 @@ TString side[] = {"A","C"};//+ and - pseudorapidity supermodules
     printf("Could not save the object to file \"%s\".\n", 
           RESULT_FILE);
   }
-
+  
   //
   // closing down; see if we can delete our analysis helper(s) also
   //
@@ -231,12 +248,12 @@ TString side[] = {"A","C"};//+ and - pseudorapidity supermodules
   for(Int_t iFile=0; iFile<kNRCU; iFile++) {
     if (mapping[iFile]) delete mapping[iFile];
   }
-
+  
   /* store the result file on FES */
 #ifdef LOCAL_DEBUG
 #else
   status = daqDA_FES_storeFile(RESULT_FILE, FILE_ID);
 #endif
-
+  
   return status;
 }
index 97e185e..395e2c5 100644 (file)
@@ -65,28 +65,28 @@ extern "C" {
 */
 
 int main(int argc, char **argv) {
-
+  
   AliLog::SetClassDebugLevel("AliCaloRawStreamV3",-5);
   AliLog::SetClassDebugLevel("AliRawReaderDate",-5);
   AliLog::SetModuleDebugLevel("RAW",-5);
-
+  
   if (argc<2) {
     printf("Wrong number of arguments\n");
     return -1;  
   }
-
+  
   /* magic line - for TStreamerInfo */
   gROOT->GetPluginManager()->AddHandler("TVirtualStreamerInfo",
                                        "*",
                                        "TStreamerInfo",
                                        "RIO",
                                        "TStreamerInfo()"); 
-
+  
   int i, status;
-
+  
   /* log start of process */
   printf("EMCAL DA started - %s\n",__FILE__);
-
+  
   /* declare monitoring program */
   status=monitorDeclareMp( __FILE__ );
   if (status!=0) {
@@ -96,10 +96,10 @@ int main(int argc, char **argv) {
   /* define wait event timeout - 1s max */
   monitorSetNowait();
   monitorSetNoWaitNetworkTimeout(1000);
-
+  
   /* Retrieve mapping files from DAQ DB */ 
   const char* mapFiles[kNRCU] = {"RCU0A.data","RCU1A.data","RCU0C.data","RCU1C.data"};
-
+  
   for(Int_t iFile=0; iFile<kNRCU; iFile++) {
     int failed = daqDA_DB_getFile(mapFiles[iFile], mapFiles[iFile]);
     if(failed) { 
@@ -107,7 +107,7 @@ int main(int argc, char **argv) {
             iFile, mapFiles[iFile]);
 #ifdef LOCAL_DEBUG
 #else
-            return -1;
+      return -1;
 #endif
     }
   }
@@ -117,26 +117,41 @@ int main(int argc, char **argv) {
   TString path = "./";
   path += "RCU";
   TString path2;
- TString side[] = {"A","C"};//+ and - pseudarapidity supermodules
- for(Int_t j = 0; j < 2; j++){
-   for(Int_t i = 0; i < 2; i++) {
-     path2 = path;
-     path2 += i;
-     path2 +=side[j]; 
-     path2 += ".data";
-     mapping[j*2 + i] = new AliCaloAltroMapping(path2.Data());
-   }
- }
+  TString side[] = {"A","C"};//+ and - pseudarapidity supermodules
+  for(Int_t j = 0; j < 2; j++){
+    for(Int_t i = 0; i < 2; i++) {
+      path2 = path;
+      path2 += i;
+      path2 +=side[j]; 
+      path2 += ".data";
+      mapping[j*2 + i] = new AliCaloAltroMapping(path2.Data());
+    }
+  }
+
+  /* Retrieve cut=parameter file from DAQ DB */ 
+  const char* parameterFile = {"EMCALPEDda.dat"};
+  
+  int failed = daqDA_DB_getFile(parameterFile, parameterFile);
+  if (failed) { 
+    printf("Cannot retrieve file : %s from DAQ DB. Exit now..\n",
+          parameterFile);
+#ifdef LOCAL_DEBUG
+#else
+    return -1;
+#endif
+  }
+
   /* set up our analysis class */  
   AliCaloCalibPedestal * calibPedestal = new AliCaloCalibPedestal(AliCaloCalibPedestal::kEmCal); // pedestal and noise calibration
   calibPedestal->SetAltroMapping( mapping );
+  calibPedestal->SetParametersFromFile( parameterFile );
 
   AliRawReader *rawReader = NULL;
   int nevents=0;
-
+  
   /* loop over RAW data files */
   for ( i=1; i<argc; i++ ) {
-
+    
     /* define data source : this is argument i */
     printf("Processing file %s\n", argv[i]);
     status=monitorSetDataSource( argv[i] );
@@ -144,16 +159,16 @@ int main(int argc, char **argv) {
       printf("monitorSetDataSource() failed. Error=%s. Exiting ...\n", monitorDecodeError(status));
       return -1;
     }
-
+    
     /* read until EOF */
     struct eventHeaderStruct *event;
     eventTypeType eventT;
 
     for ( ; ; ) { // infinite loop
-
+      
       /* check shutdown condition */
       if (daqDA_checkShutdown()) {break;}
-
+      
       /* get next event (blocking call until timeout) */
       status=monitorGetEventDynamic((void **)&event);
       if (status==MON_ERR_EOF) {
@@ -164,38 +179,39 @@ int main(int argc, char **argv) {
        printf("monitorGetEventDynamic() failed : %s\n",monitorDecodeError(status));
        break;
       }
-
+      
       /* retry if got no event */
       if (event==NULL) {
        continue;
       }
       eventT = event->eventType; /* just convenient shorthand */
-
+      
       /* skip start/end of run events */
       if ( (eventT != physicsEvent) && (eventT != calibrationEvent) &&
           (eventT != systemSoftwareTriggerEvent) && (eventT != detectorSoftwareTriggerEvent) ) {
        continue;
       }
-
+      
       nevents++; // count how many acceptable events we have
-
+      
       //  Pedestal calibration
       rawReader = new AliRawReaderDate((void*)event);
+      calibPedestal->SetRunNumber(event->eventRunNb);
       calibPedestal->ProcessEvent(rawReader);
       delete rawReader;
-
+      
       /* free resources */
       free(event);    
-
+      
     } //until EOF
   } // loop over files
-
+  
   //
   // write class to rootfile
   //
-
+  
   printf ("%d physics/calibration events processed.\n",nevents);
-
+  
   TFile f(RESULT_FILE, "recreate");
   if (!f.IsZombie()) { 
     f.cd();
@@ -208,7 +224,7 @@ int main(int argc, char **argv) {
     printf("Could not save the object to file \"%s\".\n", 
           RESULT_FILE);
   }
-
+  
   //
   // closing down; see if we can delete our analysis helper also
   //
@@ -216,12 +232,12 @@ int main(int argc, char **argv) {
   for(Int_t iFile=0; iFile<kNRCU; iFile++) {
     if (mapping[iFile]) delete mapping[iFile];
   }
-
+  
   /* store the result file on FES */
 #ifdef LOCAL_DEBUG
 #else
   status = daqDA_FES_storeFile(RESULT_FILE, FILE_ID);
 #endif
-
+  
   return status;
 }