//____________________________________________________________________ // // $Id: PatternDigits.C 28055 2008-08-18 00:33:20Z cholm $ // // Draw hits in the specialised FMD event display // /** Display hits @ingroup FMD_script */ Bool_t CheckFile(const char* prefix, const char* path, int number, TString& f) { f = (Form("%s%d.csv", prefix, number)); std::cout << "Checking if " << f << " exists in " << path << " ... " << std::flush; f = gSystem->Which(path, f.Data()); std::cout << '"' << f << '"' << std::endl; return !f.IsNull(); } void PatternCalib(const char* file="raw.root", const char* calib="$(HOME)/calib/", Int_t runno=0) { // AliLog::SetModuleDebugLevel("FMD", 1); gSystem->Load("libFMDutil.so"); AliCDBManager* cdb = AliCDBManager::Instance(); const char* cdbUri = gSystem->Getenv("AMORE_CDB_URI"); cdb->SetDefaultStorage(cdbUri); cdb->SetRun(runno); AliFMDCalibStripRange* range = new AliFMDCalibStripRange; AliFMDCalibSampleRate* rate = new AliFMDCalibSampleRate; AliFMDCalibPedestal* peds = new AliFMDCalibPedestal; AliFMDCalibGain* gains = new AliFMDCalibGain; Bool_t gotConds = kFALSE; Bool_t gotPeds = kFALSE; Bool_t gotGains = kFALSE; for (Int_t i = 1; i <= 3; i++) { TString f; if (CheckFile("conditions", calib, i, f)) { gotConds = kTRUE; std::cout << "Reading conditions for FMD" <<i<< " from " <<f<< std::endl; std::ifstream in(f.Data()); range->ReadFromFile(in); rate->ReadFromFile(in); } if (CheckFile("peds", calib, i, f)) { gotPeds = kTRUE; std::cout << "Reading pedestals for FMD" <<i<< " from " <<f<< std::endl; std::ifstream in(f.Data()); peds->ReadFromFile(in); } if (CheckFile("gains", calib, i, f)) { gotGains = kTRUE; std::cout << "Reading gains for FMD" <<i<< " from " <<f<< std::endl; std::ifstream in(f.Data()); gains->ReadFromFile(in); } } Int_t mask = (AliFMDParameters::kDeadMap| AliFMDParameters::kZeroSuppression| AliFMDParameters::kAltroMap); if (!gotConds) mask |= AliFMDParameters::kStripRange; if (!gotConds) mask |= AliFMDParameters::kSampleRate; if (!gotPeds) mask |= AliFMDParameters::kPedestal; if (!gotGains) mask |= AliFMDParameters::kPulseGain; AliFMDParameters* pars = AliFMDParameters::Instance(); pars->Init(kFALSE, mask); if (gotConds) pars->SetStripRange(range); if (gotConds) pars->SetSampleRate(rate); if (gotPeds) pars->SetPedestal(peds); if (gotGains) pars->SetGain(gains); // pars->Print("pedestal"); AliFMDPattern* d = new AliFMDPattern; d->AddLoad(AliFMDInput::kRawCalib); d->SetRawFile(file); d->SetName("rawCalib"); d->SetTitle("Calibrated Raw"); d->SetFactor(5); d->SetCut(0.02, 1); d->Run(); } //____________________________________________________________________ // // EOF //