//______________________________________________________________________________________________
AliTPCPreprocessor::AliTPCPreprocessor(AliShuttleInterface* shuttle) :
AliPreprocessor("TPC",shuttle),
- fConfEnv(0), fTemp(0), fHighVoltage(0), fHighVoltageStat(0), fConfigOK(kTRUE), fROC(0)
+ fConfEnv(0), fTemp(0), fHighVoltage(0), fHighVoltageStat(0), fGoofie(0), fConfigOK(kTRUE), fROC(0)
{
// constructor
fROC = AliTPCROC::Instance();
//______________________________________________________________________________________________
AliTPCPreprocessor::AliTPCPreprocessor(const AliTPCPreprocessor& ) :
AliPreprocessor("TPC",0),
- fConfEnv(0), fTemp(0), fHighVoltage(0), fHighVoltageStat(0), fConfigOK(kTRUE), fROC(0)
+ fConfEnv(0), fTemp(0), fHighVoltage(0), fHighVoltageStat(0), fGoofie(0), fConfigOK(kTRUE), fROC(0)
{
Fatal("AliTPCPreprocessor", "copy constructor not implemented");
}
fHighVoltageStat = new AliDCSSensorArray(startTimeLocal, endTimeLocal, confTree);
}
+
+ // Goofie values
+
+ TString goofieConf = fConfEnv->GetValue("Goofie","ON");
+ goofieConf.ToUpper();
+ if (goofieConf != "OFF" ) {
+ confTree=0;
+ entry=0;
+ entry = GetFromOCDB("Config", "Goofie");
+ if (entry) confTree = (TTree*) entry->GetObject();
+ if ( confTree==0 ) {
+ Log("AliTPCPreprocsessor: Goofie Config OCDB entry missing.\n");
+ fConfigOK = kFALSE;
+ return;
+ }
+ fGoofie = new AliDCSSensorArray(startTimeLocal, endTimeLocal, confTree);
+ }
+
+
}
//______________________________________________________________________________________________
resultArray->Add(status);
}
+ // Goofie values
+
+
+ TString goofieConf = fConfEnv->GetValue("Goofie","ON");
+ goofieConf.ToUpper();
+ if (goofieConf != "OFF" ) {
+ UInt_t goofieResult = MapGoofie(dcsAliasMap);
+ result+=goofieResult;
+ status = new TParameter<int>("goofieResult",goofieResult);
+ resultArray->Add(status);
+ }
+
// Other calibration information will be retrieved through FXS files
// examples:
// TList* fileSourcesDAQ = GetFile(AliShuttleInterface::kDAQ, "pedestals");
}
+//______________________________________________________________________________________________
+UInt_t AliTPCPreprocessor::MapGoofie(TMap* dcsAliasMap)
+{
+
+ // extract DCS Goofie maps. Do not perform fits (low update rate)
+
+ UInt_t result=0;
+
+ TMap *map = fGoofie->ExtractDCS(dcsAliasMap);
+ if (map) {
+ fGoofie->ClearFit();
+ fGoofie->SetGraph(map);
+ } else {
+ Log("No Goofie recordings extracted. \n");
+ result=9;
+ }
+ delete map;
+
+ // Now store the final CDB file
+
+ if ( result == 0 ) {
+ AliCDBMetaData metaData;
+ metaData.SetBeamPeriod(0);
+ metaData.SetResponsible("Haavard Helstrup");
+ metaData.SetComment("Preprocessor AliTPC data base entries.");
+
+ Bool_t storeOK = Store("Calib", "Goofie", fGoofie, &metaData, 0, kFALSE);
+ if ( !storeOK ) result=1;
+
+ }
+
+ return result;
+
+}
+
//______________________________________________________________________________________________
virtual UInt_t Process(TMap* dcsAliasMap);
UInt_t MapTemperature(TMap* dcsAliasMap);
UInt_t MapHighVoltage(TMap* dcsAliasMap);
+ UInt_t MapGoofie(TMap* dcsAliasMap);
UInt_t ExtractPedestals(Int_t sourceFXS);
UInt_t ExtractPulser(Int_t sourceFXS);
UInt_t ExtractCE(Int_t sourceFXS);
AliTPCSensorTempArray *fTemp; // CDB class for temperature sensors
AliDCSSensorArray *fHighVoltage; // DCS high voltage measurements
AliDCSSensorArray *fHighVoltageStat; // DCS high voltage status
+ AliDCSSensorArray *fGoofie; // Goofie values from DCS
Bool_t fConfigOK; // Identify succesful reading of OCDB Config
AliTPCROC *fROC; // TPC Read-Out configuration
- ClassDef(AliTPCPreprocessor, 2)
+ ClassDef(AliTPCPreprocessor, 3)
};
#endif