32 #include "ARVersion.h" 37 #include "TParameter.h" 39 #include <TTimeStamp.h> 64 "CavernAtmosPressure",
65 "CavernAtmosPressure2",
66 "SurfaceAtmosPressure" };
80 fConfEnv(0), fTemp(0), fHighVoltage(0), fHighVoltageStat(0), fGoofie(0),
81 fPressure(0), fGasComposition(0), fConfigOK(kTRUE), fROC(0),
82 fForceSingleRun(kFALSE)
101 fConfEnv(0), fTemp(0), fHighVoltage(0), fHighVoltageStat(0), fGoofie(0),
102 fPressure(0), fGasComposition(0), fConfigOK(kTRUE), fROC(0),
103 fForceSingleRun(kFALSE)
106 Fatal(
"AliTPCPreprocessor",
"copy constructor not implemented");
126 Fatal(
"operator =",
"assignment operator not implemented");
138 AliInfo(Form(
"\n\tRun %d \n\tStartTime %s \n\tEndTime %s", run,
139 TTimeStamp((time_t)startTime,0).AsString(),
140 TTimeStamp((time_t)endTime,0).AsString()));
147 Log(
"AliTPCPreprocsessor: Preprocessor Config OCDB entry missing.\n");
156 TString tempConf =
fConfEnv->GetValue(
"Temperature",
"ON");
158 if (tempConf !=
"OFF" ) {
160 if (entry) confTree = (TTree*) entry->
GetObject();
162 Log(
"AliTPCPreprocsessor: Temperature Config OCDB entry missing.\n");
173 TString hvConf =
fConfEnv->GetValue(
"HighVoltage",
"ON");
175 if (hvConf !=
"OFF" ) {
179 if (entry) confTree = (TTree*) entry->
GetObject();
181 Log(
"AliTPCPreprocsessor: High Voltage Config OCDB entry missing.\n");
185 time_t timeStart = (time_t)(((TString)
GetRunParameter(
"DAQ_time_start")).Atoi());
186 time_t timeEnd = (time_t)(((TString)
GetRunParameter(
"DAQ_time_end")).Atoi());
188 UInt_t(timeEnd), confTree);
193 TString hvStatConf =
fConfEnv->GetValue(
"HighVoltageStat",
"ON");
194 hvStatConf.ToUpper();
195 if (hvStatConf !=
"OFF" ) {
199 if (entry) confTree = (TTree*) entry->
GetObject();
201 Log(
"AliTPCPreprocsessor: High Voltage Status Config OCDB entry missing.\n");
210 TString goofieConf =
fConfEnv->GetValue(
"Goofie",
"ON");
211 goofieConf.ToUpper();
212 if (goofieConf !=
"OFF" ) {
216 if (entry) confTree = (TTree*) entry->
GetObject();
218 Log(
"AliTPCPreprocsessor: Goofie Config OCDB entry missing.\n");
228 TString gasConf =
fConfEnv->GetValue(
"GasComposition",
"OFF");
230 if (gasConf !=
"OFF" ) {
234 if (entry) confTree = (TTree*) entry->
GetObject();
236 Log(
"AliTPCPreprocsessor: Gas Composition Config OCDB entry missing.\n");
240 time_t timeStart = (time_t)(((TString)
GetRunParameter(
"DAQ_time_start")).Atoi());
241 time_t timeEnd = (time_t)(((TString)
GetRunParameter(
"DAQ_time_end")).Atoi());
243 UInt_t(timeEnd), confTree);
251 TString pressureConf =
fConfEnv->GetValue(
"Pressure",
"ON");
252 pressureConf.ToUpper();
253 if (pressureConf !=
"OFF" ) {
275 TString errorHandling =
fConfEnv->GetValue(
"ErrorHandling",
"ON");
276 errorHandling.ToUpper();
283 if (dcsAliasMap->GetEntries() == 0 ) dcsResult=1;
285 status =
new TParameter<int>(
"dcsResult",dcsResult);
286 resultArray->Add(status);
291 if ( dcsResult == 0 ) {
295 TString tempConf =
fConfEnv->GetValue(
"Temperature",
"ON");
297 if (tempConf !=
"OFF" ) {
299 if ( tempConf !=
"TRY") result+=tempResult;
300 status =
new TParameter<int>(
"tempResult",tempResult);
301 resultArray->Add(status);
307 TString hvConf =
fConfEnv->GetValue(
"HighVoltage",
"ON");
309 if (hvConf !=
"OFF" ) {
311 if (hvConf !=
"TRY") result+=hvResult;
312 status =
new TParameter<int>(
"hvResult",hvResult);
313 resultArray->Add(status);
319 TString goofieConf =
fConfEnv->GetValue(
"Goofie",
"ON");
320 goofieConf.ToUpper();
321 if (goofieConf !=
"OFF" ) {
322 UInt_t goofieResult =
MapGoofie(dcsAliasMap);
323 if (goofieConf !=
"TRY") result+=goofieResult;
324 status =
new TParameter<int>(
"goofieResult",goofieResult);
325 resultArray->Add(status);
332 TString gasConf =
fConfEnv->GetValue(
"GasComposition",
"OFF");
334 if (gasConf !=
"OFF" ) {
336 if (gasConf !=
"TRY") result+=gasResult;
337 status =
new TParameter<int>(
"gasResult",gasResult);
338 resultArray->Add(status);
346 TString pressureConf =
fConfEnv->GetValue(
"Pressure",
"ON");
347 pressureConf.ToUpper();
348 if (pressureConf !=
"OFF" ) {
350 status =
new TParameter<int>(
"pressureResult",pressureResult);
351 resultArray->Add(status);
366 Int_t numSources = 1;
368 TString source =
fConfEnv->GetValue(
"Pedestal",
"DAQ");
370 if (source !=
"OFF" ) {
373 if (source ==
"HLTDAQ" ) {
378 if (source ==
"DAQHLT" ) numSources=2;
379 UInt_t pedestalResult=0;
380 for (Int_t i=0; i<numSources; i++ ) {
382 if ( pedestalResult == 0 )
break;
384 result += pedestalResult;
385 status =
new TParameter<int>(
"pedestalResult",pedestalResult);
386 resultArray->Add(status);
393 Int_t numSources = 1;
395 TString source =
fConfEnv->GetValue(
"Pulser",
"DAQ");
397 if ( source !=
"OFF") {
400 if (source ==
"HLTDAQ" ) {
405 if (source ==
"DAQHLT" ) numSources=2;
406 if (source ==
"TRY" ) numSources=1;
407 UInt_t pulserResult=0;
408 for (Int_t i=0; i<numSources; i++ ) {
410 if ( pulserResult == 0 )
break;
412 if (source !=
"TRY") result += pulserResult;
413 status =
new TParameter<int>(
"pulserResult",pulserResult);
414 resultArray->Add(status);
422 Int_t numSources = 1;
424 TString source =
fConfEnv->GetValue(
"Raw",
"DAQ");
426 if ( source !=
"OFF") {
429 if (source ==
"HLTDAQ" ) {
434 if (source ==
"DAQHLT" ) numSources=2;
435 if (source ==
"TRY" ) numSources=1;
437 for (Int_t i=0; i<numSources; i++ ) {
439 if ( rawResult == 0 )
break;
441 if (source !=
"TRY" )result += rawResult;
442 status =
new TParameter<int>(
"rawResult",rawResult);
443 resultArray->Add(status);
451 TString altroConf =
fConfEnv->GetValue(
"AltroConf",
"ON");
453 if (altroConf !=
"OFF" ) {
455 if (altroConf !=
"TRY" ) result+=altroResult;
456 status =
new TParameter<int>(
"altroResult",altroResult);
457 resultArray->Add(status);
466 Int_t numSources = 1;
468 TString source =
fConfEnv->GetValue(
"CE",
"DAQ");
470 if ( source !=
"OFF" ) {
473 if (source ==
"HLTDAQ" ) {
478 if (source ==
"DAQHLT" ) numSources=2;
479 if (source ==
"TRY" ) numSources=1;
481 for (Int_t i=0; i<numSources; i++ ) {
483 if ( ceResult == 0 )
break;
489 if ( runType ==
kLaserRunType && source !=
"TRY" && ceResult<10 ) result += ceResult;
490 status =
new TParameter<int>(
"ceResult",ceResult);
491 resultArray->Add(status);
495 source =
fConfEnv->GetValue(
"QA",
"DAQ");
497 if ( source !=
"OFF" ) {
500 if (source ==
"HLTDAQ" ) {
505 if (source ==
"DAQHLT" ) numSources=2;
506 if (source ==
"TRY" ) numSources=1;
508 for (Int_t i=0; i<numSources; i++ ) {
510 if ( qaResult == 0 )
break;
513 if ( qaResult !=0 )
Log (
"ExtractQA failed, no QA entry available.");
514 status =
new TParameter<int>(
"qaResult",qaResult);
515 resultArray->Add(status);
526 metaData.
SetComment(
"Preprocessor AliTPC status.");
527 Bool_t storeOK =
Store(
"Calib",
"PreprocStatus", resultArray, &metaData, 0, kFALSE);
528 if (!storeOK)
Log (
"Unable to store preprocessor status entry");
530 resultArray->Delete();
533 if (errorHandling ==
"OFF" )
return 0;
549 AliInfo(Form(
"Temperature values extracted, fits performed.\n"));
551 Log (
"Too few temperature maps fitted. \n");
555 Log(
"No temperature map extracted. \n");
566 metaData.
SetComment(
"Preprocessor AliTPC data base entries.");
568 Bool_t storeOK =
Store(
"Calib",
"Temperature",
fTemp, &metaData, 0, kFALSE);
569 if ( !storeOK ) result=1;
588 AliInfo(Form(
"Pressure values extracted, fits performed.\n"));
590 Log (
"Too few pressure maps fitted. \n");
594 Log(
"No pressure map extracted. \n");
615 Log(
"No high voltage recordings extracted. \n");
620 TString hvStatConf =
fConfEnv->GetValue(
"HighVoltageStat",
"ON");
621 hvStatConf.ToUpper();
622 if (hvStatConf !=
"OFF" ) {
628 Log(
"No high voltage status recordings extracted. \n");
644 metaData.
SetComment(
"Preprocessor AliTPC data base entries.");
646 Bool_t storeOK =
Store(
"Calib",
"HighVoltage",
fHighVoltage, &metaData, 0, kFALSE);
647 if ( !storeOK ) result=1;
668 Log(
"No Goofie recordings extracted. \n");
680 metaData.
SetComment(
"Preprocessor AliTPC data base entries.");
682 Bool_t storeOK =
Store(
"Calib",
"Goofie",
fGoofie, &metaData, 0, kFALSE);
683 if ( !storeOK ) result=1;
705 Log(
"No gas composition recordings extracted. \n");
717 metaData.
SetComment(
"Preprocessor AliTPC data base entries.");
720 if ( !storeOK ) result=1;
740 if ( calPadPedOCDB==NULL ) {
741 Log(
"AliTPCPreprocsessor: No previous TPC pedestal entry available.\n");
747 if ( calPadRMSOCDB==NULL ) {
748 Log(
"AliTPCPreprocsessor: No previous TPC noise entry available.\n");
765 if (list && list->GetEntries()>0) {
769 Bool_t changed=
false;
771 while (list->At(index)!=NULL) {
772 TObjString* fileNameEntry = (TObjString*) list->At(index);
773 if (fileNameEntry!=NULL) {
775 fileNameEntry->GetString().Data());
778 Log (
"Error opening pedestal file.");
783 f->GetObject(
"tpcCalibPedestal",calPed);
785 Log (
"No pedestal calibration object in file.");
793 for (Int_t sector=0; sector<nSectors; sector++) {
798 foundSectorsPed[sector]++;
804 foundSectorsRMS[sector]++;
817 for (Int_t sector=0; sector<nSectors/2; sector++) {
818 if (foundSectorsPed[sector] < 1 ) {
823 const int mess_length=100;
824 char message[mess_length];
825 snprintf(message,mess_length,
"Missing pedestals for sector %d - also not available from previous OCDB entry.\n",
831 if (foundSectorsRMS[sector] < 1 ) {
836 const int mess_length=100;
837 char message[mess_length];
838 snprintf(message,mess_length,
"Missing pedestal RMS for sector %d - also not available from previous OCDB entry.\n",
848 for (Int_t sector=nSectors/2; sector<nSectors; sector++) {
849 if (foundSectorsPed[sector] < 2 ) {
854 const int mess_length=100;
855 char message[mess_length];
856 snprintf(message,mess_length,
"Missing pedestals for sector %d - also not available from previous OCDB entry.\n",
863 if (foundSectorsRMS[sector] < 2 ) {
868 const int mess_length=100;
869 char message[mess_length];
870 snprintf(message,mess_length,
"Missing pedestal RMS for sector %d - also not available from previous OCDB entry.\n",
888 metaData.
SetComment(
"Preprocessor AliTPC data base entries.");
891 if ( !storeOK ) ++result;
892 storeOK =
Store(
"Calib",
"PadNoise", calPadRMS, &metaData, 0, kTRUE ^ fForceSingleRun);
893 if ( !storeOK ) ++result;
896 Log (
"Error: no entries in pedestal file list!");
902 delete calPadPedOCDB;
903 delete calPadRMSOCDB;
920 pulserObjects->SetOwner(kTRUE);
925 if ( pulserObjectsOCDB==NULL ) {
926 Log(
"AliTPCPreprocsessor: No previous TPC pulser entry available.\n");
928 pulserObjectsOCDB->SetOwner(kTRUE);
932 pulserObjects->Add(pulserTmean);
935 pulserObjects->Add(pulserTrms);
938 pulserObjects->Add(pulserQmean);
955 if (list && list->GetEntries()>0) {
959 Bool_t changed=
false;
961 while (list->At(index)!=NULL) {
962 TObjString* fileNameEntry = (TObjString*) list->At(index);
963 if (fileNameEntry!=NULL) {
965 fileNameEntry->GetString().Data());
968 Log (
"Error opening pulser file.");
973 f->GetObject(
"tpcCalibPulser",calPulser);
975 Log (
"No pulser calibration object in file.");
983 for (Int_t sector=0; sector<nSectors; sector++) {
987 roc->
Add(rocTmean,1);
988 foundTmean[sector]++;
999 roc->
Add(rocQmean,1);
1000 foundQmean[sector]++;
1012 if (pulserObjectsOCDB) {
1021 for (Int_t sector=0; sector<nSectors/2; sector++) {
1022 if (foundTmean[sector] < 1 ) {
1023 if (pulserTmeanOCDB) {
1025 if ( rocOCDB ) pulserTmean->
SetCalROC(rocOCDB,sector);
1028 if (foundTrms[sector] < 1 ) {
1029 if (pulserTrmsOCDB) {
1031 if ( rocOCDB ) pulserTrms->
SetCalROC(rocOCDB,sector);
1034 if (foundQmean[sector] < 1 ) {
1035 if (pulserQmeanOCDB) {
1037 if ( rocOCDB ) pulserQmean->
SetCalROC(rocOCDB,sector);
1044 for (Int_t sector=0; sector<nSectors/2; sector++) {
1045 if (foundTmean[sector] < 2 ) {
1046 if (pulserTmeanOCDB) {
1048 if ( rocOCDB ) pulserTmean->
SetCalROC(rocOCDB,sector);
1051 if (foundTrms[sector] < 2 ) {
1052 if (pulserTrmsOCDB) {
1054 if ( rocOCDB ) pulserTrms->
SetCalROC(rocOCDB,sector);
1057 if (foundQmean[sector] < 2 ) {
1058 if (pulserQmeanOCDB) {
1060 if ( rocOCDB ) pulserQmean->
SetCalROC(rocOCDB,sector);
1075 metaData.
SetComment(
"Preprocessor AliTPC data base entries.");
1077 Bool_t storeOK =
Store(
"Calib",
"Pulser", pulserObjects, &metaData, 0, kTRUE ^
fForceSingleRun);
1078 if ( !storeOK ) ++result;
1081 Log (
"Error: no entries in pulser file list!");
1084 pulserObjects->Delete();
1085 delete pulserObjects;
1086 if (pulserObjectsOCDB) {
1087 pulserObjectsOCDB->Delete();
1089 delete pulserObjectsOCDB;
1105 rawArray->SetOwner(kTRUE);
1109 if (list && list->GetEntries()>0) {
1114 while (list->At(index)!=NULL) {
1115 TObjString* fileNameEntry = (TObjString*) list->At(index);
1116 if (fileNameEntry!=NULL) {
1118 fileNameEntry->GetString().Data());
1121 Log (
"Error opening raw file.");
1126 f->GetObject(
"tpcCalibRaw",calRaw);
1128 Log (
"No raw calibration object in file.");
1132 rawArray->Add(calRaw);
1144 metaData.
SetComment(
"Preprocessor AliTPC data base entries.");
1147 if ( !storeOK ) ++result;
1149 Log (
"Error: no entries in raw file list!");
1173 ceObjects->SetOwner(kTRUE);
1178 ceObjects->Add(ceTmean);
1181 ceObjects->Add(ceTrms);
1184 ceObjects->Add(ceQmean);
1187 rocTtime->SetName(
"rocTtime");
1188 ceObjects->Add(rocTtime);
1189 rocTtime->SetOwner(kTRUE);
1192 rocQtime->SetName(
"rocQtime");
1193 ceObjects->Add(rocQtime);
1194 rocQtime->SetOwner(kTRUE);
1198 arrFitGraphs->SetName(
"ceFitsDrift");
1199 ceObjects->Add(arrFitGraphs);
1200 arrFitGraphs->SetOwner(kTRUE);
1206 tempMap->SetNameTitle(
"TempMap",
"TempMap");
1207 ceObjects->Add(tempMap);
1219 ceObjects->Add(sensorCopy);
1228 if (list && list->GetEntries()>0) {
1233 while (list->At(index)!=NULL) {
1234 TObjString* fileNameEntry = (TObjString*) list->At(index);
1235 if (fileNameEntry!=NULL) {
1237 fileNameEntry->GetString().Data());
1241 Log (
"No valid calibCE object.");
1247 for (Int_t sector=0; sector<nSectors; sector++) {
1249 if ( rocTmean ) ceTmean->
SetCalROC(rocTmean,sector);
1251 if ( rocTrms ) ceTrms->
SetCalROC(rocTrms,sector);
1253 if ( rocQmean ) ceQmean->
SetCalROC(rocQmean,sector);
1254 TGraph *grT=calCE->MakeGraphTimeCE(sector,0,2);
1255 if ( grT ) rocTtime->AddAt(grT,sector);
1256 TGraph *grQ=calCE->MakeGraphTimeCE(sector,0,3);
1257 if ( grQ ) rocQtime->AddAt(grQ,sector);
1260 TGraph *grT=calCE->MakeGraphTimeCE(-1,0,2);
1262 rocTtime->AddAt(grT,nSectors);
1266 grT=calCE->MakeGraphTimeCE(-2,0,2);
1268 rocTtime->AddAt(grT,nSectors+1);
1281 Int_t aside=0, cside=0;
1282 for (Int_t ind=0; ind<nSectors/4; ind++ ) {
1283 TGraph *grT=(TGraph*)rocTtime->At(ind);
1285 grT=(TGraph*)rocTtime->At(ind+nSectors/2);
1287 grT=(TGraph*)rocTtime->At(ind+nSectors/4);
1289 grT=(TGraph*)rocTtime->At(ind+3*nSectors/4);
1293 Log (Form(
"ExtractCE: Too few fitted sectors: Aside =%d, Cside=%d\n",
1305 if (result==0 && list && list->GetEntries()>0) {
1310 while (list->At(index2)!=NULL) {
1311 TObjString* fileNameEntry = (TObjString*) list->At(index2);
1312 if (fileNameEntry!=NULL) {
1314 fileNameEntry->GetString().Data());
1318 Log (
"No valid new calibCE object.");
1323 TIter nextObj(calCE->GetArrFitGraphs());
1325 while ( (obj=nextObj()) ){
1326 arrFitGraphs->Add(obj->Clone());
1342 metaData.
SetComment(
"Preprocessor AliTPC data base entries.");
1344 if ( result == 0 ) {
1346 if ( !storeOK ) ++result;
1348 Log (
"Warning: Average time graphs not available - no OCDB entry written");
1351 Log (
"Error: no CE entries available from FXS!");
1355 ceObjects->Delete();
1372 if (list && list->GetEntries()>0) {
1378 UInt_t nentries = list->GetEntries();
1380 if ( nentries > 1)
Log (
"More than one QA entry. First one processed");
1381 TObjString* fileNameEntry = (TObjString*) list->At(index);
1382 if (fileNameEntry!=NULL) {
1384 fileNameEntry->GetString().Data());
1387 Log (
"Error opening QA file.");
1390 f->GetObject(
"tpcCalibQA",calQA);
1399 metaData.
SetComment(
"Preprocessor AliTPC data base entries.");
1401 Bool_t storeOK =
Store(
"Calib",
"QA", calQA, &metaData, 0, kFALSE);
1402 if ( !storeOK ) ++result;
1408 Log (
"Error: no QA files on FXS!");
1412 Log (
"Error: no QA entries in FXS list!");
1435 TMap *mapRCUconfig=0;
1439 if ( altroObjects==NULL ) {
1440 Log(
"AliTPCPreprocsessor: No previous TPC altro calibration entry available.\n");
1443 altroObjects->SetOwner(kTRUE);
1445 acqStart = (
AliTPCCalPad*)altroObjects->FindObject(
"AcqStart");
1448 altroObjects->Add(acqStart);
1450 zsThr = (
AliTPCCalPad*)altroObjects->FindObject(
"ZsThr");
1453 altroObjects->Add(zsThr);
1455 FPED = (
AliTPCCalPad*)altroObjects->FindObject(
"FPED");
1458 altroObjects->Add(FPED);
1460 acqStop = (
AliTPCCalPad*)altroObjects->FindObject(
"AcqStop");
1463 altroObjects->Add(acqStop);
1465 masked = (
AliTPCCalPad*)altroObjects->FindObject(
"Masked");
1468 altroObjects->Add(masked);
1473 altroObjects->Add(k1);
1478 altroObjects->Add(k2);
1483 altroObjects->Add(k3);
1488 altroObjects->Add(l1);
1493 altroObjects->Add(l2);
1498 altroObjects->Add(l3);
1500 mapRCUconfig = (TMap*)altroObjects->FindObject(
"RCUconfig");
1501 if (!mapRCUconfig) {
1502 mapRCUconfig =
new TMap();
1503 mapRCUconfig->SetName(
"RCUconfig");
1504 altroObjects->Add(mapRCUconfig);
1509 TString idFXS[2]={
"AltroConfigA",
"AltroConfigC"};
1512 Bool_t changed=
false;
1513 if (altroObjects == 0 ) altroObjects =
new TObjArray;
1514 altroObjects->SetOwner(kTRUE);
1522 for ( Int_t iDDL = 0; iDDL<
kNumDDL; iDDL++ ) {
1524 TPair *pair = (TPair*)dcsMap->FindObject(stringID.Data());
1541 TObjString *ddlArray =
new TObjString;
1542 ddlArray->SetString(arrDDL);
1543 TMap *activeDDL =
new TMap;
1544 activeDDL->SetName(
"DDLArray");
1545 TObjString *key =
new TObjString(
"DDLArray");
1546 activeDDL->Add(key,ddlArray);
1547 altroObjects->Add(activeDDL);
1550 Log (
"ExtractAltro: No DCS map available. Active DDL list cannot be obtained.");
1556 for ( Int_t
id=0;
id<2;
id++) {
1559 if (list && list->GetEntries()>0) {
1564 while (list->At(index)!=NULL) {
1565 TObjString* fileNameEntry = (TObjString*) list->At(index);
1566 if (fileNameEntry!=NULL) {
1568 fileNameEntry->GetString().Data());
1571 const int mess_length=40;
1572 char message[mess_length];
1573 snprintf(message,mess_length,
"Error opening Altro configuration file, id = %d",
id);
1579 f->GetObject(
"AltroConfig",altroFXS);
1581 Log (
"No Altro configuration object in file.");
1598 TMap *mapRCUconfigFXS = (TMap*)altroFXS->FindObject(
"RCUconfig");
1599 TIterator *mapFXSiter = mapRCUconfigFXS->MakeIterator();
1602 for (Int_t sector=0; sector<nSectors; sector++) {
1606 if ( rocAcqStart ) acqStart->
SetCalROC(rocAcqStart,sector);
1610 if ( rocZsThr ) zsThr->
SetCalROC(rocZsThr,sector);
1614 if ( rocAcqStop ) acqStop->
SetCalROC(rocAcqStop,sector);
1618 if ( rocFPED ) FPED->
SetCalROC(rocFPED,sector);
1622 if ( rocMasked ) masked->
SetCalROC(rocMasked,sector);
1626 if ( rocK1 ) k1->
SetCalROC(rocK1,sector);
1630 if ( rocK2 ) k2->SetCalROC(rocK2,sector);
1634 if ( rocK3 ) k3->SetCalROC(rocK3,sector);
1638 if ( rocL1 ) l1->
SetCalROC(rocL1,sector);
1642 if ( rocL2 ) l2->SetCalROC(rocL2,sector);
1646 if ( rocL3 ) l3->SetCalROC(rocL3,sector);
1649 if (mapRCUconfigFXS) {
1650 Int_t mapEntries = mapRCUconfigFXS->GetEntries();
1654 for (Int_t i=0; i<mapEntries; ++i) {
1655 keyFXS=(TObjString*)mapFXSiter->Next();
1656 vecFXS=(TVectorF*)mapRCUconfigFXS->GetValue(keyFXS);
1657 vec=(TVectorF*)mapRCUconfig->GetValue(keyFXS);
1659 vec =
new TVectorF(3*nSectors);
1661 mapRCUconfig->Add(keyFXS,vec);
1663 if (vec->GetNoElements() != 3*nSectors ) {
1664 vec->ResizeTo(3*nSectors);
1667 vec->SetSub(0,vecFXS->GetSub(0,nSectors/2-1));
1668 vec->SetSub(nSectors,vecFXS->GetSub(nSectors,2*nSectors-1));
1670 vec->SetSub(nSectors/2,vecFXS->GetSub(nSectors/2,nSectors-1));
1671 vec->SetSub(2*nSectors,vecFXS->GetSub(2*nSectors,3*nSectors-1));
1682 Log (
"Error: no entries in AltroConfig file list!");
1695 metaData.
SetComment(
"Preprocessor AliTPC data base entries.");
1697 Bool_t storeOK =
Store(
"Calib",
"AltroConfig", altroObjects, &metaData, 0, kFALSE);
1698 if ( !storeOK ) ++result;
1701 altroObjects->Delete();
1702 delete altroObjects;
const TString kPedestalRunType
UInt_t MapPressure(TMap *dcsAliasMap)
AliTPCROC * fROC
TPC Read-Out configuration.
Bool_t Store(const char *pathLevel2, const char *pathLevel3, TObject *object, AliCDBMetaData *metaData, Int_t validityStart=0, Bool_t validityInfinite=kFALSE)
const char * GetRunParameter(const char *param)
TList * GetFileSources(Int_t system, const char *id=0)
UInt_t ExtractPedestals(Int_t sourceFXS)
AliTPCCalROC * GetCalRocRMS(Int_t sector, Bool_t force=kFALSE)
TFile * Open(const char *filename, Long64_t &nevents)
AliDCSSensorArray * fPressure
Pressure values from DCS.
AliTPCCalROC * GetCalROC(Int_t sector) const
Bool_t fForceSingleRun
Force single run validity for all object, required for manual reprocessing.
AliTPCPreprocessor & operator=(const AliTPCPreprocessor &rhs)
AliCDBEntry * GetFromOCDB(const char *pathLevel2, const char *pathLevel3)
void MakeSplineFit(TMap *map, Bool_t keepMap=kFALSE)
void SetCalROC(AliTPCCalROC *roc, Int_t sector=-1)
const TString kPhysicsRunType
Implementation of the TPC pedestal calibration.
const char * kPressureSensorNames[kNumPressureSensors]
AliTPCCalROC * GetCalRocRMS(Int_t sector, Bool_t force=kFALSE)
const TString kStandaloneRunType
void SetStringID(const TString &stringID)
const char * GetFile(Int_t system, const char *id, const char *source)
TMap * ExtractDCS(TMap *dcsMap, Bool_t keepStart=kFALSE)
UInt_t ExtractCE(Int_t sourceFXS)
AliDCSSensor * GetSensor(Int_t IdDCS)
void AddSensors(AliDCSSensorArray *sensors)
const Int_t kNumPressureSensors
AliTPCPreprocessor(AliShuttleInterface *shuttle)
TString fileName(const char *dir, int runNumber, const char *da, int i, const char *type)
const TString kPulserRunType
const TString kDaqRunType
AliDCSSensorArray * fGasComposition
Gas composition values from DCS.
Implementation of the TPC pulser calibration.
const TString kAmandaTemp
virtual ~AliTPCPreprocessor()
Bool_t fConfigOK
Identify succesful reading of OCDB Config.
const TString kLaserRunType
UInt_t ExtractAltro(Int_t sourceFXS, TMap *dcsAliasMap)
TTimeStamp startTime(2009, 8, 7, 0, 0, 0)
AliDCSSensorArray * fGoofie
Goofie values from DCS.
AliTPCCalROC * GetCalRocPedestal(Int_t sector, Bool_t force=kFALSE)
AliTPCCalROC * GetCalRocQ(Int_t sector, Bool_t force=kFALSE)
UInt_t ExtractPulser(Int_t sourceFXS)
TEnv * fConfEnv
Preprocessor configuration map.
AliTPCCalROC * GetCalRocT0(Int_t sector, Bool_t force=kFALSE)
test preprocessor that writes data to AliTestDataDCS
void Log(const char *message, UInt_t level=3)
UInt_t MapGasComposition(TMap *dcsAliasMap)
UInt_t MapHighVoltage(TMap *dcsAliasMap)
const Int_t kMinCESectors
TPC calibration base class for one ROC.
UInt_t MapGoofie(TMap *dcsAliasMap)
void SetValCut(const Int_t valCut)
AliDCSSensorArray * fHighVoltageStat
DCS high voltage status.
virtual void Initialize(Int_t run, UInt_t startTime, UInt_t endTime)
const char * GetRunType()
const Double_t kFitFraction
virtual void Initialize(Int_t run, UInt_t startTime, UInt_t endTime)
const Double_t kHighVoltageDifference
const Double_t kGasCompositionDifference
void SetDiffCut(const Int_t diffCut)
const TString kCosmicRunType
TPC calibration class for parameters which saved per pad.
AliDCSSensorArray * fHighVoltage
DCS high voltage measurements.
static AliTPCROC * Instance()
Implementation of the TPC Central Electrode calibration.
class TVectorT< Double_t > TVectorD
AliTPCSensorTempArray * fTemp
CDB class for temperature sensors.
UInt_t GetNSectors() const
void RemoveGraphDuplicates(Double_t tolerance=1e-6)
UInt_t ExtractRaw(Int_t sourceFXS)
static AliTPCCalibCE * ReadFromFile(const Char_t *filename)
virtual UInt_t Process(TMap *dcsAliasMap)
UInt_t ExtractQA(Int_t sourceFXS)
UInt_t MapTemperature(TMap *dcsAliasMap)
Implementation of the TPC Raw drift velocity and Altro L1 Phase calibration.