#include "AliADPreprocessor.h"
#include "AliADCalibData.h"
#include "AliCDBMetaData.h"
#include "AliCDBEntry.h"
#include "AliDCSValue.h"
#include "AliLog.h"
#include "AliShuttleInterface.h"
#include "AliADDataDCS.h"
#include <TFile.h>
#include <TTimeStamp.h>
#include <TObjString.h>
#include <TSystem.h>
#include <TH1F.h>
class Tlist;
ClassImp(AliADPreprocessor)
AliADPreprocessor::AliADPreprocessor(AliShuttleInterface* shuttle) :
AliPreprocessor("AD0", shuttle),
fDCSData(0)
{
AddRunType("STANDALONE_PULSER");
AddRunType("STANDALONE_BC");
AddRunType("PHYSICS");
}
AliADPreprocessor::~AliADPreprocessor()
{
delete fDCSData;
}
void AliADPreprocessor::Initialize(Int_t run, UInt_t startTime,
UInt_t endTime)
{
AliPreprocessor::Initialize(run, startTime, endTime);
Log(Form("\n\tRun %d \n\tStartTime %s \n\tEndTime %s", run,
TTimeStamp(startTime).AsString(),
TTimeStamp(endTime).AsString()));
fRun = run;
fStartTime = GetStartTimeDCSQuery ();
fEndTime = GetEndTimeDCSQuery ();
time_t daqStart = (time_t) (((TString)GetRunParameter("DAQ_time_start")).Atoi());
time_t daqEnd = (time_t) (((TString)GetRunParameter("DAQ_time_end")).Atoi());
time_t ctpStart = (time_t) (((TString)GetRunParameter("TRGTimeStart")).Atoi());
time_t ctpEnd = (time_t) (((TString)GetRunParameter("TRGTimeEnd")).Atoi());
fDCSData = new AliADDataDCS(fRun, fStartTime, fEndTime,(UInt_t)daqStart, (UInt_t)daqEnd,(UInt_t)ctpStart, (UInt_t)ctpEnd);
}
UInt_t AliADPreprocessor::Process(TMap* dcsAliasMap)
{
TString runType = GetRunType();
TString fileName;
AliADCalibData *calibData = new AliADCalibData();
if(!dcsAliasMap) return 1;
if (!fDCSData->ProcessData(*dcsAliasMap)) return 1;
calibData->FillDCSData(fDCSData);
TString sourcesId = "AD0da_results";
TList* sourceList = GetFileSources(kDAQ, sourcesId.Data());
if (!sourceList) {
Log(Form("No sources found for id %s", sourcesId.Data()));
return 1; }
Log(Form("The following sources produced files with the id %s",sourcesId.Data()));
sourceList->Print();
TIter iter(sourceList);
TObjString *source;
while((source=dynamic_cast<TObjString*> (iter.Next()))){
fileName = GetFile(kDAQ, sourcesId.Data(), source->GetName());
if (fileName.Length() > 0)
Log(Form("Got the file %s, now we can extract some values.", fileName.Data()));
FILE *file;
if((file = fopen(fileName.Data(),"r")) == NULL){
Log(Form("Cannot open file %s",fileName.Data()));
return 1;}
Float_t pedMean[32], pedSigma[32], adcMean[32], adcSigma[32] ;
for(Int_t j=0; j<32; j++) {
Int_t resScan = fscanf(file,"%f %f %f %f",
&pedMean[j], &pedSigma[j], &adcMean[j], &adcSigma[j]);
if (resScan != 4) Log(Form("Bad data in file %s !",fileName.Data()));
}
fclose(file);
calibData->SetPedestal(pedMean);
calibData->SetSigma(pedSigma);
calibData->SetADCmean(adcMean);
calibData->SetADCsigma(adcSigma);
}
delete source;
Bool_t resECal=kTRUE;
Bool_t result = 0;
AliCDBMetaData metaData;
metaData.SetBeamPeriod(0);
metaData.SetResponsible("Michal Broz");
metaData.SetComment("This preprocessor fills an AliADCalibData object");
resECal = Store("Calib", "Data", calibData, &metaData, 0, kTRUE);
if(resECal==kFALSE ) result = 1;
delete calibData;
delete sourceList;
return result;
}
AliADPreprocessor.cxx:100 AliADPreprocessor.cxx:101 AliADPreprocessor.cxx:102 AliADPreprocessor.cxx:103 AliADPreprocessor.cxx:104 AliADPreprocessor.cxx:105 AliADPreprocessor.cxx:106 AliADPreprocessor.cxx:107 AliADPreprocessor.cxx:108 AliADPreprocessor.cxx:109 AliADPreprocessor.cxx:110 AliADPreprocessor.cxx:111 AliADPreprocessor.cxx:112 AliADPreprocessor.cxx:113 AliADPreprocessor.cxx:114 AliADPreprocessor.cxx:115 AliADPreprocessor.cxx:116 AliADPreprocessor.cxx:117 AliADPreprocessor.cxx:118 AliADPreprocessor.cxx:119 AliADPreprocessor.cxx:120 AliADPreprocessor.cxx:121 AliADPreprocessor.cxx:122 AliADPreprocessor.cxx:123 AliADPreprocessor.cxx:124 AliADPreprocessor.cxx:125 AliADPreprocessor.cxx:126 AliADPreprocessor.cxx:127 AliADPreprocessor.cxx:128 AliADPreprocessor.cxx:129 AliADPreprocessor.cxx:130 AliADPreprocessor.cxx:131 AliADPreprocessor.cxx:132 AliADPreprocessor.cxx:133 AliADPreprocessor.cxx:134 AliADPreprocessor.cxx:135 AliADPreprocessor.cxx:136 AliADPreprocessor.cxx:137 AliADPreprocessor.cxx:138 AliADPreprocessor.cxx:139 AliADPreprocessor.cxx:140 AliADPreprocessor.cxx:141 AliADPreprocessor.cxx:142 AliADPreprocessor.cxx:143 AliADPreprocessor.cxx:144 AliADPreprocessor.cxx:145 AliADPreprocessor.cxx:146 AliADPreprocessor.cxx:147 AliADPreprocessor.cxx:148 AliADPreprocessor.cxx:149 AliADPreprocessor.cxx:150 AliADPreprocessor.cxx:151 AliADPreprocessor.cxx:152 AliADPreprocessor.cxx:153 AliADPreprocessor.cxx:154 AliADPreprocessor.cxx:155 AliADPreprocessor.cxx:156 AliADPreprocessor.cxx:157 AliADPreprocessor.cxx:158 AliADPreprocessor.cxx:159 AliADPreprocessor.cxx:160 AliADPreprocessor.cxx:161 AliADPreprocessor.cxx:162 AliADPreprocessor.cxx:163 AliADPreprocessor.cxx:164 AliADPreprocessor.cxx:165 AliADPreprocessor.cxx:166 AliADPreprocessor.cxx:167 AliADPreprocessor.cxx:168 AliADPreprocessor.cxx:169 AliADPreprocessor.cxx:170 AliADPreprocessor.cxx:171 AliADPreprocessor.cxx:172 AliADPreprocessor.cxx:173 AliADPreprocessor.cxx:174 AliADPreprocessor.cxx:175