120 likes | 271 Views
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
E N D
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 • 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
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
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
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
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.
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;
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 !
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"};
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
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 ?