diff --git a/LArCalorimeter/LArTest/LArEventTest/CMakeLists.txt b/LArCalorimeter/LArTest/LArEventTest/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..48e9bb505957d5fed8b6f7eb82f10aa70bfd0612 --- /dev/null +++ b/LArCalorimeter/LArTest/LArEventTest/CMakeLists.txt @@ -0,0 +1,38 @@ +################################################################################ +# Package: LArEventTest +################################################################################ + +# Declare the package name: +atlas_subdir( LArEventTest ) + +# Declare the package's dependencies: +atlas_depends_on_subdirs( PUBLIC + Calorimeter/CaloIdentifier + Control/AthenaBaseComps + Control/StoreGate + GaudiKernel + LArCalorimeter/LArIdentifier + LArCalorimeter/LArRawConditions + LArCalorimeter/LArRawEvent + LArCalorimeter/LArTools + TestBeam/TBEvent + PRIVATE + Calorimeter/CaloEvent + Control/CxxUtils + Event/xAOD/xAODEventInfo + LArCalorimeter/LArElecCalib ) + +# External dependencies: +find_package( CLHEP ) + +# Component(s) in the package: +atlas_add_component( LArEventTest + src/*.cxx + src/components/*.cxx + INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} + LINK_LIBRARIES ${CLHEP_LIBRARIES} CaloIdentifier AthenaBaseComps StoreGateLib SGtests GaudiKernel LArIdentifier LArRawConditions LArRawEvent LArToolsLib TBEvent CaloEvent CxxUtils xAODEventInfo ) + +# Install files from the package: +atlas_install_headers( LArEventTest ) +atlas_install_joboptions( share/*.py ) + diff --git a/LArCalorimeter/LArTest/LArEventTest/LArEventTest/LArDigitsToNtuple.h b/LArCalorimeter/LArTest/LArEventTest/LArEventTest/LArDigitsToNtuple.h index e492812895a7f61a79f551a4d4d22630a9cec7ff..7a41d31bc3259e1d39c2f13897a885fb67f34091 100755 --- a/LArCalorimeter/LArTest/LArEventTest/LArEventTest/LArDigitsToNtuple.h +++ b/LArCalorimeter/LArTest/LArEventTest/LArEventTest/LArDigitsToNtuple.h @@ -55,16 +55,16 @@ class LArDigitsToNtuple : public AthAlgorithm const LArHEC_ID *m_hecId; const LArFCAL_ID *m_fcalId; - NTuple::Item<long> event; - NTuple::Item<long> layer, eta, phi, gain; - NTuple::Item<long> region,barrel_ec, pos_neg, FT, slot, channel; - NTuple::Item<long> detector; - NTuple::Array<long> samples; - NTuple::Array<long> sca; - NTuple::Item<double> tdc; - NTuple::Item<double> ped; - NTuple::Item<long> trigger; - NTuple::Item<double> S1; + NTuple::Item<long> m_nt_event; + NTuple::Item<long> m_nt_layer, m_nt_eta, m_nt_phi, m_nt_gain; + NTuple::Item<long> m_nt_region,m_nt_barrel_ec, m_nt_pos_neg, m_nt_FT, m_nt_slot, m_nt_channel; + NTuple::Item<long> m_nt_detector; + NTuple::Array<long> m_nt_samples; + NTuple::Array<long> m_nt_sca; + NTuple::Item<double> m_nt_tdc; + NTuple::Item<double> m_nt_ped; + NTuple::Item<long> m_nt_trigger; + NTuple::Item<double> m_nt_S1; NTuple::Tuple* m_nt; std::string m_contKey; diff --git a/LArCalorimeter/LArTest/LArEventTest/share/DumpLArDigits.py b/LArCalorimeter/LArTest/LArEventTest/share/DumpLArDigits.py index 23366881488e5f2e4ff5c25fe7c56bc936636d2f..14adbb10ee739adc008705bd6eb1feeba9f75a64 100755 --- a/LArCalorimeter/LArTest/LArEventTest/share/DumpLArDigits.py +++ b/LArCalorimeter/LArTest/LArEventTest/share/DumpLArDigits.py @@ -1,48 +1,26 @@ -# Location & number of raw data file: -runnumber=3004171 -#RawDataDir="/castor/cern.ch/atlas/testbeam/combined/2004/" -RawDataDir="/castor/cern.ch/atlas/testbeam/lar/2004/" -#RawDataDir="/afs/cern.ch/user/l/lafaye/scratch0/data" -RawDataFilePrefix="daq_ROS-41_LargCalib" -#Gain, set HIGH,MEDIUM,LOW or FREE -GainKey="FREE" -# Number of events to be processed (default is 10) -theApp.EvtMax = 2 - - -# *************************************************************** -include( "ByteStreamCnvSvc/TBEventSelector_jobOptions.py" ) -ByteStreamAddressProviderSvc = Service( "ByteStreamAddressProviderSvc" ) -ByteStreamAddressProviderSvc.TypeNames += ["LArRawChannelContainer/LArRawChannels"] -ByteStreamAddressProviderSvc.TypeNames += ["LArDigitContainer/FREE"] -include( "LArDetMgrDetDescrCnv/LArDetMgrDetDescrCnv_H8_joboptions.py" ) - -if GainKey=="FREE": - ToolSvc.LArRodDecoder.FirstSample=2 - - -# Directory & Prefix & Runnumber -ByteStreamInputSvc=Service("ByteStreamInputSvc") -ByteStreamInputSvc.InputDirectory += [RawDataDir] -ByteStreamInputSvc.FilePrefix += [RawDataFilePrefix] -ByteStreamInputSvc.RunNumber = [runnumber] - - -ToolSvc = Service( "ToolSvc" ) -ToolSvc.LArRoI_Map.Print=FALSE -# Set output level threshold (2=DEBUG, 3=INFO, 4=WARNING, 5=ERROR, 6=FATAL ) -MessageSvc = Service( "MessageSvc" ) -MessageSvc.OutputLevel =3 -AthenaEventLoopMgr = Service ("AthenaEventLoopMgr") -AthenaEventLoopMgr.OutputLevel=4 - -#Necessary DLL's -theApp.Dlls += [ "LArRawUtils","LArTools"] -theApp.Dlls += [ "LArByteStream"] -#theApp.Dlls += [ "CaloDetMgrDetDescrCnv" ] - -theApp.Dlls += [ "LArEventTest"] -theApp.topAlg+=["DumpLArDigits"] -DumpLArDigits=Algorithm("DumpLArDigits") -DumpLArDigits.LArDigitContainerName = "FREE" -DumpLArDigits.OutputFileName="LArDigits.txt" +#tested setup: asetup 20.1.5.8,here + + +from AthenaCommon.AppMgr import (theApp, ServiceMgr as svcMgr,ToolSvc) +from AthenaCommon.AlgSequence import AlgSequence +topSequence = AlgSequence() + +include("LArConditionsCommon/LArMinimalSetup.py") + +svcMgr.IOVDbSvc.GlobalTag="CONDBR2-ES1PA-2015-05" + +#Specify the input file(s) +svcMgr.ByteStreamInputSvc.FullFileName=["/scratch/wlampl/data15_13TeV/data15_13TeV.00267073.express_express.merge.RAW._lb0706._SFO-ALL._0001.1",] + +# Specify the object you want to read from ByteStream +theByteStreamAddressProviderSvc = svcMgr.ByteStreamAddressProviderSvc +theByteStreamAddressProviderSvc.TypeNames += ["LArDigitContainer/FREE"] +theByteStreamAddressProviderSvc.TypeNames += ["LArFebHeaderContainer/LArFebHeader"] + +from LArEventTest.LArEventTestConf import DumpLArDigits +topSequence+=DumpLArDigits(LArDigitContainerName="FREE") + +theApp.EvtMax=5 + +#svcMgr.MessageSvc.OutputLevel=DEBUG +svcMgr.StoreGateSvc.Dump=True diff --git a/LArCalorimeter/LArTest/LArEventTest/src/DumpLArDigits.cxx b/LArCalorimeter/LArTest/LArEventTest/src/DumpLArDigits.cxx index c4ec0e7efca7be98d243aa50c6aa2a026731031e..00f81a30f4dea706b7fa749690cec2f2c2501ad6 100755 --- a/LArCalorimeter/LArTest/LArEventTest/src/DumpLArDigits.cxx +++ b/LArCalorimeter/LArTest/LArEventTest/src/DumpLArDigits.cxx @@ -101,7 +101,7 @@ StatusCode DumpLArDigits::execute() //continue; const HWIdentifier chid=(*vec_it)->channelID();//hardwareID(); const HWIdentifier febid=m_onlineHelper->feb_Id(chid); - std::cout << "FEB_ID: 0x" << std::hex << febid.get_compact() + std::cout << "FEB_ID: 0x" << std::hex << febid.get_identifier32().get_compact() << " channel: " << std::dec << m_onlineHelper->channel(chid) << " (" << m_onlineHelper->channelInSlotMax(febid) << "/FEB), "; m_outfile << "FEB_ID: 0x" << std::hex << febid.get_compact() diff --git a/LArCalorimeter/LArTest/LArEventTest/src/LArDigitsToNtuple.cxx b/LArCalorimeter/LArTest/LArEventTest/src/LArDigitsToNtuple.cxx index dd8bee417491e496f0aa0ed3054cd9ac99b61ba1..621147c283142dca7fac077c8c08bda33b28b393 100755 --- a/LArCalorimeter/LArTest/LArEventTest/src/LArDigitsToNtuple.cxx +++ b/LArCalorimeter/LArTest/LArEventTest/src/LArDigitsToNtuple.cxx @@ -93,25 +93,25 @@ StatusCode LArDigitsToNtuple::initialize() return StatusCode::FAILURE; } - ATH_CHECK( nt->addItem("event",event) ); - ATH_CHECK( nt->addItem("layer",layer,0,4) ); - ATH_CHECK( nt->addItem("ieta",eta,0,510) ); - ATH_CHECK( nt->addItem("iphi",phi,0,1023) ); - ATH_CHECK( nt->addItem("region",region,0,1) ); - ATH_CHECK( nt->addItem("barrel_ec",barrel_ec,0,1) ); - ATH_CHECK( nt->addItem("pos_neg",pos_neg,0,1) ); - ATH_CHECK( nt->addItem("detector",detector,0,2) ); - ATH_CHECK( nt->addItem("FT",FT,0,32) ); - ATH_CHECK( nt->addItem("slot",slot,1,15) ); - ATH_CHECK( nt->addItem("channel",channel,0,127) ); - ATH_CHECK( nt->addItem("gain",gain,0,3) ); - ATH_CHECK( nt->addItem("samples",m_nsamples,samples) ); + ATH_CHECK( nt->addItem("event",m_nt_event) ); + ATH_CHECK( nt->addItem("layer",m_nt_layer,0,4) ); + ATH_CHECK( nt->addItem("ieta",m_nt_eta,0,510) ); + ATH_CHECK( nt->addItem("iphi",m_nt_phi,0,1023) ); + ATH_CHECK( nt->addItem("region",m_nt_region,0,1) ); + ATH_CHECK( nt->addItem("barrel_ec",m_nt_barrel_ec,0,1) ); + ATH_CHECK( nt->addItem("pos_neg",m_nt_pos_neg,0,1) ); + ATH_CHECK( nt->addItem("detector",m_nt_detector,0,2) ); + ATH_CHECK( nt->addItem("FT",m_nt_FT,0,32) ); + ATH_CHECK( nt->addItem("slot",m_nt_slot,1,15) ); + ATH_CHECK( nt->addItem("channel",m_nt_channel,0,127) ); + ATH_CHECK( nt->addItem("gain",m_nt_gain,0,3) ); + ATH_CHECK( nt->addItem("samples",m_nsamples,m_nt_samples) ); - if(m_ped) ATH_CHECK( nt->addItem("ped",ped) ); - if(m_sca) ATH_CHECK( nt->addItem("sca",m_nsamples,sca) ); - if(m_phase) ATH_CHECK( nt->addItem("tdc",tdc) ); - if(m_trigger) ATH_CHECK( nt->addItem("trigger",trigger) ); - if(m_scint) ATH_CHECK( nt->addItem("S1",S1) ); + if(m_ped) ATH_CHECK( nt->addItem("ped",m_nt_ped) ); + if(m_sca) ATH_CHECK( nt->addItem("sca",m_nsamples,m_nt_sca) ); + if(m_phase) ATH_CHECK( nt->addItem("tdc",m_nt_tdc) ); + if(m_trigger) ATH_CHECK( nt->addItem("trigger",m_nt_trigger) ); + if(m_scint) ATH_CHECK( nt->addItem("S1",m_nt_S1) ); m_nt=nt; @@ -229,47 +229,47 @@ StatusCode LArDigitsToNtuple::execute() for(; it!=it_e; ++it){ const HWIdentifier hwid=(*it)->channelID();//hardwareID(); // Fill detector geometry information - event = eventnumber; - if(m_phase) tdc = tdcphase; - if(m_trigger) trigger = triggerword; - if(m_scint) S1 = S1Adc; + m_nt_event = eventnumber; + if(m_phase) m_nt_tdc = tdcphase; + if(m_trigger) m_nt_trigger = triggerword; + if(m_scint) m_nt_S1 = S1Adc; try { Identifier id=m_larCablingSvc->cnvToIdentifier(hwid); if (m_emId->is_lar_em(id)) { - eta = m_emId->eta(id); - phi = m_emId->phi(id); - layer = m_emId->sampling(id); - region = m_emId->region(id); - detector = 0; + m_nt_eta = m_emId->eta(id); + m_nt_phi = m_emId->phi(id); + m_nt_layer = m_emId->sampling(id); + m_nt_region = m_emId->region(id); + m_nt_detector = 0; } else if (m_hecId->is_lar_hec(id)) { - eta = m_hecId->eta(id); - phi = m_hecId->phi(id); - layer = m_hecId->sampling(id); - region = m_hecId->region(id); - detector = 1; + m_nt_eta = m_hecId->eta(id); + m_nt_phi = m_hecId->phi(id); + m_nt_layer = m_hecId->sampling(id); + m_nt_region = m_hecId->region(id); + m_nt_detector = 1; } else if (m_fcalId->is_lar_fcal(id)) { - eta = m_fcalId->eta(id); - phi = m_fcalId->phi(id); - layer = m_fcalId->module(id); - region = 0; - detector = 2; + m_nt_eta = m_fcalId->eta(id); + m_nt_phi = m_fcalId->phi(id); + m_nt_layer = m_fcalId->module(id); + m_nt_region = 0; + m_nt_detector = 2; } } catch (LArID_Exception & except) { - eta = -1; - phi = -1; - layer = -1; - region = -1; - detector = -1; + m_nt_eta = -1; + m_nt_phi = -1; + m_nt_layer = -1; + m_nt_region = -1; + m_nt_detector = -1; } // Fill hardware information - barrel_ec = m_onlineHelper->barrel_ec(hwid); - pos_neg = m_onlineHelper->pos_neg(hwid); - FT = m_onlineHelper->feedthrough(hwid); - slot = m_onlineHelper->slot(hwid); - channel = m_onlineHelper->channel(hwid); + m_nt_barrel_ec = m_onlineHelper->barrel_ec(hwid); + m_nt_pos_neg = m_onlineHelper->pos_neg(hwid); + m_nt_FT = m_onlineHelper->feedthrough(hwid); + m_nt_slot = m_onlineHelper->slot(hwid); + m_nt_channel = m_onlineHelper->channel(hwid); // Fill pedestal information float thePedestal=-1; @@ -282,14 +282,14 @@ StatusCode LArDigitsToNtuple::execute() thePedestal = -999; ATH_MSG_DEBUG ( "No pedestal found for this cell. Use default value " << thePedestal ); } - ped = thePedestal; + m_nt_ped = thePedestal; // Fill raw data samples and gain for(unsigned int i=0;i<(*it)->samples().size();i++) { if((int)i>=m_nsamples) break; - samples[i]=(*it)->samples()[i]; + m_nt_samples[i]=(*it)->samples()[i]; } - gain=(*it)->gain(); + m_nt_gain=(*it)->gain(); // Fill SCA numbers if(m_sca) { @@ -302,7 +302,7 @@ StatusCode LArDigitsToNtuple::execute() if(this_febid!=febid) continue; for(unsigned int i=0;i<(*feb_it)->SCA().size();i++) { if((int)i>=m_nsamples) break; - sca[i]=(*feb_it)->SCA()[i]; + m_nt_sca[i]=(*feb_it)->SCA()[i]; } break; } // End FebHeader loop