/*
Contact: henrik.tydesjo@cern.ch
Link: tydes.home.cern.ch/tydes/doc/CalibrationOverview/CalibrationAlgorithms/
-Run Type: DAQ_MIN_TH_SCAN,DAQ_MEAN_TH_SCAN,DAQ_UNIFORMITY_SCAN,DAQ_NOISY_PIX_SCAN,DAQ_PIX_DELAY_SCAN,DAQ_FO_UNIF_SCAN
+Run Type: DAQ_MIN_TH_SCAN,DAQ_MEAN_TH_SCAN,DAQ_UNIFORMITY_SCAN,DAQ_NOISY_PIX_SCAN,DAQ_PIX_DELAY_SCAN
DA Type: LDC
Number of events needed: Depending on scan type
Input Files: spd_standal_params,spd_perm_noisy , ./calibResults/ScanNoisy/* , raw data
#include <TROOT.h>
#include <TPluginManager.h>
#include <TObjArray.h>
+#include <TObjString.h>
#include <TString.h>
#include <TFitter.h>
"TStreamerInfo()");
// turn off annoying warning messages
- new AliLog;
- AliLog::Instance()->SetGlobalDebugLevel(-20);
+ // NB: Should not be handled here
+ AliLog* logger = AliLog::GetRootLogger();
+ logger->SetGlobalDebugLevel(-20);
// calib scan types
enum calib_types{MINTH,MEANTH,DAC,UNIMA,NOISE,DELAY};
status=daqDA_DB_getFile(idp.Data(),paramsFileName.Data());
if (status) {
printf("Failed to get config file %s: status=%d. Using default tuning parameters.\n",idp.Data(),status);
+ TString rmCmd = Form("rm -f %s",paramsFileName.Data());
+ system(rmCmd.Data());
}
#endif
if (status==0) {
paramsFile >> paramN;
if (paramsFile.eof()) break;
paramsFile >> paramV;
- TString* paramNS = new TString(paramN);
- TString* paramVS = new TString(paramV);
- paramNames.AddAtAndExpand((TObject*)paramNS,nrTuningParams);
- paramVals.AddAtAndExpand((TObject*)paramVS,nrTuningParams);
+ paramNames.AddAtAndExpand(new TObjString(paramN),nrTuningParams);
+ paramVals.AddAtAndExpand(new TObjString(paramV),nrTuningParams);
nrTuningParams++;
if (paramsFile.eof()) break;
}
}
}
// for (UInt_t i=0; i<nrTuningParams; i++) {
- // printf("Entry %d: N=%s , V=%s\n",i,((TString*)paramNames.At(i))->Data(),((TString*)paramVals.At(i))->Data());
+ // // printf("Entry %d: N=%s , V=%s\n",i,((TString*)paramNames.At(i))->Data(),((TString*)paramVals.At(i))->Data());
+ // printf("Entry %d: N=%s , V=%s\n",i,((TObjString*)paramNames.At(i))->GetString().Data(),((TObjString*)paramVals.At(i))->GetString().Data());
// }
// perm noisy list:
permstatus=daqDA_DB_getFile(idn.Data(),permNoisyFileName.Data());
if (permstatus) {
printf("Failed to get config file %s: status=%d. No permanently noisy pixels will be added.\n",idn.Data(),permstatus);
+ TString rmCmd = Form("rm -f %s",permNoisyFileName.Data());
+ system(rmCmd.Data());
}
#endif
rowStart[eqId] = str->GetHrowStart();
rowEnd[eqId] = str->GetHrowEnd();
rowValue[eqId] = str->GetHrowValue();
- dacValue[eqId] = str->GetHdacValue();
+ dacValue[eqId] = str->GetHdacValue(); // this will change below for MEANTH scan
+
for (UInt_t hs=0; hs<6; hs++) {
halfStaveScanned[eqId][hs] = str->GetHhalfStaveScanned(hs);
dacHigh[eqId][hs] = str->GetHdacHigh(hs);
dacLow[eqId][hs] = str->GetHdacLow(hs);
TPAmp[eqId][hs] = str->GetHTPAmp(hs);
for (UInt_t chip=0; chip<10; chip++) {
- chipPresent[eqId][hs][chip] = str->GetHchipPresent(hs,chip);
+ chipPresent[eqId][hs][chip] = str->GetHchipPresent(hs,chip);
+ if (type[eqId]==MEANTH && chipPresent[eqId][hs][chip]) dacValue[eqId] = str->GetHdacLow(hs);
}
}
for (UInt_t chip=0; chip<10; chip++) {
}
scanObj[eqId]->SetType(type[eqId]);
scanObj[eqId]->SetDataFormat(dataFormat[eqId]);
- for (Int_t hs=0; hs<6; hs++) {
-
- // remove later when the chip present is set correctly !!!!!!!!!!!!!!!!!!!!!!!!!!!
- Bool_t halfStavePresent = str->GetHalfStavePresent(hs);
- // remove later when the chip present is set correctly !!!!!!!!!!!!!!!!!!!!!!!!!!!
-
+ for (Int_t hs=0; hs<6; hs++) {
for (UInt_t chip=0; chip<10; chip++) {
scanObj[eqId]->SetChipPresent(hs,chip,chipPresent[eqId][hs][chip]);
-
- // remove later when the chip present is set correctly !!!!!!!!!!!!!!!!!!!!!!!!!!!
- if (halfStavePresent) scanObj[eqId]->SetChipPresent(hs,chip,kTRUE);
- // remove later when the chip present is set correctly !!!!!!!!!!!!!!!!!!!!!!!!!!!
-
}
}
scanObj[eqId]->SetRowStart(rowStart[eqId]);
// configure analyzer with tuning parameters etc:
for (UInt_t i=0; i<nrTuningParams; i++) {
- analyzer->SetParam(((TString*)paramNames.At(i))->Data(),((TString*)paramVals.At(i))->Data());
+ analyzer->SetParam(((TObjString*)paramNames.At(i))->GetString().Data(),((TObjString*)paramVals.At(i))->GetString().Data());
}
UInt_t type = analyzer->GetType();
printf("DA finished.\n");
return 0;
-}
\ No newline at end of file
+}