|
//____________________________________________________________________ // // Module that dumps the SQL db calibration // into an ascii file that can be read by the cal hits module // //____________________________________________________________________ // // $Id: BrBbDumpCalModule.cxx,v 1.2 2002/02/15 21:20:18 videbaek Exp $ // $Author: videbaek $ // $Date: 2002/02/15 21:20:18 $ // $Copyright: (C) 2001 BRAHMS Collaboration <brahmlib@rhic.bnl.gov> // #ifndef WIN32 #include <iostream> #include <iomanip> #include <fstream> #else #include <iostream.h> #include <iomanip.h> #include <fstream.h> #endif #ifndef BRAT_BrBbDumpCalModule #include "BrBbDumpCalModule.h" #endif #ifndef BRAT_BrParameterDbManager #include "BrParameterDbManager.h" #endif #ifndef BRAT_BrCalibrationManager #include "BrCalibrationManager.h" #endif #ifndef BRAT_BrRunInfoManager #include "BrRunInfoManager.h" #endif #include <TDatime.h> //____________________________________________________________________ ClassImp(BrBbDumpCalModule); //____________________________________________________________________ BrBbDumpCalModule::BrBbDumpCalModule() : BrModule() { // Default constructor. DO NOT USE SetState(kSetup); fParamsBb = 0; fCalibration[0] = 0; fCalibration[1] = 0; } //____________________________________________________________________ BrBbDumpCalModule::BrBbDumpCalModule(const Char_t* name, const Char_t* title) : BrModule(name, title) { // Named Constructor SetState(kSetup); fParamsBb = 0; fCalibration[0] = 0; fCalibration[1] = 0; } //____________________________________________________________________ void BrBbDumpCalModule::Init() { // Job-level initialisation SetState(kInit); // ------------------------------------------- // calibration parameters and others BrParameterDbManager* parMan = BrParameterDbManager::Instance(); fParamsBb = (BrDetectorParamsBB*)parMan-> GetDetectorParameters("BrDetectorParamsBB", "BB"); BrCalibrationManager* calMan = BrCalibrationManager::Instance(); if (!calMan) { Abort("Init", "could not get calibration manager"); return; } fCalibration[0] = (BrBbCalibration*)calMan->Register("BrBbCalibration", "BBL"); fCalibration[1] = (BrBbCalibration*)calMan->Register("BrBbCalibration", "BBR"); if (!fCalibration[0] || !fCalibration[1]) { Abort("Init", "could not get calibration parameters"); return; } // set access mode to SQL read: BrCalibration::EAccessMode mode = BrCalibration::kRead; const Int_t ntubes[] = { fParamsBb->GetNoLeftTubes(), fParamsBb->GetNoRightTubes() }; for (Int_t i = 0; i < 2; i++) { fCalibration[i]->Use("pedestal", mode, ntubes[i]); fCalibration[i]->Use("pedestalWidth", mode, ntubes[i]); fCalibration[i]->Use("adcGain0", mode, ntubes[i]); fCalibration[i]->Use("adcGap", mode, ntubes[i]); fCalibration[i]->Use("adcGapStart", mode, ntubes[i]); fCalibration[i]->Use("tdcGain", mode, ntubes[i]); fCalibration[i]->Use("deltaTdc", mode, ntubes[i]); fCalibration[i]->Use("slewK", mode, ntubes[i]); fCalibration[i]->Use("slewDt", mode, ntubes[i]); fCalibration[i]->Use("slewP", mode, ntubes[i]); } } //____________________________________________________________________ void BrBbDumpCalModule::Begin() { // check if revisions exist if (!fCalibration[0]->RevisionExists("*") || !fCalibration[1]->RevisionExists("*")) { Abort("Begin", "Could not find revisions!! Aborting..."); return; } BrRunInfoManager* runMan = BrRunInfoManager::Instance(); Int_t nrun = runMan->GetNumberOfRuns(); Int_t* runs = runMan->GetRunNumbers(); for (Int_t r = 0; r < nrun; r++) { DumpCalibration(0, fParamsBb->GetNoLeftTubes(), runs[r]); DumpCalibration(1, fParamsBb->GetNoRightTubes(), runs[r]); } } //____________________________________________________________________________ void BrBbDumpCalModule::DumpCalibration(Int_t array, Int_t ntubes, Int_t runno) { // // here, dumping the calibration to an ascii file // const Char_t* bbName[] = { "Beam-Beam Left", "Beam-Beam Right" }; TString calibFile = Form("%sCalibRun%d.dat", fCalibration[array]->GetName(), runno); ofstream file(calibFile.Data(), ios::out); file << "******************************************************* " << endl; file << "* Whole Calibration for BB counter " << bbName[array] << endl; file << "* Calibration valid for run " << runno << endl; file << "******************************************************* " <<endl; file << "* table y/m/d h/min/sec Valid Start *" << endl; TDatime startDate; startDate.Set((UInt_t) fCalibration[array]->GetRevisionValidStart("pedestal")); file << "* pedestal " << setw(8) <<startDate.GetDate() << " - " << setw(8) << startDate.GetTime() << " *" <<endl ; startDate.Set((UInt_t) fCalibration[array]->GetRevisionValidStart("pedestalWidth")); file << "* pedestalWidth " << setw(8) <<startDate.GetDate() << " - " << setw(8)<< startDate.GetTime() << " *"<<endl ; startDate.Set((UInt_t) fCalibration[array]->GetRevisionValidStart("adcGain0")); file << "* adcGain0 " << setw(8) <<startDate.GetDate() << " - " << setw(8)<< startDate.GetTime() << " *"<<endl ; startDate.Set((UInt_t) fCalibration[array]->GetRevisionValidStart("adcGap")); file << "* adcGap " << setw(8) <<startDate.GetDate() << " - " << setw(8)<< startDate.GetTime() << " *"<<endl ; startDate.Set((UInt_t) fCalibration[array]->GetRevisionValidStart("adcGapStart")); file << "* adcGapStart " << setw(8) <<startDate.GetDate() << " - " << setw(8)<< startDate.GetTime() << " *"<<endl ; startDate.Set((UInt_t) fCalibration[array]->GetRevisionValidStart("tdcGain")); file << "* tdcGain " << setw(8) <<startDate.GetDate() << " - " << setw(8)<< startDate.GetTime() << " *"<<endl ; startDate.Set((UInt_t) fCalibration[array]->GetRevisionValidStart("deltaTdc")); file << "* deltaTdc " << setw(8) <<startDate.GetDate() << " - " << setw(8)<< startDate.GetTime() << " *"<<endl ; startDate.Set((UInt_t) fCalibration[array]->GetRevisionValidStart("slewK")); file << "* slewK " << setw(8) <<startDate.GetDate() << " - " << setw(8)<< startDate.GetTime() << " *"<<endl ; startDate.Set((UInt_t) fCalibration[array]->GetRevisionValidStart("slewDt")); file << "* slewDt " << setw(8) <<startDate.GetDate() << " - " << setw(8)<< startDate.GetTime() << " *"<<endl ; startDate.Set((UInt_t) fCalibration[array]->GetRevisionValidStart("slewP")); file << "* slewP " << setw(8) <<startDate.GetDate() << " - " << setw(8)<< startDate.GetTime() << " *" << endl; file << "******************************************************* " <<endl; file << "*" << endl; file << "* tube " << "| Pedestal | Ped. Width | Adc gain0 " << "| Adc Gap | Gap Start " << "| Tdc Gain | Delta Tdc | Slewing K " << "| Slewing Dt | Slewing P " << endl; file << "* ---------------------------------------" << "-----------------------" << "-----------------------------------------" << "---------------------------" << endl << endl; file.setf(ios::fixed); for (Int_t i = 0; i < ntubes; i++) { Int_t tube = i + 1; file << setw(5) << tube << setw(13) << setprecision(6) << fCalibration[array]->GetPedestal(tube) << setw(13) << setprecision(6) << fCalibration[array]->GetPedestalWidth(tube) << setw(13) << setprecision(6) << fCalibration[array]->GetAdcGain0(tube) << setw(13) << setprecision(6) << fCalibration[array]->GetAdcGap(tube) << setw(13) << setprecision(6) << fCalibration[array]->GetAdcGapStart(tube) << setw(13) << setprecision(6) << fCalibration[array]->GetTdcGain(tube) << setw(13) << setprecision(6) << fCalibration[array]->GetDeltaTdc(tube) << setw(13) << setprecision(6) << fCalibration[array]->GetSlewK(tube) << setw(13) << setprecision(6) << fCalibration[array]->GetSlewDt(tube) << setw(13) << setprecision(6) << fCalibration[array]->GetSlewP(tube) << endl; } file << "* ---------------------------------------" << "-----------------------" << "-----------------------------------------" << "---------------------------" << endl << endl; } //____________________________________________________________________ // // $Log: BrBbDumpCalModule.cxx,v $ // Revision 1.2 2002/02/15 21:20:18 videbaek // Add revision times to listing // // Revision 1.1 2001/11/04 01:54:03 ouerdane // Added a new class, BrBbDumpCalModule to be able to have some // back up ascii files that the cal hits module can load in case // of bad connection with the SQL db (Steve Sander's suggestion) // // A script is available in brat/scripts/calib/bb/ called BbDumpSqlCal.C // // Usage: bratmain BbDumpSqlCal.C -r <run number> // It will create 2 ascii files with all the cal. found in the SQL db. // One is for BB Left, the other is for BB Right // |
||||||
This page automatically generated by script docBrat by Christian Holm |
Copyright ; 2002 BRAHMS Collaboration
<brahmlib@rcf.rhic.bnl.gov>
|