Updates in SDD DA: new event counting scheme, protections against missing configurati...
authorprino <prino@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 12 Jun 2009 16:22:14 +0000 (16:22 +0000)
committerprino <prino@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 12 Jun 2009 16:22:14 +0000 (16:22 +0000)
ITS/ITSSDDBASda.cxx
ITS/ITSSDDGAINda.cxx
ITS/ITSSDDINJda.cxx

index 22c108f..1cc0c9d 100644 (file)
@@ -76,18 +76,25 @@ int main(int argc, char **argv) {
   }
 
 
-  Int_t maxNEvents=18; // maximum number of events to be analyzed
+  Int_t maxNEvents=10; // maximum number of events to be analyzed
   const Int_t kTotDDL=24;
   const Int_t kModPerDDL=12;
   const Int_t kSides=2;
   Int_t adcSamplFreq=40;
+  Bool_t readfeeconf=kFALSE;
+  gSystem->Exec("rm -f SDDbase_*.data");
   if(gSystem->Getenv("DAQ_DETDB_LOCAL")!=NULL){
     const char* dir=gSystem->Getenv("DAQ_DETDB_LOCAL");    
     TString filnam=Form("%s/fee.conf",dir); 
     FILE* feefil=fopen(filnam.Data(),"r"); 
-    fscanf(feefil,"%d \n",&adcSamplFreq);
-    fclose(feefil);
+    if(feefil){
+      fscanf(feefil,"%d \n",&adcSamplFreq);
+      fclose(feefil);
+      readfeeconf=kTRUE;
+      printf("ADC sampling frequency = %d MHz\n",adcSamplFreq);
+    }
   }
+  if(!readfeeconf) printf("File fee.conf not found, sampling frequency set to 40 MHz\n");
   
   AliITSOnlineSDDBase **base=new AliITSOnlineSDDBase*[kTotDDL*kModPerDDL*kSides];
   AliITSOnlineSDDCMN **corr=new AliITSOnlineSDDCMN*[kTotDDL*kModPerDDL*kSides];
@@ -110,9 +117,11 @@ int main(int argc, char **argv) {
   /* report progress */
   daqDA_progressReport(8);
   Int_t iev;
+  Int_t ievPed;
   for(Int_t iStep=0;iStep<2;iStep++){
     printf("Start Analysis Step %d\n",iStep);
     iev=0;
+    ievPed=0;
     if(iStep==1){
       for(Int_t iddl=0; iddl<kTotDDL;iddl++){
        for(Int_t imod=0; imod<kModPerDDL;imod++){
@@ -160,7 +169,6 @@ int main(int argc, char **argv) {
        }
 
        iev++; 
-       if(iev>maxNEvents) break;
 
        /* use event - here, just write event id to result file */
        eventT=event->eventType;
@@ -182,6 +190,7 @@ int main(int argc, char **argv) {
          break;  // uncomment this line for test raw data
        case PHYSICS_EVENT: // uncomment this line for test raw data
          printf(" event number = %i \n",iev);
+         ievPed++; 
          AliRawReader *rawReader = new AliRawReaderDate((void*)event);
 
 
@@ -226,6 +235,7 @@ int main(int argc, char **argv) {
          /* free resources */
          free(event);
        }
+       if(ievPed>=maxNEvents) break;
       }
     }
 
@@ -238,12 +248,12 @@ int main(int argc, char **argv) {
            base[index]->WriteToASCII();
          }
        }
-      }  
+      }
     }
   }
 
   /* write report */
-  printf("Run #%s, received %d calibration events\n",getenv("DATE_RUN_NUMBER"),iev);
+  printf("Run #%s, received %d calibration events\n",getenv("DATE_RUN_NUMBER"),ievPed);
 
   /* report progress */
   daqDA_progressReport(90);
index 82c073c..5d53122 100644 (file)
@@ -79,15 +79,22 @@ int main(int argc, char **argv) {
   const Int_t kModPerDDL=12;
   const Int_t kSides=2;
   Int_t adcSamplFreq=40;
-  if(gSystem->Getenv("DAQ_DETDB_LOCAL")!=NULL){
+  Bool_t readfeeconf=kFALSE;
+  gSystem->Exec("rm -f  SDDbase_LDC.tar");
+   if(gSystem->Getenv("DAQ_DETDB_LOCAL")!=NULL){
     const char* dir=gSystem->Getenv("DAQ_DETDB_LOCAL");    
     TString filnam=Form("%s/fee.conf",dir); 
     FILE* feefil=fopen(filnam.Data(),"r"); 
-    fscanf(feefil,"%d \n",&adcSamplFreq);
-    TString shcomm=Form("tar -rf SDDbase_LDC.tar -C %s fee.conf",dir); 
-    gSystem->Exec(shcomm.Data());
-    fclose(feefil);
+    if(feefil){
+      fscanf(feefil,"%d \n",&adcSamplFreq);
+      TString shcomm=Form("tar -rf SDDbase_LDC.tar -C %s fee.conf",dir); 
+      gSystem->Exec(shcomm.Data());
+      fclose(feefil);
+      readfeeconf=kTRUE;
+      printf("ADC sampling frequency = %d MHz\n",adcSamplFreq);
+    }
   }
+  if(!readfeeconf) printf("File fee.conf not found, sampling frequency set to 40 MHz\n");
 
   AliITSOnlineSDDTP **tpan=new AliITSOnlineSDDTP*[kTotDDL*kModPerDDL*kSides];
   TH2F **histo=new TH2F*[kTotDDL*kModPerDDL*kSides];
index a39687b..786fecf 100644 (file)
@@ -79,13 +79,21 @@ int main(int argc, char **argv) {
   const Int_t kModPerDDL=12;
   const Int_t kSides=2;
   Int_t adcSamplFreq=40;
+  Bool_t readfeeconf=kFALSE;
+  gSystem->Exec("rm -f SDDinj_ddl*.data");
   if(gSystem->Getenv("DAQ_DETDB_LOCAL")!=NULL){
     const char* dir=gSystem->Getenv("DAQ_DETDB_LOCAL");    
-    TString filnam=Form("%s/fee.conf",dir); 
+    TString filnam=Form("%s/fee.conf",dir);    
     FILE* feefil=fopen(filnam.Data(),"r"); 
-    fscanf(feefil,"%d \n",&adcSamplFreq);
-    fclose(feefil);
+    if(feefil){
+      fscanf(feefil,"%d \n",&adcSamplFreq);
+      fclose(feefil);
+      readfeeconf=kTRUE;
+      printf("ADC sampling frequency = %d MHz\n",adcSamplFreq);
+    }
   }
+  if(!readfeeconf) printf("File fee.conf not found, sampling frequency set to 40 MHz\n");
+
 
 
   AliITSOnlineSDDInjectors **injan=new AliITSOnlineSDDInjectors*[kTotDDL*kModPerDDL*kSides];
@@ -112,6 +120,7 @@ int main(int argc, char **argv) {
   /* report progress */
   daqDA_progressReport(10);
   Int_t iev=0;
+  Int_t ievInj=0;
   /* read the data files */
   int n;
   for (n=1;n<argc;n++) {
@@ -139,14 +148,12 @@ int main(int argc, char **argv) {
        printf("monitorGetEventDynamic() failed : %s\n",monitorDecodeError(status));
        return -1;
       }
-
       /* retry if got no event */
       if (event==NULL) {
        break;
       }
+      iev++;
 
-      iev++; 
-      if(iev>maxNEvents) break;
       
       /* use event - here, just write event id to result file */
       eventT=event->eventType;
@@ -167,10 +174,11 @@ int main(int argc, char **argv) {
        break;  // uncomment this line for test raw data
       case PHYSICS_EVENT: // uncomment this line for test raw data
        printf(" event number = %i \n",iev);
+       ievInj++; 
        AliRawReader *rawReader = new AliRawReaderDate((void*)event);
 
        UInt_t timeSt=rawReader->GetTimestamp();
-       //UInt_t timeSt=iev*5000+12;  // fake timestamp for test
+
        Int_t evtyp=0;
        while(rawReader->ReadHeader()){
          const UInt_t *subev = rawReader->GetSubEventAttributes();
@@ -216,10 +224,13 @@ int main(int argc, char **argv) {
        /* free resources */
        free(event);
       }
+      if(ievInj>=maxNEvents) break;
     }
-    
   }
-    
+  /* write report */
+  printf("Run #%s, received %d injector events\n",getenv("DATE_RUN_NUMBER"),ievInj);
+
+  gSystem->Exec("rm -f  SDDinj_LDC.tar");
   Char_t filnam[100],command[120];
   for(Int_t iddl=0; iddl<kTotDDL;iddl++){
     for(Int_t imod=0; imod<kModPerDDL;imod++){
@@ -234,8 +245,6 @@ int main(int argc, char **argv) {
     }
   }
 
-  /* write report */
-  printf("Run #%s, received %d injector events\n",getenv("DATE_RUN_NUMBER"),iev);
 
   /* report progress */
   daqDA_progressReport(90);