|
//____________________________________________________________________ // // Calibration parameter class for Beam-Beam counters // //____________________________________________________________________ // // $Id: BrBbCalibration.cxx,v 1.7 2001/11/05 06:48:20 ouerdane Exp $ // $Author: ouerdane $ // $Date: 2001/11/05 06:48:20 $ // $Copyright: (C) 2001 BRAHMS Collaboration <brahmlib@rhic.bnl.gov> // #ifndef BRAT_BrBbCalibration #include "BrBbCalibration.h" #endif #ifndef BRAT_BrCalibration #include "BrCalibration.h" #endif #ifndef ROOT_TString #include "TString.h" #endif #ifndef BRAT_BrParameterDbManager #include "BrParameterDbManager.h" #endif //____________________________________________________________________ ClassImp(BrBbCalibration); //____________________________________________________________________ BrBbCalibration::BrBbCalibration() { // Default constructor } //_________________________________________________________________________ BrBbCalibration::BrBbCalibration(Char_t *name, Char_t *title) : BrCalibration(name, title) { // Standard constructor. // the name should be that of the associated detector e.g. "TOF1" // Create the Db Objects needed for the specific tables. // Beware difference between constructor and Init. AddParameterData("pedestal", &fPedestal); AddParameterData("pedestalWidth", &fPedestalWidth); AddParameterData("tdcGain", &fTdcGain); AddParameterData("deltaTdc", &fDeltaTdc); AddParameterData("adcGain0", &fAdcGain0); AddParameterData("adcGain1", &fAdcGain1); AddParameterData("adcGain2", &fAdcGain2); AddParameterData("adcGapStart", &fAdcGapStart); AddParameterData("adcGap", &fAdcGap); AddParameterData("slewK", &fSlewK); AddParameterData("slewDt", &fSlewDt); AddParameterData("slewP", &fSlewP); BrParameterDbManager* parMan = BrParameterDbManager::Instance(); fParamsBb = (BrDetectorParamsBB*)parMan-> GetDetectorParameters("BrDetectorParamsBB", "BB"); } //_________________________________________________________________________ BrBbCalibration::~BrBbCalibration() { // Default destructor // } //_____________________________________________________________________________ Int_t BrBbCalibration::GetAccessMode(const Char_t* par) const { // get the accessmode of the parameter data TString s(par); Int_t mode = 0; if (s == "pedestal") mode = fPedestal.fAccessMode; if (s == "pedestalWidth") mode = fPedestalWidth.fAccessMode; if (s == "adcGain0") mode = fAdcGain0.fAccessMode; if (s == "adcGain1") mode = fAdcGain1.fAccessMode; if (s == "adcGain2") mode = fAdcGain2.fAccessMode; if (s == "adcGap") mode = fAdcGap.fAccessMode; if (s == "adcGapStart") mode = fAdcGapStart.fAccessMode; if (s == "tdcGain") mode = fTdcGain.fAccessMode; if (s == "deltaTdc") mode = fDeltaTdc.fAccessMode; if (s == "slewK") mode = fSlewK.fAccessMode; if (s == "slewDt") mode = fSlewDt.fAccessMode; if (s == "slewP") mode = fSlewP.fAccessMode; return mode; } //_____________________________________________________________________________ void BrBbCalibration::SetPedestal(Int_t tube, Float_t value) { CheckTube(tube); if (fTubeOutOfBound) return; if(fPedestal.fAccessMode){ Float_t* array = (Float_t*)fPedestal.fRevision->GetArray(); array[tube-1]= value; } } //_____________________________________________________________________________ void BrBbCalibration::SetPedestalWidth(Int_t tube, Float_t value) { CheckTube(tube); if (fTubeOutOfBound) return; if(fPedestalWidth.fAccessMode){ Float_t* array = (Float_t*)fPedestalWidth.fRevision->GetArray(); array[tube-1]= value; } } //_____________________________________________________________________________ void BrBbCalibration::SetAdcGain0(Int_t tube, Float_t value) { CheckTube(tube); if (fTubeOutOfBound) return; if(fAdcGain0.fAccessMode){ Float_t* array = (Float_t*)fAdcGain0.fRevision->GetArray(); array[tube-1]= value; } } //_____________________________________________________________________________ void BrBbCalibration::SetAdcGain1(Int_t tube, Float_t value) { CheckTube(tube); if (fTubeOutOfBound) return; if(fAdcGain1.fAccessMode){ Float_t* array = (Float_t*)fAdcGain1.fRevision->GetArray(); array[tube-1]= value; } } //_____________________________________________________________________________ void BrBbCalibration::SetAdcGain2(Int_t tube, Float_t value) { CheckTube(tube); if (fTubeOutOfBound) return; if(fAdcGain2.fAccessMode){ Float_t* array = (Float_t*)fAdcGain2.fRevision->GetArray(); array[tube-1]= value; } } //_____________________________________________________________________________ void BrBbCalibration::SetAdcGapStart(Int_t tube, Float_t value) { CheckTube(tube); if (fTubeOutOfBound) return; if(fAdcGapStart.fAccessMode){ Float_t* array = (Float_t*)fAdcGapStart.fRevision->GetArray(); array[tube-1]= value; } } //_____________________________________________________________________________ void BrBbCalibration::SetAdcGap(Int_t tube, Float_t value) { CheckTube(tube); if (fTubeOutOfBound) return; if(fAdcGap.fAccessMode){ Float_t* array = (Float_t*)fAdcGap.fRevision->GetArray(); array[tube-1]= value; } } //_____________________________________________________________________________ void BrBbCalibration::SetTdcGain(Int_t tube, Float_t value) { CheckTube(tube); if (fTubeOutOfBound) return; if(fTdcGain.fAccessMode){ Float_t* array = (Float_t*)fTdcGain.fRevision->GetArray(); array[tube-1]= value; } } //_____________________________________________________________________________ void BrBbCalibration::SetDeltaTdc(Int_t tube, Float_t value) { CheckTube(tube); if (fTubeOutOfBound) return; if(fDeltaTdc.fAccessMode){ Float_t* array = (Float_t*)fDeltaTdc.fRevision->GetArray(); array[tube-1]= value; } } //_____________________________________________________________________________ void BrBbCalibration::SetSlewK(Int_t tube, Float_t value) { CheckTube(tube); if (fTubeOutOfBound) return; if(fSlewK.fAccessMode){ Float_t* array = (Float_t*)fSlewK.fRevision->GetArray(); array[tube-1]= value; } } //_____________________________________________________________________________ void BrBbCalibration::SetSlewP(Int_t tube, Float_t value) { CheckTube(tube); if (fTubeOutOfBound) return; if(fSlewP.fAccessMode){ Float_t* array = (Float_t*)fSlewP.fRevision->GetArray(); array[tube-1]= value; } } //_____________________________________________________________________________ void BrBbCalibration::SetSlewDt(Int_t tube, Float_t value) { CheckTube(tube); if (fTubeOutOfBound) return; if(fSlewDt.fAccessMode){ Float_t* array = (Float_t*)fSlewDt.fRevision->GetArray(); array[tube-1]= value; } } //_____________________________________________________________________________ Float_t BrBbCalibration::GetPedestal(Int_t tube) const { CheckTube(tube); if (fTubeOutOfBound) return 0; if(fPedestal.fAccessMode ) return ((Float_t*) fPedestal.fRevision->GetArray())[tube-1] ; else return 0; } //_____________________________________________________________________________ Float_t BrBbCalibration::GetPedestalWidth(Int_t tube) const { CheckTube(tube); if (fTubeOutOfBound) return 0; if(fPedestalWidth.fAccessMode ) return ((Float_t*) fPedestalWidth.fRevision->GetArray())[tube-1] ; else return 0; } //_____________________________________________________________________________ Float_t BrBbCalibration::GetAdcGain0(Int_t tube) const { CheckTube(tube); if (fTubeOutOfBound) return 0; if(fAdcGain0.fAccessMode ) return ((Float_t*) fAdcGain0.fRevision->GetArray())[tube-1] ; else return 0; } //_____________________________________________________________________________ Float_t BrBbCalibration::GetAdcGain1(Int_t tube) const { CheckTube(tube); if (fTubeOutOfBound) return 0; if(fAdcGain1.fAccessMode ) return ((Float_t*) fAdcGain1.fRevision->GetArray())[tube-1] ; else return 0; } //_____________________________________________________________________________ Float_t BrBbCalibration::GetAdcGain2(Int_t tube) const { CheckTube(tube); if (fTubeOutOfBound) return 0; if(fAdcGain2.fAccessMode ) return ((Float_t*) fAdcGain2.fRevision->GetArray())[tube-1] ; else return 0; } //_____________________________________________________________________________ Float_t BrBbCalibration::GetAdcGapStart(Int_t tube) const { CheckTube(tube); if (fTubeOutOfBound) return 0; if(fAdcGapStart.fAccessMode ) return ((Float_t*) fAdcGapStart.fRevision->GetArray())[tube-1] ; else return 0; } //_____________________________________________________________________________ Float_t BrBbCalibration::GetAdcGap(Int_t tube) const { CheckTube(tube); if (fTubeOutOfBound) return 0; if(fAdcGap.fAccessMode ) return ((Float_t*) fAdcGap.fRevision->GetArray())[tube-1] ; else return 0; } //_____________________________________________________________________________ Float_t BrBbCalibration::GetTdcGain(Int_t tube) const { CheckTube(tube); if (fTubeOutOfBound) return 0; if(fTdcGain.fAccessMode ) return ((Float_t*) fTdcGain.fRevision->GetArray())[tube-1] ; else return 0; } //_____________________________________________________________________________ Float_t BrBbCalibration::GetDeltaTdc(Int_t tube) const { CheckTube(tube); if (fTubeOutOfBound) return 0; if(fDeltaTdc.fAccessMode ) return ((Float_t*) fDeltaTdc.fRevision->GetArray())[tube-1] ; else return 0; } //_____________________________________________________________________________ Float_t BrBbCalibration::GetSlewK(Int_t tube) const { CheckTube(tube); if (fTubeOutOfBound) return 0; if(fSlewK.fAccessMode ) return ((Float_t*) fSlewK.fRevision->GetArray())[tube-1] ; else return 0; } //_____________________________________________________________________________ Float_t BrBbCalibration::GetSlewP(Int_t tube) const { CheckTube(tube); if (fTubeOutOfBound) return 0; if(fSlewP.fAccessMode ) return ((Float_t*) fSlewP.fRevision->GetArray())[tube-1] ; else return 0; } //_____________________________________________________________________________ Float_t BrBbCalibration::GetSlewDt(Int_t tube) const { CheckTube(tube); if (fTubeOutOfBound) return 0; if(fSlewDt.fAccessMode ) return ((Float_t*) fSlewDt.fRevision->GetArray())[tube-1] ; else return 0; } //_____________________________________________________________________________ Bool_t BrBbCalibration::ValidCalibration(Int_t tube) { CheckTube(tube); if (fTubeOutOfBound) return kFALSE; if (GetPedestal(tube) == kCalException || GetPedestalWidth(tube) == kCalException || GetAdcGain0(tube) == kCalException || GetAdcGain1(tube) == kCalException || GetAdcGain2(tube) == kCalException || GetAdcGapStart(tube) == kCalException || GetAdcGap(tube) == kCalException || GetTdcGain(tube) == kCalException || GetDeltaTdc(tube) == kCalException || GetSlewK(tube) == kCalException || GetSlewP(tube) == kCalException || GetSlewDt(tube) == kCalException) return kFALSE; return kTRUE; } //_________________________________________________________________________ Bool_t BrBbCalibration::MissingRevision() { // check if a parameter is missing for a hit recontruction if (!RevisionExists("pedestal")) { cerr << " *** " << GetName() << " calibration: " << " pedestal revision missing ***" << endl; return kTRUE; } if (!RevisionExists("tdcGain")) { cerr << " *** " << GetName() << " calibration: " << " tdcGain revision missing ***" << endl; return kTRUE; } if (!RevisionExists("deltaTdc")) { cerr << " *** " << GetName() << " calibration: " << " deltaTdc revision missing ***" << endl; return kTRUE; } if (!RevisionExists("adcGain0")) { cerr << " *** " << GetName() << " calibration: " << " adcGain0 revision missing ***" << endl; return kTRUE; } if (!RevisionExists("adcGapStart")) { cerr << " *** " << GetName() << " calibration: " << " adcGapStart revision missing ***" << endl; return kTRUE; } if (!RevisionExists("adcGap")) { cerr << " *** " << GetName() << " calibration: " << " adcGap revision missing ***" << endl; return kTRUE; } if (!RevisionExists("slewK")) { cerr << " *** " << GetName() << " calibration: " << " slewK revision missing ***" << endl; return kTRUE; } if (!RevisionExists("slewDt")) { cerr << " *** " << GetName() << " calibration: " << " slewDt revision missing ***" << endl; return kTRUE; } if (!RevisionExists("slewP")) { cerr << " *** " << GetName() << " calibration: " << " slewP revision missing ***" << endl; return kTRUE; } return kFALSE; } //_____________________________________________________________________________ void BrBbCalibration::CheckTube(Int_t tube) const { fTubeOutOfBound = kFALSE; Int_t noTubes = fParamsBb->GetNoLeftTubes(); if (strcmp(GetName(), "BBR") == 0) noTubes = fParamsBb->GetNoRightTubes(); if (tube < 1 || tube > noTubes) { cerr << GetName() << " tube number " << tube << " is out of bound" << endl; fTubeOutOfBound = kTRUE; } } //____________________________________________________________________ // // $Log: BrBbCalibration.cxx,v $ // Revision 1.7 2001/11/05 06:48:20 ouerdane // uncommented the check of the delta tdc calibration // // Revision 1.6 2001/10/15 00:36:02 ouerdane // Added method GetAccessMode(const Char_t* parName) // // Revision 1.5 2001/10/08 10:26:45 cholm // Changed detector calibration data classes to derive from BrCalibration, // rather than BrParameterElement, since that has been replaced. Impact // on various modules, and so on. Some user code may need to be changed to. // // Revision 1.4 2001/09/23 01:37:04 videbaek // Add a second parameter as per DO code // // Revision 1.3 2001/07/31 09:10:09 ouerdane // made getters const, member fTubeOutOfBound mutable and non persistent // class version number is now 2 // // Revision 1.2 2001/07/27 11:28:03 ouerdane // added method Bool_t MissingRevision() to check if a parameter is missing for reconstruction // // Revision 1.1 2001/07/23 11:42:13 ouerdane // Added calibration data class for Beam-Beam counter calibration // BrBbCalibration // // has the following parameters // pedestal // pedestalWidth // adcGain0 // adcGain1 // adcGain2 // adcGapStart // adcGap // tdcGain // deltaTdc // slewK // slewDt // |
||||||
This page automatically generated by script docBrat by Christian Holm |
Copyright ; 2002 BRAHMS Collaboration
<brahmlib@rcf.rhic.bnl.gov>
|