/*
-- "Contact: r.bailhache@gsi.de"
-- "Link: http://www-linux.gsi.de/~bailhach/VDRIFT/raw.root.date"
-- "Run Type: nothing special in ECS, physics run"
-- "DA Type: MON"
-- "Number of events needed: as many as possible"
-- "Input Files: no config files, no previous result files, RAW DATA file with all the TRD ([DDL = 1024 to DDL = 1041])"
-- "Output Files: trdCalibrationv.root, trdCalibrationv.root, no persitent file over runs"
-- "Trigger types used: PHYSICS"
+Contact: r.bailhache@gsi.de
+Link:
+Reference run: 25909
+Run Type: PHYSICS STANDALONE
+DA Type: MON
+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" {
#include <TObjArray.h>
#include <TString.h>
#include <TVectorF.h>
-#include <TROOT.h>
#include <TDirectory.h>
#include <TSystem.h>
#include <TFile.h>
+#include "TROOT.h"
+#include "TPluginManager.h"
//
//AliRoot includes
//
#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
*/
int main(int argc, char **argv) {
+ /* magic line from Rene */
+ gROOT->GetPluginManager()->AddHandler("TVirtualStreamerInfo",
+ "*",
+ "TStreamerInfo",
+ "RIO",
+ "TStreamerInfo()");
int status;
if (argc!=2) {
/* 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
-
- /* some warning less */
- AliTRDRawStreamTB::SupressWarnings(kTRUE);
-
-
+ // setting
+ //AliTRDrawFastStream::DisableSkipData();
+ AliLog::SetGlobalLogLevel(AliLog::kFatal);
+
/* main loop (infinite) */
for(;;) {
//for(Int_t k = 0; k < 20; k++) {
continue;
}
- if( ((Int_t)nevents_total)%100 == 0 ) printf(" event number %d (physic event number %d) will be processed\n",(Int_t) nevents_total,(Int_t) nevents_physics);
+ 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 */
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){
}
+ /*
+ if( ((Int_t)nevents_physics)%100 == 0 ) {
+ SendToAmoreDB(&calibra);
+ }
+ */
+
+
nevents_total++;
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);
+ }
+*/
+
+