Upload
anastasia-howe
View
40
Download
0
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
DAQ software progress and plans
Calo commissioning meeting - 04/09/2007
Olivier Deschamps
Université Blaise Pascal/IN2P3/CNRS
Clermont-Ferrand
0
•Summary of DAQ testsSummary of DAQ tests
• News on softwareNews on software
• plansplans
Outline Outline
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
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
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
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
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.
• 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;
• 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 !
• 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
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
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 ?