User Tools

Site Tools


phase1:phase1:pos

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
phase1:phase1:pos [2016/08/26 12:34] ngadiubaphase1:phase1:pos [2016/09/14 11:25] (current) ngadiuba
Line 44: Line 44:
      - Channel #32 ROC #3 dcol 5 pxl 140 col 10 row 10 pulse height 255      - Channel #32 ROC #3 dcol 5 pxl 140 col 10 row 10 pulse height 255
      - Channel #32 ROC #4 dcol 5 pxl 140 col 10 row 10 pulse height 243      - Channel #32 ROC #4 dcol 5 pxl 140 col 10 row 10 pulse height 243
 +
 +  * if you don't get a meaningfull output try first to click on "Halt" and rerun the calibration
 +  * every time you want to restart from scratch (for instance after compiling) remember first to kill all xdaq applications (killall xdaq.exe)
 +  * to compile just type
 +
 +  cd ~/ph1_TriDAS/pixel/
 +  make Set=pixel
 +
 +  * **remember to power off once you are done!**
 +
 +===== How to develop calibration code =====
 +
 +1) add the new calibration to the file **PixelCalibrations/src/common/PixelCalibrationFactory.cc** : this will create a new button in the calibration menu'. For instance:
 +
 +  #include "PixelCalibrations/include/PixelMyCalibration.h"
 +  #include "PixelCalibrations/include/PixelFEDMyCalibration.h"
      
-===== Run full calibration chain (to be finished) =====+  PixelCalibrationBase* PixelCalibrationFactory::getCalibration(const std::string& calibName, const PixelSupervisorConfiguration* pixSupConfPtr, SOAPCommander* soapCmdrPtr,PixelD CSSOAPCommander* dcsSoapCommanderPtr, PixelDCSPVSSCommander* pvssCommanderPtr) const{ 
 +   
 +    ...... 
 +   
 +    if (calibName=="MyCalib") { 
 +      return new PixelMyCalibration(*pixSupConfPtr, soapCmdrPtr); 
 +    } 
 +   
 +    ...... 
 +       
 +  } 
 +   
 +   
 +  PixelFEDCalibrationBase* PixelCalibrationFactory::getFEDCalibration(const std::string& calibName, const PixelFEDSupervisorConfiguration* pixFEDSupConfPtr, SOAPCommander* soapCmdrPtr) const{ 
 +   
 +    ...... 
 +   
 +    if (calibName=="MyCalib") { 
 +      return new PixelFEDMyCalibration(*pixFEDSupConfPtr, soapCmdrPtr); 
 +    } 
 +   
 +    ...... 
 +     
 +  } 
 + 
 +2) create your calibration classes: PixelMyCalibration and PixelFEDMyCalibration (follow for instance PixelTBMDelayCalibration and PixelFEDTBMDelayCalibration classes) 
 + 
 +3) add the new calibration to the file **config/aliases.txt** 
 + 
 +  ... 
 +  Gain99By3        19 ; 
 +  GainBy3          20 ; 
 +  Iana             21 ; 
 +  ROCDelay         22 ; 
 +  ReadbackCalibration 23 ;  
 +  Vdig 24 ; 
 +  MyCalibration 25 ; 
 + 
 +4add the calibration key to the file **config/configurations.txt** 
 + 
 +  ... 
 +  key 25 
 +  detconfig   0 
 +  nametranslation   0 
 +  fedconfig   0 
 +  fecconfig   0 
 +  fedcard   0 
 +  dac   0 
 +  maxvsf   0 
 +  mask   0 
 +  trim   0 
 +  calib   25 
 +  tbm   0 
 +  portcard   0 
 +  portcardmap   0 
 +  ttcciconfig   0 
 +  ltcconfig   0 
 +  tkfecconfig   0 
 +  lowvoltagemap   0 
 + 
 +5) edit the calib.dat file with the input parameters of the new calibration (ex: what to scan, scan range, etc..). For the example above the file should stay under **config/calib/25/calib.dat**     
 + 
 + 
 +   
 +===== Calibration sequence ===== 
 + 
 +  * The calibration sequence is described in [[https://indico.cern.ch/event/560056/contributions/2292179/attachments/1330727/1999885/phase1-calibrations.pdf|this]] presentation. 
 + 
 +  * The calibrations parameters can be found in the corresponding calib.dat file in the config/calib directory (check the config/aliases.txt file to know which subfolder you should look at)
  
 +  * A detector configuration for switch 0 and switch 1 of the fitel receiver to use for testing calibrations can be found in [[https://elog.physik.uzh.ch:8080/Pixel/168|this elog entry]]
phase1/phase1/pos.1472207699.txt.gz · Last modified: 2016/08/26 12:34 by ngadiuba