1 / 13

Status report on MUON & PHOS calibration

This report provides updates on the status of MUON and PHOS calibration. It includes progress on CDB storage classes, preview of calibration code, access to external databases, and ongoing work on CPV calibration and EMC bad/dead channel maps.

elizabethw
Télécharger la présentation

Status report on MUON & PHOS calibration

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Status report on MUON & PHOS calibration Alberto Colla Weekly Offline meeting Cern, January 12, 2006 • Outline: • Status of MUON calibration • Status of PHOS calibration • Progress on CDB storage classes

  2. Status report: MUON • Mail exchange with Laurent Aphecetche • work ongoing on the calibration classes, commit expected by end of January (after the end of the Muon Software Working Week) • Preview of the calibration code

  3. Status report: MUON • AliMUONCalibrationData is the calibration class class AliMUONCalibrationData : public TObject{public:   AliMUONCalibrationData(Int_t runNumber=0);   virtual ~AliMUONCalibrationData();   Int_t Pedestal(Int_t detElemId, Int_t manuId, Int_t manuChannel) const; ... // more calibration types as needed, e.g. Gainsprivate:AliMUONV3DStore* fPedestals;   ClassDef(AliMUONCalibrationData,1) // Storage for all MUON calib data.}; • created once (given the run number) and used by all the code that requires calibration data (calibratiors, decalibrators) • AliMUONV3DStore is a “generic multi-dimensional container” (?)

  4. Status report: MUON • Current implementation is directly using the CDB classes: AliMUONCalibrationData::AliMUONCalibrationData(Int_t runNumber)   : TObject(), fPedestals(0x0){     AliDebug(1,Form("ctor with runnumber=%p",runNumber));AliCDBManager* man = AliCDBManager::Instance();     if (!man->IsDefaultStorageSet())     { AliFatal("No default CDB storage set !"); } AliCDBStorage* storage = man->GetDefaultStorage(); AliCDBEntry* entry = storage->Get("MUON/Calib/Pedestals",runNumber);     if (!entry)     { AliFatal("Could not get entry for MUON/Calib/Pedestals"); } fPedestals = dynamic_cast<AliMUONV3DStore*> (entry->GetObject());     if (!fPedestals)     { AliFatal("Pedestals not of the expected type"); }}

  5. Status report: MUON • Access to external databases • Requirements are not clear yet • “Basically we'll need the pedestals and some information related to the gains (at least the parameters from the factory, and possibly the time evolution using charge injection).” • Waiting for being addressed to the relevant mailing list …

  6. Status report: PHOS • Mail exchange with Boris Polichtchouk • No big news since december • calibration container class and decalibration – reconstruction of EMC data implementation is in cvs since months • Work ongoing on CPV calibration, should be ready before next Offline Week • Same for EMC bad/dead channel maps • CDB access classes used w/o problems • Calibration-related classes currently used: • AliPHOSCalibData (container class for EMC calibration coeffs) • AliPHOSGetter (contains pointer to AliPHOSCalibData) • AliPHOSDigitizer (access calibration coeffs for decalibration) • AliPHOSClusterizerv1 (access calibration coeffs for clusterization)

  7. Status report: PHOS • AliPHOSCalibData protected: Float_t fADCchannelEmc [5][56][64];// conversion from ADC counts to GeV Float_t fADCpedestalEmc [5][56][64];// ADC pedestals • Dimension of arrays fADCchannelEmc and fADCpedestalEmc correspond to the number of crystals in PHOS (nEmc=17920) • AliPHOSCalibData contains methods to set and to get the calibration parameters by the relative channel number (module, column, row) • Another data member is foreseen, connected to the ALTRO format (?) • Will be probably renamed to AliPHOSEmcCalibData when separate class AliPHOSCpvCalibData is provided

  8. Status report: PHOS • AliPHOSGetter • Singleton • Has data member AliPHOSCalibData* fCalibData and setter/getter: AliPHOSCalibData* AliPHOSGetter::CalibData() { // getter for calibration data container if( !(AliCDBManager::Instance()->IsDefaultStorageSet()) ) { fCalibData=0x0; Warning("CalibData","Calibration DB is not initiated!"); return fCalibData; } return fCalibData; }

  9. Status report: PHOS • Decalibration procedure in AliPHOSDigitizer::DigitizeEnergy(): Int_t AliPHOSDigitizer::DigitizeEnergy(Float_t energy, Int_t absId) { // Returns digitized value of the energy in a cell absId AliPHOSGetter* gime = AliPHOSGetter::Instance(); … Determine rel.position (module, column, raw) of the cell absId Int_t chanel ; if(absId <= fEmcCrystals){ //digitize as EMC //reading calib data for cell absId. If no calibration DB found, accept default values. if( gime->CalibData() ) { fADCpedestalEmc = gime->CalibData()->GetADCpedestalEmc(module,column,raw); fADCchanelEmc = gime->CalibData()->GetADCchannelEmc(module,column,raw); } chanel = (Int_t) TMath::Ceil((energy - fADCpedestalEmc)/fADCchanelEmc) ; if(chanel > fNADCemc ) chanel = fNADCemc ; } else{ //Digitize as CPV … } return chanel ; }

  10. Status report: PHOS • AliPHOSClusterizerv1 • Contains AliPHOSCalibData* fCalibData (AliPHOSGetter not used in this case) • Calibration object is retrieved directly from CDB storage. Default coefficients are used If no storage is instantiated or it does not contain PHOS calibration ( AliPHOSClusterizerv1::GetCalibrationParameters()) • Calibration algorithm: Float_t AliPHOSClusterizerv1::Calibrate(Int_t amp, Int_t absId){ // Convert digitized amplitude into energy. Calibration parameters are taken from // calibration data base for raw data, or from digitizer parameters for simulated data.... if(fCalibData){ if(absId <= fEmcCrystals) { //calibrate as EMC fADCchanelEmc = fCalibData->GetADCchannelEmc (module,column,row); fADCpedestalEmc = fCalibData->GetADCpedestalEmc(module,column,row); return fADCpedestalEmc + amp*fADCchanelEmc ; } else {return 0;} //calibrate as CPV, not implemented yet } else { //simulation if(absId <= fEmcCrystals) //calibrate as EMC return fADCpedestalEmc + amp*fADCchanelEmc ; else //calibrate as CPV return fADCpedestalCpv+ amp*fADCchanelCpv ; }}

  11. HV status and V values (from DCS): OK • Temperatures in controlled zones (from DCS): OK • Status of low voltage and gas mixture for CPV (from DCS): OK but why needed? • If low voltage status is “off”: no data available • If gas mixture status not ok: run not started • Note: CPV pedestals available in DCS Status report: PHOS • DCS access • No news since last report by Magali (December 14th): Answer by Boris: “PHOS and CPV modules are fed by several power suppliers. If one of the suppliers is out of order, the data can be still valid because other channels are working. When reading such data, we should know which channels provide reliable amplitudes, and which are not working. As to the gas mixture in the CPV detector, the data from EMC are also valid, but the ability to identify charged particles will be reduced. Therefore, we assume, that data can be taken even if part of low-voltage power supply are off, and if the gas mixture is not OK.”

  12. Update of the CDB classes • An update of the CDB classes has been committed on Tuesday • Small modifications/add-ons which did not affect client code: • Optimization of diagnostic messages (info, warning, debug …) • Addition of virtual method Bool_t AliCDBStorage::Contains(const char* path) used to check if a storage contains a certain path/detector, e.g.: if( fStorage->Contains(“ITS”) ) {…} • Addition of AliCDBStorage method void ReadSelectionFromFile(const char* fileName) as proposed method to retrieve list of selection criteria (to be discussed): the file should be filled with an array of AliCDBId objects which contain the version to be used and should be put in the base folder of the CDB storage

  13. Update of the CDB classes • Another proposal for the version selection issue (by Laurent): • “Use TEnv capability (possibly reading not from .rootrc but from an Alice specific file like alirootrc or something alike) The advantage is that the parsing you get for free with TEnv. Syntax used could be such as : AliRoot.CDB.MUON.Calib.Pedestals: 2 AliRoot.CDB.PHOS.Calib.Gains_and_Pedestals: 12” • Note: Laurent also proposed some tool to set AliRoot version (like what is already existing in ROOT)!

More Related