Table of Contents

How to run tests with Pixel Online Software

How to start POS

cd ~/ph1_TriDAS/
source setenv.sh
cd pixel/PixelRun
killall xdaq.exe
./run_UZHLabTest.sh ../XDAQConfiguration/XDAQ_ConfigurationUZHLabTest_TTC.xml
http://cmspixel.physik.uzh.ch:1953/urn:xdaq-application:lid=51/Default
cd ~/ph1_TriDAS/pixel/config/calib/3
cp calib_simple.dat calib.dat
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
cd ~/ph1_TriDAS/pixel/
make Set=pixel

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