#include <TStopwatch.h>
#include "TROOT.h"
#include "TPluginManager.h"
+#include "TSystem.h"
//
// AliRoot includes
//
#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
// AliTRDCalibPadStatus object
AliTRDCalibChamberStatus calipad = AliTRDCalibChamberStatus();
calipad.Init();
- //unsigned long32 runNb=0; //run number
+ unsigned long32 runNb=0; //run number
// setting
AliTRDrawFastStream::DisableSkipData();
nevents_total++;
// get the run number
- //runNb = event->eventRunNb;
+ runNb = event->eventRunNb;
/* free resources */
free(event);
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);
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
#include <TStopwatch.h>
#include "TROOT.h"
#include "TPluginManager.h"
+#include "TSystem.h"
//
// AliRoot includes
//
#include "AliRawReaderDate.h"
#include "AliTRDrawFastStream.h"
#include "AliTRDrawStreamBase.h"
+#include "AliTRDgeometry.h"
#include "AliCDBManager.h"
//
#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
// AliTRDCalibPadStatus object
AliTRDCalibPadStatus calipad = AliTRDCalibPadStatus();
Bool_t passpadstatus = kTRUE;
- //unsigned long32 runNb=0; //run number
+ unsigned long32 runNb=0; //run number
// setting
AliTRDrawFastStream::DisableSkipData();
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
nevents_total++;
// get the run number
- //runNb = event->eventRunNb;
+ runNb = event->eventRunNb;
/* free resources */
free(event);
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);
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
// 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");
// 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);
- }
+}
- */
-
-}