20 #include "TParameter.h" 22 #include <TTimeStamp.h> 48 const TString
kMetaComment =
"Preprocessor AliEMCAL data base entries.";
87 AliFatal(
"Copy constructor not implemented");
95 if (&source ==
this)
return *
this;
114 UInt_t startTimeLocal = startTime-1800;
117 AliInfo(Form(
"\n\tRun %d \n\tStartTime %s \n\tEndTime %s", run,
118 TTimeStamp((time_t)startTime,0).AsString(),
119 TTimeStamp((time_t)endTime,0).AsString()));
127 Log(
"AliEMCALPreprocessor: Preprocessor Config OCDB entry missing.\n");
135 TString tempConf =
fConfEnv->GetValue(
"Temperature",
"ON");
137 if (tempConf !=
"OFF" )
140 if (entry) confTree = (TTree*) entry->
GetObject();
144 Log(
"AliEMCALPreprocessor: Temperature Config OCDB entry missing.\n");
169 TString errorHandling =
fConfEnv->GetValue(
"ErrorHandling",
"ON");
170 errorHandling.ToUpper();
175 if (errorHandling ==
"OFF" )
179 status =
new TParameter<int>(
"dcsResult",dcsResult);
180 resultArray->Add(status);
192 TString tempConf =
fConfEnv->GetValue(
"Temperature",
"ON");
194 if (tempConf !=
"OFF" && dcsAliasMap )
198 status =
new TParameter<int>(
"tempResult",tempResult);
199 resultArray->Add(status);
203 TString triggerConf =
fConfEnv->GetValue(
"Trigger",
"ON");
204 triggerConf.ToUpper();
207 if (triggerConf !=
"OFF" && dcsAliasMap )
210 result+=triggerResult;
211 status =
new TParameter<int>(
"triggerResult",triggerResult);
212 resultArray->Add(status);
228 Int_t numSources = 1;
231 TString source =
fConfEnv->GetValue(
"Pedestal",
"DAQ");
233 if (source !=
"OFF" )
239 if (source ==
"HLTDAQ" )
246 if (source ==
"DAQHLT" ) numSources=2;
247 UInt_t pedestalResult=0;
248 for (Int_t i=0; i<numSources; i++ )
251 if ( pedestalResult == 0 )
break;
254 result += pedestalResult;
255 status =
new TParameter<int>(
"pedestalResult",pedestalResult);
256 resultArray->Add(status);
263 Int_t numSources = 1;
266 TString source =
fConfEnv->GetValue(
"Signal",
"DAQ");
268 if ( source !=
"OFF")
274 if (source ==
"HLTDAQ" )
281 if (source ==
"DAQHLT" ) numSources=2;
283 UInt_t signalResult=0;
284 for (Int_t i=0; i<numSources; i++ )
287 if ( signalResult == 0 )
break;
290 result += signalResult;
291 status =
new TParameter<int>(
"signalResult",signalResult);
292 resultArray->Add(status);
297 if (errorHandling ==
"OFF" )
302 metaData.
SetComment(
"Preprocessor AliEMCAL status.");
303 Bool_t storeOK =
Store(
"Calib",
"PreprocStatus", resultArray, &metaData, 0, kFALSE);
304 resultArray->Delete();
306 if ( !storeOK ) result=1;
329 AliInfo(Form(
"Temperature values extracted, fits performed.\n"));
333 Log (
"Too few temperature maps fitted. \n");
339 Log(
"No temperature map extracted. \n");
354 Bool_t storeOK =
Store(
"Calib",
"Temperature",
fTemp, &metaData, 0, kFALSE);
355 if ( !storeOK ) result=1;
357 AliInfo(Form(
"Temperature info stored. result %d\n", result));
368 const Int_t kNTRU = 46;
370 AliInfo(
"Print DCS alias map content");
371 dcsAliasMap->Print();
373 AliInfo(Form(
"Get TRU info from DCS DPs."));
376 const Int_t bufsize = 1000;
387 TClonesArray *truArr =
new TClonesArray(
"AliEMCALTriggerTRUDCSConfig", kNTRU);
388 for( iTRU = 0; iTRU < kNTRU; iTRU++)
395 for( iTRU = 0; iTRU < kNTRU; iTRU++)
397 AliInfo( Form(
"iTRU %d \n", iTRU) );
403 AliWarning( Form(
"EMC TRU%02d config not retrieved!\n", iTRU ));
408 snprintf( buf, bufsize,
"EMC_TRU%02d_L0ALGSEL", iTRU );
415 snprintf( buf, bufsize,
"EMC_TRU%02d_PEAKFINDER", iTRU );
422 snprintf( buf, bufsize,
"EMC_TRU%02d_GLOBALTHRESH", iTRU );
429 snprintf( buf, bufsize,
"EMC_TRU%02d_COSMTHRESH", iTRU );
436 for( i = 0; i < 6; i++ )
438 snprintf( buf, bufsize,
"EMC_TRU%02d_MASK%d", iTRU, i );
448 AliInfo(Form(
"TRU info retrieved.\n"));
453 const char *detectors[2] = {
"EMC",
"DMC"};
456 for(
const char **idet = detectors; idet < detectors +
sizeof(detectors)/
sizeof(
const char *); idet++)
458 Bool_t isEMCAL = !strcmp(*idet,
"EMC");
460 for (i = 0; i < 3; i++)
462 for (
int j = 0; j < 2; j++)
464 if((dcsVal =
ReadDCSValue(dcsAliasMap, Form(
"%s_STU_G%c%d", *idet, i + 65, j))))
470 if((dcsVal =
ReadDCSValue(dcsAliasMap, Form(
"%s_STU_J%c%d", *idet, i + 65, j))))
478 if((dcsVal =
ReadDCSValue(dcsAliasMap, Form(
"%s_STU_GETRAW", *idet))))
484 if((dcsVal =
ReadDCSValue(dcsAliasMap, Form(
"%s_STU_REGION", *idet))))
490 if((dcsVal =
ReadDCSValue(dcsAliasMap, Form(
"%s_STU_FWVERS", *idet))))
496 if((dcsVal =
ReadDCSValue(dcsAliasMap, Form(
"%s_STU_PATCHSIZE", *idet)))){
500 if((dcsVal =
ReadDCSValue(dcsAliasMap, Form(
"%s_STU_MEDIAN", *idet)))){
506 for(Int_t itru = 0; itru < 68; itru++)
510 if(itru > 55 && !isEMCAL)
continue;
512 snprintf(buf, bufsize,
"%s_STU_ERROR_COUNT_TRU%02d", *idet, itru);
513 AliInfo(Form(
"Reading %s", buf));
518 AliInfo(Form(
"Found %d objects in DCS values", dcsvals->GetEntries()));
520 for(TIter eniter = TIter(dcsvals).Begin(); eniter != TIter::End(); ++eniter)
529 AliWarning(Form(
"%s not found in the DCS alias map", buf));
535 for(Int_t iphos = 0; iphos < 4; iphos++)
537 if((dcsVal =
ReadDCSValue(dcsAliasMap, Form(
"%s_STU_PHOS_scale%d", *idet, iphos))))
545 trigConfig->
SetSTUObj(stuConfig, !isEMCAL);
548 AliInfo(Form(
"STU info retrieved."));
557 Bool_t storeOK =
Store(
"Calib",
"Trigger", trigConfig, &metaData, 0, kFALSE);
558 if ( !storeOK ) result=1;
560 AliInfo(Form(
"TRU info stored. result %d\n", result));
577 if (list && list->GetEntries()>0)
583 while (list->At(index)!=NULL)
585 TObjString* fileNameEntry = (TObjString*) list->At(index);
586 if (fileNameEntry!=NULL)
589 fileNameEntry->GetString().Data());
594 Log (
"Error opening pedestal file.");
600 f->GetObject(
"emcCalibPedestal",calPed);
603 Log (
"No pedestal calibration object in file.");
611 Bool_t status = calibPed->
AddInfo(calPed);
612 if (status) { changes++; }
632 if ( !storeOK ) result++;
637 Log (
"Error: no entries in input file list!");
654 if (list && list->GetEntries()>0)
660 while (list->At(index)!=NULL)
662 TObjString* fileNameEntry = (TObjString*) list->At(index);
663 if (fileNameEntry!=NULL)
666 fileNameEntry->GetString().Data());
671 Log (
"Error opening signal file.");
677 f->GetObject(
"emcCalibSignal",calSig);
680 Log (
"No signal calibration object in file.");
688 Bool_t status = calibSig->
AddInfo(calSig);
689 if (status) { changes++; }
708 Bool_t storeOK =
Store(
"Calib",
"LED", calibSig, &metaData, 0, kFALSE);
709 if ( !storeOK ) result++;
714 Log (
"Error: no entries in input file list!");
730 AliWarning(Form(
"%s alias value not found!", valname));
735 AliInfo(Form(
"%s has %d entries", valname, dcsvalarray->GetEntries()));
737 if (dcsvalarray->GetEntries() > 0)
739 return (
AliDCSValue*)dcsvalarray->At(dcsvalarray->GetEntries() - 1);
743 AliWarning(Form(
"%s has no entry!", valname));
void SetMaskReg(UInt_t msk, Int_t pos)
void SetPatchSize(Int_t size)
Bool_t Store(const char *pathLevel2, const char *pathLevel3, TObject *object, AliCDBMetaData *metaData, Int_t validityStart=0, Bool_t validityInfinite=kFALSE)
TList * GetFileSources(Int_t system, const char *id=0)
void SetGTHRL0(UInt_t lg)
TFile * Open(const char *filename, Long64_t &nevents)
void SetPHOSScale(int iscale, int val)
UInt_t MapTriggerConfig(TMap *dcsAliasMap)
Extract DCS trigger info.
AliCDBEntry * GetFromOCDB(const char *pathLevel2, const char *pathLevel3)
void MakeSplineFit(TMap *map, Bool_t keepMap=kFALSE)
TEnv * fConfEnv
Preprocessor configuration map.
Process data in shuttle to feed OCDB.
UInt_t ExtractSignal(Int_t sourceFXS)
const char * GetFile(Int_t system, const char *id, const char *source)
class for signal monitoring and calibration tools
TMap * ExtractDCS(TMap *dcsMap, Bool_t keepStart=kFALSE)
virtual UInt_t Process(TMap *dcsAliasMap)
AliEMCALTriggerTRUDCSConfig * GetTRUDCSConfig(Int_t iTRU) const
TString fileName(const char *dir, int runNumber, const char *da, int i, const char *type)
const TString kMetaComment
#define AliWarning(message)
void SetG(Int_t vzpar, Int_t ithresh, Int_t val)
const TString kAmandaTemp
Calibration class for temperature sensors.
Bool_t StoreReferenceData(const char *pathLevel2, const char *pathLevel3, TObject *object, AliCDBMetaData *metaData)
const int kReturnCodeNoEntries
void AddRunType(const char *runType)
TTimeStamp startTime(2009, 8, 7, 0, 0, 0)
const int kReturnCodeNoInfo
void SetRawData(Int_t rd)
AliEMCALSensorTempArray * fTemp
CDB class for temperature sensors.
void SetSTUObj(AliEMCALTriggerSTUDCSConfig *so, Bool_t isDCAL=false)
EMCal trigger STU DCS Config.
void Log(const char *message, UInt_t level=3)
const Double_t kFitFraction
const TString kMetaResponsible
AliEMCALPreprocessor & operator=(const AliEMCALPreprocessor &source)
copy ctor
UInt_t MapTemperature(TMap *dcsAliasMap)
Extract DCS temperature maps. Perform fits to save space.
void SetValCut(const Int_t valCut)
Bool_t fConfigOK
Identify succesful reading of OCDB Config.
virtual void Initialize(Int_t run, UInt_t startTime, UInt_t endTime)
const char * GetRunType()
pedestal/bad map monitoring and calibration tools
void SetTRUErrorCounts(Int_t itru, Int_t itime, ULong64_t errorcounts)
Set TRU error counts.
#define AliFatal(message)
void SetTRUArr(TClonesArray *const ta)
Bool_t AddInfo(const AliCaloCalibSignal *sig)
const TString kPhysicsRunType
virtual void Initialize(Int_t run, UInt_t startTime, UInt_t endTime)
dtor
AliDCSValue * ReadDCSValue(const TMap *values, const char *valname)
Read DCS.
void SetDiffCut(const Int_t diffCut)
int GetNChanFills() const
UInt_t GetTimeStamp() const
const TString kPedestalRunType
UInt_t ExtractPedestals(Int_t sourceFXS)
void SetL0COSM(UInt_t lc)
const TString kStandAloneRunType
const int kReturnCodeNoObject
void SetJ(Int_t vzpar, Int_t ithresh, Int_t val)
AliEMCALPreprocessor()
Default constructor.
Bool_t AddInfo(AliCaloCalibPedestal *ped)
Picks up new info from supplied argument.
virtual ~AliEMCALPreprocessor()
assignment operator
void SetMedianMode(Int_t mode)