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:17] ngadiubaphase1:phase1:pos [2016/09/14 11:25] (current) 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 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.1472206642.txt.gz · Last modified: 2016/08/26 12:17 by ngadiuba