added slewing correction by data
[u/mrichter/AliRoot.git] / TRD / TRDVDRIFTda.cxx
index 42b4902..516eaaa 100644 (file)
@@ -1,17 +1,19 @@
 /*
 
 Contact: r.bailhache@gsi.de
-Link: run 25909
+Link:
+Reference run: 25909
 Run Type: PHYSICS STANDALONE
 DA Type: MON
-Number of events needed: as many as possible
-Input Files:  raw files of the TRD
-Output Files: trdCalibrationv.root,to be exported to the DAQ FXS
-Trigger types used: PHYSICS_EVENT, for the time being
+Number of events needed: many
+Input Files:  TRD raw files
+Output Files: trdCalibrationv.root
+Trigger types used: PHYSICS_EVENT
 
 */
 
-#define RESULT_FILE "trdCalibrationv.root"
+#define RESULT_FILE  "trdVdrift.root"
+#define FILE_ID "VDRIFT"
 
 
 extern "C" {
@@ -40,15 +42,20 @@ extern "C" {
 //
 #include "AliRawReader.h"
 #include "AliRawReaderDate.h"
-#include "AliTRDrawStreamTB.h"
-#include "AliCDBManager.h"
+#include "AliLog.h"
+
+//
+//AMORE
+//
+#include <AmoreDA.h>
 
 //
 // TRD calibration algorithm includes
 //
 #include "AliTRDCalibraFillHisto.h"
 
-
+//functions, implementation below
+//void SendToAmoreDB(TObject *o, unsigned long32 runNb);
 
 
 /* Main routine
@@ -99,29 +106,24 @@ int main(int argc, char **argv) {
   /* init some counters */
   int nevents_physics=0;
   int nevents_total=0;
+  //unsigned long32 runNb=0;      //run number
 
-  //Instance of AliCDBManager: needed by AliTRDRawStreamV2
-  AliCDBManager *man = AliCDBManager::Instance();
-  man->SetDefaultStorage("local://$ALICE_ROOT");
-  man->SetRun(0);
+  //Instance of AliCDBManager: needed by AliTRDrawFastStream
+  //AliCDBManager *man = AliCDBManager::Instance();
+  //man->SetDefaultStorage("local://$ALICE_ROOT/OCDB");
+  //man->SetRun(0);
   //Instance of AliTRDCalibraFillHisto
   AliTRDCalibraFillHisto *calibra      = AliTRDCalibraFillHisto::Instance();
+  calibra->SetNumberClustersProcent(0.9);
+
   // everythings are okey for vdrift
   Bool_t passvdrift  = kTRUE;    // if timebin okey
   Int_t  nbvdrift    = 0;     // number of events with entries for vdrift
 
    // setting
-  // AliTRDrawStreamTB::SetNoDebug();
-  AliTRDrawStreamTB::SetNoErrorWarning();
-  AliTRDrawStreamTB::SetForceCleanDataOnly();
-  AliTRDrawStreamTB::AllowCorruptedData();
-  //AliTRDrawStreamTB::SetSkipCDH();
-  //AliTRDrawStreamTB::SetExtraWordsFix();
-  //AliTRDrawStreamTB::EnableDebugStream();
-  //AliTRDrawStreamTB::SetDumpHead(320);
-  //AliTRDrawStreamTB::SetDumpHead(80);
-
-  
+  //AliTRDrawFastStream::DisableSkipData();
+  AliLog::SetGlobalLogLevel(AliLog::kFatal); 
+    
   /* main loop (infinite) */
   for(;;) {
   //for(Int_t k = 0; k < 20; k++) {
@@ -151,6 +153,7 @@ int main(int argc, char **argv) {
     if( ((Int_t)nevents_total)%1000 == 0 ) printf(" event number %d (physic event number %d) will be processed\n",(Int_t) nevents_total,(Int_t) nevents_physics);  
 
 
+
     /* use event - here, just write event id to result file */
     eventT=event->eventType;
     
@@ -160,15 +163,19 @@ int main(int argc, char **argv) {
     if ((eventT==PHYSICS_EVENT) && (passvdrift)) {
       //if (eventT==PHYSICS_EVENT) {
       AliRawReader *rawReader = new AliRawReaderDate((void*)event);
-      AliTRDrawStreamTB *trdRawStream = new AliTRDrawStreamTB((AliRawReader *) rawReader);
-      Int_t result = calibra->ProcessEventDAQ(trdRawStream,(Bool_t)nevents_physics);
+      rawReader->Select("TRD");
+
+      Int_t result = calibra->ProcessEventDAQ((AliRawReader *)rawReader);
       if(!result) passvdrift = kFALSE;
       else nbvdrift += (Int_t) result/2;
              
-      
-      delete trdRawStream;
+
       delete rawReader;
+    
     } 
+
+    // get the run number
+    //runNb = event->eventRunNb;
    
     if(eventT==PHYSICS_EVENT){
  
@@ -176,6 +183,13 @@ int main(int argc, char **argv) {
      
     }
     
+    /*
+      if( ((Int_t)nevents_physics)%100 == 0 ) {
+      SendToAmoreDB(&calibra);
+      }
+    */
+
+    
     nevents_total++;
 
 
@@ -208,9 +222,28 @@ int main(int argc, char **argv) {
   fileTRD->Close();
   status=0;
   // Export the file in any case to see if problems
-  if(daqDA_FES_storeFile(RESULT_FILE,RESULT_FILE)) status = -2;
+  if(daqDA_FES_storeFile(RESULT_FILE,FILE_ID)) status = -2;
   
   delete fileTRD;  
 
   return status;
 }
+
+/*
+  void SendToAmoreDB(TObject *o)
+  {
+  //AMORE
+  const char *amoreDANameorig=gSystem->Getenv("AMORE_DA_NAME");
+  gSystem->Setenv("AMORE_DA_NAME","TRD-dataQA");
+  
+  amore::da::AmoreDA amoreDA(amore::da::AmoreDA::kSender);
+  Int_t statusDA=0;
+  statusDA+=amoreDA.Send("DataQA-VDRIFT",o);
+  if ( statusDA!=0 )
+  printf("Waring: Failed to write one of the calib objects to the AMORE database\n");
+  // reset env var
+  if (amoreDANameorig) gSystem->Setenv("AMORE_DA_NAME",amoreDANameorig);
+  } 
+*/
+
+