====== 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]]