1 / 12

DAQ software progress and plans

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

Télécharger la présentation

DAQ software progress and plans

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Outline • Summary of DAQ tests • News on software • plans

  3. 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

  4. DAQ 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 • together with 7 (8 in august) Hcal banks

  5. DAQ 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 | L0ID -----------------+------------------------ ODIN | 0 ODIN | 1 hcTell06 | 0 hcTell03 | 0 hcTell05 | 0 hcTell02 | 0 hcTell01 | 0 ODIN | 2 hcTell06 | 1 hcTell05 | 1 hcTell05 | 1 hcTell01 | 1 hcTell02 | 1

  6. 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

  7. 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.

  8. News on software • 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 EcalCalib.ReferenceTimeSlot = « T0 »; // default « T0 » EcalCalib.AdditionalTimeSlots= {Prev2,Prev1,Next1,Next2}; EcalCalib.SignalPrev1.Histo = true; EcalCalib.SumSignalNext2.Histo = true; EcalCalib.PedestalNext1.Histo = true;

  9. News on software • 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: CellID::Index [area|col|row] as string Histo type (Signal, Pedestal, Prev1Signal, Ratio …) min max #bins EcalCalib.Signal.Ranges = { «Default» : { -256 , 3840, 4096 }, « 4224 » : { 200, 300 , 101 }, « 4225 » : { 300, 400 , 101 }, … }; • 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 !

  10. News on software • 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. 1D spectra and 2D distributions over Calo of the multiplicity and the energy of CaloDigits, CaloClusters CaloHypos. Cluster-track matching monitoring CaloDigitMonitor.Members += { "CaloDigitMonitor/EcalDigitMonitor", "CaloDigitMonitor/HcalDigitMonitor", "CaloDigitMonitor/PrsDigitMonitor", "CaloDigitMonitor/SpdDigitMonitor", "SpdMonitor"}; CaloClusterMonitor.Members += { "CaloClusterMonitor/EcalClusterMonitor", "CaloClusterMonitor/SplitClusterMonitor"}; CaloHypoMonitor.Members += { "CaloHypoMonitor/ElectronMonitor" ,"CaloHypoMonitor/PhotonMonitor" ,"CaloHypoMonitor/MergedPi0Monitor " }; CaloPIDsMonitor.Members += { "CaloClusterMatchMonitor/PhotonMatchMonitor", "CaloHypoMatchMonitor/ElectronMatchMonitor", "CaloHypoMatchMonitor/BremMatchMonitor"};

  11. 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 input • data 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

  12. Summary 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 ?

More Related