12
DAQ software progress and plans Calo commissioning meeting - 04/09/2007 Olivier Deschamps Université Blaise Pascal/IN2P3/CNRS Clermont-Ferrand 0

DAQ software progress and plans

Embed Size (px)

DESCRIPTION

Calo commissioning meeting - 04/09/2007. DAQ software progress and plans. Olivier Deschamps Université Blaise Pascal/IN2P3/CNRS Clermont-Ferrand. 0. Outline. Summary of DAQ tests News on software plans. DAQ summer tests. Tests done on 23 July and 31 August - PowerPoint PPT Presentation

Citation preview

Page 1: DAQ software                 progress and plans

DAQ software progress and plans

Calo commissioning meeting - 04/09/2007

Olivier Deschamps

Université Blaise Pascal/IN2P3/CNRS

Clermont-Ferrand

0

Page 2: DAQ software                 progress and plans

•Summary of DAQ testsSummary of DAQ tests

• News on softwareNews on software

• plansplans

Outline Outline

Page 3: DAQ software                 progress and plans

DAQ summer tests DAQ summer tests

• Tests done on 23 July and 31 August • http://lblogbook.cern.ch/CALO/38

• Purpose • perform the acquisition Calo Tell1 & ODIN banks simultaneously• Experience the DAQ of ‘Time alignment event’ (consecutive BX)

• Setting : • Use TTC triggered Hcal Tell1’s in data generator mode + ODIN07 • DAQ on hlte0602 • Tell1 crate D3B01L powered on with PVSS: OK

Page 4: DAQ software                 progress and plans

DAQ summer testsDAQ summer tests

• ODIN banks DAQ• Provides Event/Run/BunchId/Orbit/TimeTriggerType/BCType/…• useful information for debuggin the DAQ that was missing in May global tests• Following Richard instruction : no problem to setup ODIN -FE via PVSS to produce its own rawBank

• Adding Calo banks • Hcal Tell1 activated one by one from hcTELL01 to hcTELL08• Problems when activating hcTELL04 and hcTELL05• Both was due to a bad synchronisation of L0EvID :

• hcTell05 : L0EvId correctly incremented but did not start from 0• Correct re-synchronisation after rebooting hcTell05 ccpc (?)

• hcTell04 : L0EvId stuck to 0 • unable to solve the problem Tell04 was desactivated during July tests• but was perfectly fine in August !• Maybe due to the bad TTC fibre connection (who solved this ??)

• Eventually, we manage to run the DAQ of ODIN bank Eventually, we manage to run the DAQ of ODIN bank together with 7 (8 in august) Hcal banks together with 7 (8 in august) Hcal banks

Page 5: DAQ software                 progress and plans

DAQ summer testsDAQ summer tests

• Increasing the trigger rate • from 100 Hz to 4 kHz• the Event Builder complains when the rate reaches 1 kHz

• error message « Incomplete event from …»• ~ 5 error for 100k MEPs• problem already encountered during previous tests : was due to MEP fragment(s) from a given Tell1 that was late wrt to other fragments from the same event• was solved by increasing the number of MEP receiver buffers (max = 3)

• Reappeared when adding ODIN DAQ• even when #buffers = 3• Checked that DAQ of Hcal Tell1’s only is OK• Data analysis with ethereal shown that ODIN produces banks faster than TELL1’s (as expected), eg :• Such a sequence should be OK with #buffers = 3• Unable to find the failing sequences • Online people are investigating this

packet from |packet from | L0ID L0ID

-----------------+-----------------------------------------+------------------------

ODINODIN | | 0 0

ODINODIN | | 1 1

hcTell06hcTell06 | | 0 0

hcTell03hcTell03 | | 0 0

hcTell05hcTell05 | | 0 0

hcTell02hcTell02 | | 0 0

hcTell01hcTell01 | | 0 0

ODINODIN | | 2 2

hcTell06hcTell06 | | 1 1

hcTell05 |hcTell05 | 1 1

hcTell05hcTell05 | | 1 1

hcTell01hcTell01 | | 1 1

hcTell02hcTell02 | | 1 1

Page 6: DAQ software                 progress and plans

DAQ summer tests (con’t)DAQ summer tests (con’t)

• Decoding the rawEvent with Orwell software• data stored as mdf file then analysed offline• No problem to decode ODIN rawBank data• Also OK for most of Tell1’s data (6/8)

• some errors appeared due to wrong data format • Received data does not match the generated pattern• Cannot be reproduced with Annecy setup• See Stephane’s talk

• Experiencing the DAQ of ‘Time Alignment Events’ (TAE)• consecutive BX analysed as a single Gaudi event• Setup :

• ODIN requested to sent 5 consecutive BX (+-2)• TELL1 MEP factor = 5• MEPAnalyser provided by the Online Group (Markus)• Event Builder filled 5 rawEvents in different TES location • /Prev2/DAQ/RawEvent/ … /DAQ/RawEvent/ … /Next2/DAQ/RawEvent/

• Test OK

Page 7: DAQ software                 progress and plans

DAQ : other news DAQ : other news

• Writing file localy

• online group recently provided a storage area mounted on each farm node• content is automatically transfered on CASTOR every hours• see : https://twiki.cern.ch/twiki/bin/view/LHCb/LocalData• For Calo : DAQ data to be copied on :/data/calo/

then available on CASTOR at : /castor/cern.ch/lhcb/online/point8/calo/ • tested during summer test

• Using ethereal/Wireshark at pit

• allow to capture ethernet data : useful tool to dump the incoming banks• required root priviledges recently provided by Online group (sudo)• but problem encountered with sudo command with X11 to export GUI• solution : use ‘gksudo’ instead of sudo • still problem when saving ethereal output : user is not the owner of the file !• Suman working on that.

Page 8: DAQ software                 progress and plans

• Calibration farm : ORWELL• New version of Orwell/CaloCalib (v1r2) available on CVS • New feature : handle TAE events

• Produce histogram for adjacent time slots on-Demand • Syntax

• Adjacent time slot histogramming : • when ‘T0’ is LED-fired /EcalCalib/Prev1Signal/[cellID]• when ‘T0’ is not fired (pedestal) /EcalCalib/Prev1Pedestal/[cellID]• summary histograms (e.g. mean signal vs cellID) EcalCalib/Summary/Prev1Signal/1

• Easy to get <ADC(t-1)>/<ADC(t0)> per channel, dividing Prev1 and T0 summary histos• Full detailed histo also available, i.e. distribution of ADC(t-1) per cell

this increases the already huge number of histos

News on software News on software

EcalCalib.ReferenceTimeSlot = « T0 »; // default « T0 »EcalCalib.AdditionalTimeSlots= {Prev2,Prev1,Next1,Next2};EcalCalib.SignalPrev1.Histo = true;EcalCalib.SumSignalNext2.Histo = true;EcalCalib.PedestalNext1.Histo = true;

Page 9: DAQ software                 progress and plans

• New feature (con’t): • a different histo ranges and binning can be defined for each cell• was requested by Yuri to handle non uniform LED signals• example of options syntax:

News on software News on software

EcalCalib.Signal.Ranges = { «Default» : { -256 , 3840, 4096 }, « 4224 » : { 200, 300 , 101 }, « 4225 » : { 300, 400 , 101 },

…};

Histo typeHisto type(Signal, Pedestal, (Signal, Pedestal,

Prev1Signal, Ratio …)Prev1Signal, Ratio …)

CellID::IndexCellID::Index[area|col|row][area|col|row] as stringas string

min max #bins

• if a cellID parameters are not in the list, « Default » values are used• Could envisage to setup the histo parameters via condDB

• NB : I am not volunteer to fill the 2x6000+1500 ranges !

Page 10: DAQ software                 progress and plans

• Monitoring farm : Rec/Brunel• monitoring of CaloReco and CaloPID objects resurected in Brunel • thanks to Konstantin (+ Albert for new SPD specific monitoring)• Brunel sequence :

• More details in a next Calo Software meeting.

News on software News on software

CaloDigitMonitorCaloDigitMonitor.Members += { .Members += {

"CaloDigitMonitor/EcalDigitMonitor", "CaloDigitMonitor/EcalDigitMonitor", "CaloDigitMonitor/HcalDigitMonitor", "CaloDigitMonitor/HcalDigitMonitor", "CaloDigitMonitor/PrsDigitMonitor", "CaloDigitMonitor/PrsDigitMonitor", "CaloDigitMonitor/SpdDigitMonitor", "CaloDigitMonitor/SpdDigitMonitor", "SpdMonitor"}; "SpdMonitor"}; CaloClusterMonitorCaloClusterMonitor.Members += { .Members += { "CaloClusterMonitor/EcalClusterMonitor", "CaloClusterMonitor/EcalClusterMonitor", "CaloClusterMonitor/SplitClusterMonitor"}; "CaloClusterMonitor/SplitClusterMonitor"}; CaloHypoMonitorCaloHypoMonitor.Members += { .Members += {

"CaloHypoMonitor/ElectronMonitor" "CaloHypoMonitor/ElectronMonitor" ,"CaloHypoMonitor/PhotonMonitor" ,"CaloHypoMonitor/PhotonMonitor" ,"CaloHypoMonitor/MergedPi0Monitor " }; ,"CaloHypoMonitor/MergedPi0Monitor " }; CaloPIDsMonitorCaloPIDsMonitor.Members += { .Members += { "CaloClusterMatchMonitor/PhotonMatchMonitor", "CaloClusterMatchMonitor/PhotonMatchMonitor", "CaloHypoMatchMonitor/ElectronMatchMonitor", "CaloHypoMatchMonitor/ElectronMatchMonitor", "CaloHypoMatchMonitor/BremMatchMonitor"}; "CaloHypoMatchMonitor/BremMatchMonitor"};

1D spectra and 2D distributions over Calo of the multiplicity and the energy of CaloDigits,

CaloClusters

CaloHypos.

Cluster-track matching monitoring

Page 11: DAQ software                 progress and plans

DAQ software DAQ software

• Making the rawBank decoding robust

As during commissioning and early data-taking, we will be reading out an incomplete Detector Marco C. proposed to review the decoding software to ensure it follows some robustness guidelines in order the event processing does not stop when a missing bank is found :

• The algorithm/tool should always produce the expected output container. If the input bank(s) is(are) missing, this should be treated as if the bank(s) existed but was(were) empty - i.e. output container is still created but is empty.

• Similarly if some data is detected as being corrupted it should simply be skipped as if it was not there

• The algorithm/tool should always return StatusCode::SUCCESS, even if expected inputdata is missing or corrupted

• If the algorithm/tool detects an error (missing or corrupt input data) it should always report it, using the Error() method of the GaudiAlgorithm/GaudiTool base class, but then behave as if the missing/corrupt bank was an empty bank

• In place for CaloDAQ

Page 12: DAQ software                 progress and plans

Summary and future plansSummary and future plans

• summer DAQ summary : • managed the DAQ of all Hcal Tell1s + ODIN• managed to setup the system for consecutive triggers DAQ

• lot of progress toward a stable system but still pending problems :• EventBuilder failed time-to-time to complete the event on a single node • Problem with incorrect data format to be understood

• commissionning the Calo DAQ : ToDo list

• Check dynamic IP destination assignment (require several nodes)• Experience running ORWELL in fully online mode• Publishing/analysing/presenting histos• Setup a full scale calibration farm (how many CPU, running sequence, rate, …)

• Global Calo commissionning • DAQ + software essentially in place • Monitoring tools available

• Sharing expertise :• Would be useful to organize a tutorial (+ documentation) on how to setup/use every step of the Calo readout chain : CROC/TELL1/ECS/Farm/LEDs When ?