From 2c61d953543858e7c2085e228eff116b1afe0389 Mon Sep 17 00:00:00 2001 From: cblume Date: Wed, 2 Jun 2010 18:19:44 +0000 Subject: [PATCH] Updates of the DA for the TRD to export data to AMORE (Raphaelle) --- TRD/TRDHALFCHAMBERSTATUSda.cxx | 37 +++++++++++++++++++-- TRD/TRDPEDESTALda.cxx | 59 +++++++++++++++++----------------- 2 files changed, 64 insertions(+), 32 deletions(-) diff --git a/TRD/TRDHALFCHAMBERSTATUSda.cxx b/TRD/TRDHALFCHAMBERSTATUSda.cxx index cada1575a9f..4a635652dab 100644 --- a/TRD/TRDHALFCHAMBERSTATUSda.cxx +++ b/TRD/TRDHALFCHAMBERSTATUSda.cxx @@ -31,6 +31,7 @@ extern "C" { #include #include "TROOT.h" #include "TPluginManager.h" +#include "TSystem.h" // // AliRoot includes // @@ -52,7 +53,7 @@ extern "C" { #include "AliTRDCalibChamberStatus.h" //functios, implementation below -//void SendToAmoreDB(TObject *o, unsigned long32 runNb); +void SendToAmoreDB(TObject *o, unsigned long32 runNb); /* Main routine Arguments: list of DATE raw data files @@ -109,7 +110,7 @@ int main(int argc, char **argv) { // AliTRDCalibPadStatus object AliTRDCalibChamberStatus calipad = AliTRDCalibChamberStatus(); calipad.Init(); - //unsigned long32 runNb=0; //run number + unsigned long32 runNb=0; //run number // setting AliTRDrawFastStream::DisableSkipData(); @@ -156,7 +157,7 @@ int main(int argc, char **argv) { nevents_total++; // get the run number - //runNb = event->eventRunNb; + runNb = event->eventRunNb; /* free resources */ free(event); @@ -177,6 +178,9 @@ int main(int argc, char **argv) { calipad.AnalyseHisto(); calipad.Write("calibchamberstatus"); fileTRD->Close(); + + /* Send to amore */ + SendToAmoreDB(&calipad,runNb); /* store the result file on FES */ status=daqDA_FES_storeFile(RESULT_FILE,FILE_ID); @@ -188,4 +192,31 @@ int main(int argc, char **argv) { return status; +} +void SendToAmoreDB(TObject *o, unsigned long32 runNb) +{ + //AMORE + const char *amoreDANameorig=gSystem->Getenv("AMORE_DA_NAME"); + //cheet a little -- temporary solution (hopefully) + // + //currently amoreDA uses the environment variable AMORE_DA_NAME to create the mysql + //table in which the calib objects are stored. This table is dropped each time AmoreDA + //is initialised. This of course makes a problem if we would like to store different + //calibration entries in the AMORE DB. Therefore in each DA which writes to the AMORE DB + //the AMORE_DA_NAME env variable is overwritten. + + gSystem->Setenv("AMORE_DA_NAME","TRD-dataHALFCHAMBERSTATUS"); + // + // end cheet + TDatime time; + TObjString info(Form("Run: %u; Date: %s",runNb,time.AsSQLString())); + + amore::da::AmoreDA amoreDA(amore::da::AmoreDA::kSender); + Int_t statusDA=0; + statusDA+=amoreDA.Send("DataHalfChamberStatus",o); + statusDA+=amoreDA.Send("Info",&info); + if ( statusDA!=0 ) + printf("TRDQAda: 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); } \ No newline at end of file diff --git a/TRD/TRDPEDESTALda.cxx b/TRD/TRDPEDESTALda.cxx index 23cd6403bb8..3849016be42 100644 --- a/TRD/TRDPEDESTALda.cxx +++ b/TRD/TRDPEDESTALda.cxx @@ -31,6 +31,7 @@ extern "C" { #include #include "TROOT.h" #include "TPluginManager.h" +#include "TSystem.h" // // AliRoot includes // @@ -38,6 +39,7 @@ extern "C" { #include "AliRawReaderDate.h" #include "AliTRDrawFastStream.h" #include "AliTRDrawStreamBase.h" +#include "AliTRDgeometry.h" #include "AliCDBManager.h" // @@ -51,7 +53,7 @@ extern "C" { #include "AliTRDCalibPadStatus.h" //functios, implementation below -//void SendToAmoreDB(TObject *o, unsigned long32 runNb); +void SendToAmoreDB(TObject *o, unsigned long32 runNb); /* Main routine Arguments: list of DATE raw data files @@ -99,7 +101,7 @@ int main(int argc, char **argv) { // AliTRDCalibPadStatus object AliTRDCalibPadStatus calipad = AliTRDCalibPadStatus(); Bool_t passpadstatus = kTRUE; - //unsigned long32 runNb=0; //run number + unsigned long32 runNb=0; //run number // setting AliTRDrawFastStream::DisableSkipData(); @@ -145,6 +147,8 @@ int main(int argc, char **argv) { AliRawReader *rawReader = new AliRawReaderDate((void*)event); rawReader->Select("TRD"); + // for debug + //rawReader->SelectEquipment(-1,1024,1025); Int_t result = calipad.ProcessEvent2((AliRawReader *) rawReader); // 0 error, 1 no input, 2 output @@ -157,7 +161,7 @@ int main(int argc, char **argv) { nevents_total++; // get the run number - //runNb = event->eventRunNb; + runNb = event->eventRunNb; /* free resources */ free(event); @@ -174,6 +178,10 @@ int main(int argc, char **argv) { calipad.AnalyseHisto(); calipad.Write("calibpadstatus"); fileTRD->Close(); + + /* Send to amore */ + SendToAmoreDB(&calipad,runNb); + /* store the result file on FES */ status=daqDA_FES_storeFile(RESULT_FILE,FILE_ID); @@ -185,13 +193,9 @@ int main(int argc, char **argv) { return status; - /* - - // send objects to AMORE - //SendToAmoreDB(calibpad,runNb); - - void SendToAmoreDB(TObject *calipad, unsigned long32 runNb) - { +} +void SendToAmoreDB(TObject *calipad, unsigned long32 runNb) +{ //cheet a little -- temporary solution (hopefully) // //currently amoreDA uses the environment variable AMORE_DA_NAME to create the mysql @@ -211,22 +215,22 @@ int main(int argc, char **argv) { // PadStatus6 for sm-15-16-17 // PadStatus0 if nothing found..means problems // - + /////////////////// // Find wich LDC /////////////////// Int_t ldcnumber = -1; Int_t sm = -1; for (Int_t idet=0; idet<540; idet++) { - AliTRDCalROC *rocMean = calipad->GetCalRocMean(idet, kFALSE); + AliTRDCalROC *rocMean = ((AliTRDCalibPadStatus *) calipad)->GetCalRocMean(idet, kFALSE); if ( rocMean ) { sm = AliTRDgeometry::GetSector(idet); if((sm==0) || (sm==1) || (sm==2)) ldcnumber = 1; if((sm==3) || (sm==4) || (sm==5)) ldcnumber = 2; if((sm==6) || (sm==7) || (sm==8)) ldcnumber = 3; - if((sm==9) || (sm==10) || (sm==11)) ldcnumber = 1; - if((sm==12) || (sm==13) || (sm==14)) ldcnumber = 2; - if((sm==15) || (sm==16) || (sm==17)) ldcnumber = 3; + if((sm==9) || (sm==10) || (sm==11)) ldcnumber = 4; + if((sm==12) || (sm==13) || (sm==14)) ldcnumber = 5; + if((sm==15) || (sm==16) || (sm==17)) ldcnumber = 6; } } const char *amoreDANameorig=gSystem->Getenv("AMORE_DA_NAME"); @@ -237,27 +241,24 @@ int main(int argc, char **argv) { // Send the stuff //////////////////// if (ldcnumber>-1){ - TDatime time; - TObjString info(Form("Run: %u; Date: %s",runNb,time.AsSQLString())); - - amore::da::AmoreDA amoreDA(amore::da::AmoreDA::kSender); - Int_t statusDA=0; - statusDA+=amoreDA.Send("Pedestals",calibpad); - statusDA+=amoreDA.Send("Info",&info); - if ( statusDA ) - printf("Waring: Failed to write one of the calib objects to the AMORE database\n"); + TDatime time; + TObjString info(Form("Run: %u; Date: %s",runNb,time.AsSQLString())); + + amore::da::AmoreDA amoreDA(amore::da::AmoreDA::kSender); + Int_t statusDA=0; + statusDA+=amoreDA.Send("Pedestals",calipad); + statusDA+=amoreDA.Send("Info",&info); + if ( statusDA ) + printf("Waring: Failed to write one of the calib objects to the AMORE database\n"); } else { - printf("Waring: No data found!\n"); + printf("Waring: No data found!\n"); } // reset env var if (amoreDANameorig) gSystem->Setenv("AMORE_DA_NAME",amoreDANameorig); - } +} - */ - -} -- 2.43.0