User Tools

Site Tools


phase1:phase1:pos

Differences

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

Link to this comparison view

Next revision
Previous revision
phase1:phase1:pos [2016/08/26 12:04] – created ngadiubaphase1:phase1:pos [2016/09/14 11:25] (current) ngadiuba
Line 1: Line 1:
-fwajkl+====== How to run tests with Pixel Online Software ====== 
 + 
 +===== How to start POS ===== 
 + 
 +  * if you run from remote follow first [[phase1:phase1:remoteconnection|these instructions]] 
 +  * start xdaq applications: 
 + 
 +  cd ~/ph1_TriDAS/ 
 +  source setenv.sh 
 +  cd pixel/PixelRun 
 +  killall xdaq.exe 
 +  ./run_UZHLabTest.sh ../XDAQConfiguration/XDAQ_ConfigurationUZHLabTest_TTC.xml 
 + 
 +  * open the browser and go to the PixelSupervisor web interface (if you run from remote you'll have to launch firefox remotely), the click on "Initialize" 
 + 
 +  http://cmspixel.physik.uzh.ch:1953/urn:xdaq-application:lid=51/Default 
 + 
 +  * set a configuration for a quick check that modules, FED and POHs are working: 
 + 
 +  cd ~/ph1_TriDAS/pixel/config/calib/
 +  cp calib_simple.dat calib.dat 
 + 
 +  * run a TBMDelay calibration clicking on the corresponding button in the PixelSupervisor menu, then click on "Configure". Once it's configured click on "Start"
 + 
 +  * if everything worked you will see an output similar to this: 
 + 
 +  Contents of FIFO 1 for channel 32 (status = 11) 
 +   
 +  Decoded channel: 32 
 +  Found TBM header: 1 
 +  Found TBM trailer: 1 
 +  Event number: 10 
 +  ROCs enabled: 0 
 +  TBM trailer errors: 0 
 +  Found ROCs without hits: 4 
 +     - ROC #1 - last dac : 8 
 +     - ROC #2 - last dac : 8 
 +     - ROC #3 - last dac : 8 
 +     - ROC #4 - last dac : 8 
 +  Found ROCs with hits: 4 
 +  Total number of hits found: 4 
 +     - Channel #32 ROC #1 dcol 5 pxl 140 col 10 row 10 pulse height 252 
 +     - Channel #32 ROC #2 dcol 5 pxl 140 col 10 row 10 pulse height 207 
 +     - 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 
 + 
 +  * 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" 
 +   
 +  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 ; 
 + 
 +4) add 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.1472205885.txt.gz · Last modified: 2016/08/26 12:04 by ngadiuba