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
Last revisionBoth sides next revision
phase1:phase1:pos [2016/08/26 12:17] ngadiubaphase1:phase1:pos [2016/09/14 11:24] ngadiuba
Line 1: Line 1:
-  * If you run remotely follow first [[phase1:phase1:remoteconnection|these instructions]]+====== 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/3
 +  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 fitted receiver to use for testing calibrations can be found in [[https://elog.physik.uzh.ch:8080/Pixel/168|this elog entry]]
phase1/phase1/pos.txt · Last modified: 2016/09/14 11:25 by ngadiuba