Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • andesai/calypso
  • sazhang/calypso
  • yuxu/calypso
  • wfilali/calypso
  • bewilson/calypso
  • ovaldesm/calypso
  • xai/calypso
  • ymaruya/calypso
  • anburger/calypso
  • seley/calypso
  • sudatta/calypso
  • notarann/calypso
  • hhjelm/calypso
  • tarai/calypso
  • lmccoy/calypso
  • agarabag/calypso
  • fneuhaus/calypso
  • vlian/calypso
  • yechou/calypso
  • vlian/calypso-official
  • fasermc/calypso
  • schsu/calypso
  • maprim/calypso
  • cantel/calypso
  • jwspence/calypso
  • diwang/calypso
  • ccavanag/calypso
  • gwilliam/calypso
  • asalman/calypso
  • toinada/calypso
  • jboyd/calypso
  • abarkley/calypso
  • yafik/calypso
  • cpandini/calypso
  • tboeckh/calypso
  • sshively/calypso
  • keli/calypso
  • dfellers/calypso
  • torrence/calypso
  • coccaro/calypso
  • dcasper/calypso
  • faser/calypso
42 results
Show changes
Commits on Source (20)
Showing
with 206 additions and 157 deletions
......@@ -38,7 +38,7 @@ test_unittest:
tags:
- k8s-cvmfs
script:
- set +e && export ALRB_CONT_RUNPAYLOAD="asetup --input=asetup.faser Athena,24.0.41; source `find . -name 'setup.sh'`; cd build; ctest -j3" && set -e
- set +e && export ALRB_CONT_RUNPAYLOAD="asetup --input=asetup.faser Athena,24.0.41; source `find . -name 'setup.sh'`; cd build; ctest -j3 --output-on-failure" && set -e
- echo $ALRB_CONT_RUNPAYLOAD
- set +e && source ${ATLAS_LOCAL_ROOT_BASE}/user/atlasLocalSetup.sh -c alma9 && set -e
dependencies:
......
......@@ -64,10 +64,5 @@ def CaloWaveformDigitizationOutputCfg(flags, **kwargs):
ItemList = [
"RawWaveformContainer#*"
]
acc.merge(OutputStreamCfg(flags, "RDO"))
ostream = acc.getEventAlgo("OutputStreamRDO")
# ostream.TakeItemsFromInput = True # Copies all data from input file to output
# ostream.TakeItemsFromInput = False
# Try turning this off
ostream.ItemList += ItemList
acc.merge(OutputStreamCfg(flags, "RDO", ItemList))
return acc
......@@ -9,7 +9,8 @@ atlas_subdir( Digitization )
atlas_install_scripts( scripts/*.sh scripts/*.py )
atlas_add_test( ProdDigi
SCRIPT scripts/faser_digi.py ${CMAKE_CURRENT_SOURCE_DIR}/../rawdata/FaserMC-MC22_PG_muon_fasernu_100GeV-100012-00000-HITS.root
PROPERTIES TIMEOUT 300 )
SCRIPT scripts/faser_digi.py ${CMAKE_CURRENT_SOURCE_DIR}/../rawdata/FaserMC-MC24_PG_muon_fasernu_100GeV-100012-00000-HITS.root
POST_EXEC_SCRIPT nopost.sh
PROPERTIES TIMEOUT 300 )
......@@ -70,7 +70,7 @@ configFlags.IOVDb.DatabaseInstance = "OFLP200" # Use MC conditions for now
configFlags.Input.ProjectName = "mc20"
#configFlags.GeoModel.Align.Dynamic = False
configFlags.Beam.NumberOfCollisions = 0.
configFlags.Digitization.TruthOutput = True
configFlags.Digitization.EnableTruth = True
# TI12 old geometry
if runtype == "TI12OldMC":
......@@ -181,6 +181,14 @@ acc.merge(CaloWaveformDigitizationCfg(configFlags, digiTag=args.digiTag, Advance
from ScintDigiAlgs.ScintDigiAlgsConfig import ScintWaveformDigitizationCfg
acc.merge(ScintWaveformDigitizationCfg(configFlags, digiTag=args.digiTag, AdvancedTiming=(not args.simpleTiming)))
#add beam truth event
from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
# acc = ComponentAccumulator()
ItemList = ["McEventCollection#BeamTruthEvent"]
acc.merge(OutputStreamCfg(configFlags, "RDO", ItemList))
# Configure verbosity
if args.verbose:
acc.foreach_component("*").OutputLevel = VERBOSE
......
......@@ -180,7 +180,7 @@ configFlags.IOVDb.DatabaseInstance = "OFLP200" # Use MC conditions for now
configFlags.Input.ProjectName = "mc20"
#configFlags.GeoModel.Align.Dynamic = False
configFlags.Beam.NumberOfCollisions = 0.
configFlags.Digitization.TruthOutput = True
configFlags.Digitization.EnableTruth = True
# TI12 old geometry
if runtype == "TI12OldMC":
configFlags.GeoModel.FaserVersion = "FASER-01"
......
......@@ -24,7 +24,7 @@ def faser_pgparser():
parser.add_argument("--conf", action='append',
help="Specify configuration file with default values")
parser.add_argument("--geom", default="TI12MC",
help="Specify geomtery to simulation (default: TI12MC, alt: TestBeamMC)")
help="Specify geometry to simulation (default: TI12MC, alt: TestBeamMC)")
parser.add_argument("--run", default=123456, type=int,
help="Run number to generate")
......
......@@ -66,6 +66,8 @@ if __name__ == '__main__':
#
# More config flags (R24)
#
from Campaigns.Utils import Campaign
from AthenaConfiguration.Enums import BeamType
configFlags.Common.MsgSourceLength = 30
configFlags.Input.MCCampaign = Campaign.Unknown
configFlags.Input.TypedCollections = []
......@@ -284,14 +286,6 @@ if __name__ == '__main__':
from G4FaserAlg.G4FaserAlgConfig import G4FaserAlgCfg
cfg.merge(G4FaserAlgCfg(configFlags))
#Event Filtering?
if args.filter == 'muon_conversion':
import McParticleEvent.Pythonizations
from GeneratorUtils.MuonFilters import ConversionFilter
filt = ConversionFilter("MuonFilter") # , muonEnergyLoss = 5000, minConversionEnergy = 2000) # , muonEnergyLoss = 5000, maxRadius = 100)
cfg.addEventAlgo(filt, sequenceName = "AthAlgSeq")
OutputStreamHITS = cfg.getEventAlgo("OutputStreamHITS")
OutputStreamHITS.RequireAlgs = ["MuonFilter"]
#
# Output file
#
......@@ -302,6 +296,27 @@ if __name__ == '__main__':
# Add in-file MetaData
from xAODMetaDataCnv.InfileMetaDataConfig import SetupMetaDataForStreamCfg
cfg.merge(SetupMetaDataForStreamCfg(configFlags, "HITS", AcceptAlgs=AcceptAlgNames))
#
#Event Filtering?
#
if args.filter == 'muon_conversion':
from GeneratorUtils.MuonFilters import ConversionFilter
import AthenaCommon.AppMgr as acam
import AthenaCommon.AlgSequence as acas
from OutputStreamAthenaPool.OutputStreamConfig import outputStreamName
filt = ConversionFilter("MuonFilter") # , muonEnergyLoss = 5000, minConversionEnergy = 2000) # , muonEnergyLoss = 5000, maxRadius = 100)
cfg.addEventAlgo(filt)
cfg.getEventAlgo(outputStreamName("HITS")).WritingTool.ProcessingTag = "StreamHITS"
OutputStreamHITS = cfg.getEventAlgo(outputStreamName("HITS"))
OutputStreamHITS.RequireAlgs = ["MuonFilter"]
#
#
# Dump config
#
......
......@@ -46,6 +46,12 @@ parser.add_argument("--isOverlay", action='store_true',
help="Set overlaid data input")
parser.add_argument("--noTracking", action='store_true',
help="Turn off tracking (for R24 debugging)")
parser.add_argument("--noIFT", action='store_true',
help="Turn off 4-station tracking")
parser.add_argument("--noForward", action='store_true',
help="Turn off forward CKF tracking")
parser.add_argument("--noBackward", action='store_true',
help="Turn off backward CKF tracking")
args = parser.parse_args()
......@@ -271,34 +277,38 @@ if useCKF:
# Do both forward and backward tracking
from FaserActsKalmanFilter.CKF2Config import CKF2Cfg
if not args.isOverlay:
if not args.isOverlay and not args.noIFT:
# 4-station tracking forward
acc.merge(CKF2Cfg(configFlags,
actsOutputTag=f"{filestem}_4station_forward",
noDiagnostics=True))
if not args.noForward:
acc.merge(CKF2Cfg(configFlags,
actsOutputTag=f"{filestem}_4station_forward",
noDiagnostics=True))
# 4-station tracking backward
acc.merge(CKF2Cfg(configFlags, name="CKF_Back",
actsOutputTag=f"{filestem}_4station_backward",
OutputCollection="CKFTrackCollectionBackward",
BackwardPropagation=True,
if not args.noBackward:
acc.merge(CKF2Cfg(configFlags, name="CKF_Back",
actsOutputTag=f"{filestem}_4station_backward",
OutputCollection="CKFTrackCollectionBackward",
BackwardPropagation=True,
noDiagnostics=True))
# Add tracking collection with no IFT
if not args.noForward:
acc.merge(CKF2Cfg(configFlags, maskedLayers=[0, 1, 2], name="CKF_woIFT",
actsOutputTag=f"{filestem}_3station_forward",
OutputCollection="CKFTrackCollectionWithoutIFT",
BackwardPropagation=False,
noDiagnostics=True))
# Add tracking collection with no IFT
acc.merge(CKF2Cfg(configFlags, maskedLayers=[0, 1, 2], name="CKF_woIFT",
actsOutputTag=f"{filestem}_3station_forward",
OutputCollection="CKFTrackCollectionWithoutIFT",
BackwardPropagation=False,
noDiagnostics=True))
# Backward tracking with no IFT
acc.merge(CKF2Cfg(configFlags, maskedLayers=[0, 1, 2], name="CKF_Back_woIFT",
actsOutputTag=f"{filestem}_3station_backward",
OutputCollection="CKFTrackCollectionBackwardWithoutIFT",
BackwardPropagation=True,
noDiagnostics=True))
if not args.noBackward:
acc.merge(CKF2Cfg(configFlags, maskedLayers=[0, 1, 2], name="CKF_Back_woIFT",
actsOutputTag=f"{filestem}_3station_backward",
OutputCollection="CKFTrackCollectionBackwardWithoutIFT",
BackwardPropagation=True,
noDiagnostics=True))
#
# Configure output
......
......@@ -43,9 +43,10 @@ if __name__ == "__main__":
configFlags.Input.ProjectName = "data20" # Needed to bypass autoconfig
#configFlags.GeoModel.Align.Dynamic = False
configFlags.Input.Files = [f"{Cmake_working_dir}/../rawdata/Faser-Physics-001920-filtered.raw"] #path is set to test data for ctest
# configFlags.Output.RDOFileName = "my.RDO.pool.root"
configFlags.Output.RDOFileName = "my.RDO.pool.root"
configFlags.lock()
# Configure components
# Configure components
from CalypsoConfiguration.MainServicesConfig import MainServicesCfg
# from AthenaPoolCnvSvc.PoolWriteConfig import PoolWriteCfg
......
......@@ -42,7 +42,7 @@ if __name__ == "__main__":
configFlags.Input.ProjectName = "data20"
#configFlags.GeoModel.Align.Dynamic = False
configFlags.Input.Files = [f"{Cmake_working_dir}/../rawdata/Faser-Physics-001920-filtered.raw"] #path is set to test data for ctest
#configFlags.Output.RDOFileName = "trigger.RDO.pool.root"
configFlags.Output.RDOFileName = "trigger.RDO.pool.root"
configFlags.lock()
# Configure components
......@@ -53,13 +53,13 @@ if __name__ == "__main__":
#acc.merge(PoolWriteCfg(configFlags))
# Configure output
#from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
#itemList = [ "xAOD::EventInfo#*",
# "xAOD::EventAuxInfo#*",
# "xAOD::FaserTriggerData#*",
# "xAOD::FaserTriggerDataAux#*" ]
#acc.merge(OutputStreamCfg(configFlags, "RDO", itemList))
#ostream = acc.getEventAlgo("OutputStreamRDO")
from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
itemList = [ "xAOD::EventInfo#*",
"xAOD::EventAuxInfo#*",
"xAOD::FaserTriggerData#*",
"xAOD::FaserTriggerDataAux#*" ]
# This causes an error...
# acc.merge(OutputStreamCfg(configFlags, "RDO", itemList))
# Set up algorithm
acc.merge(TriggerDataAccessExampleCfg(configFlags))
......
......@@ -26,8 +26,8 @@ class ConversionFilter(PyAthena.Alg):
return
def findConversionFromMuon(self, evt):
for i, p in enumerate(evt.particles):
for i, p in enumerate(evt.particles()):
# Check incoming particle (muon) is within radius to
# avoid those conversions from muons coming in to magnet
......@@ -47,7 +47,7 @@ class ConversionFilter(PyAthena.Alg):
if ovtx.particles_out_size() != 2: continue
# That are e+e- pair
children = list(ovtx.particles_out)
children = list(ovtx.particles_out())
if not (abs(children[0].pdg_id()) == 11 and children[0].pdg_id() == -children[1].pdg_id()): continue
self.msg.debug("Found Photon conversion")
......@@ -55,7 +55,7 @@ class ConversionFilter(PyAthena.Alg):
ivtx = p.production_vertex()
if not ivtx: continue
if ivtx.particles_in_size() != 1: continue
mother = list(ivtx.particles_in)[0]
mother = list(ivtx.particles_in())[0]
# That is a muon (allowing for another photon inbetween)
isFromMuon = False
......@@ -64,7 +64,7 @@ class ConversionFilter(PyAthena.Alg):
elif abs(mother.pdg_id()) == 22:
ivtx = mother.production_vertex()
if ivtx and ivtx.particles_in_size() == 1:
gran = list(ivtx.particles_in)[0]
gran = list(ivtx.particles_in())[0]
if abs(gran.pdg_id()) == 13:
isFromMuon = True
......@@ -85,7 +85,7 @@ class ConversionFilter(PyAthena.Alg):
lastMuonE = None
firstMuonE = None
for p in evt.particles:
for p in evt.particles():
# Find muons
if abs(p.pdg_id()) != 13: continue
......@@ -120,7 +120,30 @@ class ConversionFilter(PyAthena.Alg):
self.msg.debug(f"Executing {self.getName()}")
self.msg.debug(f"Reading {self.InputMCEventKey}")
mc = self.evtStore[self.InputMCEventKey]
evt = self.evtStore[self.InputMCEventKey][0]
# print('****************EVT*************************')
# print(self.evtStore[self.InputMCEventKey])
# print(len(evt.particles()))
# print(evt.particles()[0].momentum().px())
# from PyDumper.Dumpers import toiter
# print("???????")
# print(evt.particles().begin())
# print("???????")
# particle_list = []
# for p in toiter(evt.particles().begin(),
# evt.particles().end()):
# print(p)
# particle_list.append(p)
# evt.particle_list = particle_list
# print(evt.particle_list)
# # print("dir(evt):", dir(evt))
# # print("dir(evt.particles):", dir(evt.particles))
# print(mc.size())
# print(dir(evt))
# print(evt.__dict__)
# print('****************EVT*************************')
self.setFilterPassed(False)
......
......@@ -8,7 +8,7 @@ atlas_add_component(
src/NtupleDumperAlg.cxx
src/component/NtupleDumper_entries.cxx
LINK_LIBRARIES AthenaBaseComps StoreGateLib xAODFaserWaveform xAODFaserCalorimeter xAODFaserTrigger xAODFaserLHC ScintIdentifier FaserCaloIdentifier GeneratorObjects FaserActsGeometryLib TrackerSimEvent TrackerSimData TrackerIdentifier TrackerReadoutGeometry TrkTrack GeoPrimitives TrackerRIO_OnTrack TrackerSpacePoint FaserActsKalmanFilterLib AtlasHepMCLib WaveformConditionsToolsLib # FIXME: FaserActsmanVertexingLib
LINK_LIBRARIES AthenaBaseComps StoreGateLib xAODFaserWaveform xAODFaserCalorimeter xAODFaserTrigger xAODFaserLHC ScintIdentifier FaserCaloIdentifier GeneratorObjects FaserActsGeometryLib TrackerSimEvent TrackerSimData TrackerIdentifier TrackerReadoutGeometry TrkTrack GeoPrimitives TrackerRIO_OnTrack TrackerSpacePoint FaserActsKalmanFilterLib AtlasHepMCLib WaveformConditionsToolsLib FaserActsmanVertexingLib
PRIVATE_LINK_LIBRARIES nlohmann_json::nlohmann_json )
atlas_install_python_modules( python/*.py )
......
......@@ -32,9 +32,6 @@ parser.add_argument("-g", "--geom", default="",
parser.add_argument("--outfile", default="",
help="Override output file name")
parser.add_argument("-g", "--geom", default="",
help="Specify geometry (if it can't be parsed from run number)\n Values: TI12Data03 (2022 TI12)")
parser.add_argument("-v", "--verbose", action='store_true',
help="Turn on DEBUG output")
parser.add_argument("-n", "--nevents", type=int, default=-1,
......@@ -293,28 +290,11 @@ else:
configFlags.Input.ProjectName = "data21" # Needed to bypass autoconfig
<<<<<<< HEAD
<<<<<<< HEAD
configFlags.Common.isOnline = False
configFlags.GeoModel.Align.Dynamic = False
configFlags.Beam.NumberOfCollisions = 0.
configFlags.Detector.GeometryFaserSCT = True
configFlags.lock()
=======
ConfigFlags.Common.isOnline = False
#ConfigFlags.GeoModel.Align.Dynamic = False
ConfigFlags.Beam.NumberOfCollisions = 0.
ConfigFlags.Detector.GeometryFaserSCT = True
ConfigFlags.lock()
>>>>>>> 05a628fdc98 (GeometryTest runs successfully)
=======
configFlags.GeoModel.FaserVersion = "FASERNU-03" # FASER geometry
configFlags.Common.isOnline = False
#ConfigFlags.GeoModel.Align.Dynamic = False
#configFlags.GeoModel.Align.Dynamic = False
configFlags.Beam.NumberOfCollisions = 0.
configFlags.Detector.GeometryFaserSCT = True
configFlags.lock()
>>>>>>> 6e1b4d4be8e (Configuration fixes)
# Core components
acc = MainServicesCfg(configFlags)
......
......@@ -243,8 +243,7 @@ StatusCode NtupleDumperAlg::initialize()
ATH_CHECK(m_trackingGeometryTool.retrieve());
ATH_CHECK(m_trackTruthMatchingTool.retrieve());
ATH_CHECK(m_fiducialParticleTool.retrieve());
// TODO - fix vertexing
// ATH_CHECK(m_vertexingTool.retrieve());
ATH_CHECK(m_vertexingTool.retrieve());
ATH_CHECK(m_mappingTool.retrieve());
ATH_CHECK(m_spacePointContainerKey.initialize());
......@@ -1513,40 +1512,57 @@ StatusCode NtupleDumperAlg::execute(const EventContext &ctx) const
m_longTracks++;
}
// if (m_runVertexing && goodTracks.size() >= 2) {
// // sort tracks my momentum and reconstruct vertex
// std::sort(goodTracks.begin(), goodTracks.end(), [](const Trk::Track *lhs, const Trk::Track *rhs){
// return lhs->trackParameters()->front()->momentum().z() < rhs->trackParameters()->front()->momentum().z();
// });
// std::vector<const Trk::Track*> lowMomentumTracks {goodTracks[0], goodTracks[1]};
// std::optional<FaserTracking::POCA> vertex = m_vertexingTool->getVertex(lowMomentumTracks);
// if (vertex) {
// Eigen::Vector3d position = vertex->position;
// m_vertex_x = position.x();
// m_vertex_y = position.y();
// m_vertex_z = position.z();
// m_vertex_chi2 = vertex->chi2;
// // get track parameters of two tracks with lowest momentum at vertex
// auto vertexTrackParameters0 = m_vertexingTool->extrapolateTrack(goodTracks[0], m_vertex_z);
// if (vertexTrackParameters0 != nullptr) {
// // convert momentum from GeV to MeV
// m_vertex_px0 = vertexTrackParameters0->momentum().x() * 1e3;
// m_vertex_py0 = vertexTrackParameters0->momentum().y() * 1e3;
// m_vertex_pz0 = vertexTrackParameters0->momentum().z() * 1e3;
// m_vertex_p0 = std::sqrt(m_vertex_px0*m_vertex_px0 + m_vertex_py0*m_vertex_py0 + m_vertex_pz0*m_vertex_pz0);
// }
// auto vertexTrackParameters1 = m_vertexingTool->extrapolateTrack(goodTracks[1], m_vertex_z);
// if (vertexTrackParameters1 != nullptr) {
// // convert momentum from GeV to MeV
// m_vertex_px1 = vertexTrackParameters1->momentum().x() * 1e3;
// m_vertex_py1 = vertexTrackParameters1->momentum().y() * 1e3;
// m_vertex_pz1 = vertexTrackParameters1->momentum().z() * 1e3;
// m_vertex_p1 = std::sqrt(m_vertex_px1*m_vertex_px1 + m_vertex_py1*m_vertex_py1 + m_vertex_pz1*m_vertex_pz1);
// }
// }
//}
// Clear old vertex values
m_vertex_x = 0.;
m_vertex_y = 0.;
m_vertex_z = 0.;
m_vertex_chi2 = -1.;
m_vertex_px0 = 0.;
m_vertex_py0 = 0.;
m_vertex_pz0 = 0.;
m_vertex_p0 = 0.;
m_vertex_px1 = 0.;
m_vertex_py1 = 0.;
m_vertex_pz1 = 0.;
m_vertex_p1 = 0.;
if (m_runVertexing && goodTracks.size() >= 2) {
m_two_tracks ++;
// sort tracks by momentum and reconstruct vertex
std::sort(goodTracks.begin(), goodTracks.end(), [](const Trk::Track *lhs, const Trk::Track *rhs){
return lhs->trackParameters()->front()->momentum().z() < rhs->trackParameters()->front()->momentum().z();
});
std::vector<const Trk::Track*> lowMomentumTracks {goodTracks[0], goodTracks[1]};
std::optional<FaserTracking::POCA> vertex = m_vertexingTool->getVertex(lowMomentumTracks);
if (vertex) {
Eigen::Vector3d position = vertex->position;
m_vertex_x = position.x();
m_vertex_y = position.y();
m_vertex_z = position.z();
m_vertex_chi2 = vertex->chi2;
m_verticies++;
// get track parameters of two tracks with lowest momentum at vertex
auto vertexTrackParameters0 = m_vertexingTool->extrapolateTrack(goodTracks[0], m_vertex_z);
if (vertexTrackParameters0) {
// convert momentum from GeV to MeV
m_vertex_px0 = vertexTrackParameters0->momentum().x() * 1e3;
m_vertex_py0 = vertexTrackParameters0->momentum().y() * 1e3;
m_vertex_pz0 = vertexTrackParameters0->momentum().z() * 1e3;
m_vertex_p0 = std::sqrt(m_vertex_px0*m_vertex_px0 + m_vertex_py0*m_vertex_py0 + m_vertex_pz0*m_vertex_pz0);
}
auto vertexTrackParameters1 = m_vertexingTool->extrapolateTrack(goodTracks[1], m_vertex_z);
if (vertexTrackParameters1) {
// convert momentum from GeV to MeV
m_vertex_px1 = vertexTrackParameters1->momentum().x() * 1e3;
m_vertex_py1 = vertexTrackParameters1->momentum().y() * 1e3;
m_vertex_pz1 = vertexTrackParameters1->momentum().z() * 1e3;
m_vertex_p1 = std::sqrt(m_vertex_px1*m_vertex_px1 + m_vertex_py1*m_vertex_py1 + m_vertex_pz1*m_vertex_pz1);
}
}
}
if (!isMC) {
if (m_doTrackFilter) { // filter events: colliding bunches have at least one long track, non-colliding bunches have at least one long track or one calo module with raw_peak > 3 mV
......@@ -1665,6 +1681,8 @@ StatusCode NtupleDumperAlg::finalize()
{
ATH_MSG_INFO("Number of events passed Ntuple selection = " << m_eventsPassed);
ATH_MSG_INFO("Number of events failing GRL selection = " << m_eventsFailedGRL);
ATH_MSG_INFO("Number of 2-track events = " << m_two_tracks);
ATH_MSG_INFO("Number of verticies = " << m_verticies);
return StatusCode::SUCCESS;
}
......
......@@ -22,8 +22,7 @@
#include "FaserActsKalmanFilter/ITrackTruthMatchingTool.h"
#include "TrackerSimEvent/FaserSiHitCollection.h"
#include "xAODEventInfo/EventInfo.h"
// TODO - fix vertexing
//#include "FaserActsVertexing/IVertexingTool.h"
#include "FaserActsVertexing/IVertexingTool.h"
#include "GeneratorObjects/McEventCollection.h"
#include <boost/dynamic_bitset.hpp>
......@@ -114,8 +113,7 @@ private:
ToolHandle<IFaserActsTrackingGeometryTool> m_trackingGeometryTool {this, "TrackingGeometryTool", "FaserActsTrackingGeometryTool"};
ToolHandle<ITrackTruthMatchingTool> m_trackTruthMatchingTool {this, "TrackTruthMatchingTool", "TrackTruthMatchingTool"};
ToolHandle<IFiducialParticleTool> m_fiducialParticleTool {this, "FiducialParticleTool", "FiducialParticleTool"};
// TODO - fix vertexing
// ToolHandle<FaserTracking::IVertexingTool> m_vertexingTool { this, "VertexingTool", "FaserTracking::PointOfClosestApproachSearchTool"};
ToolHandle<FaserTracking::IVertexingTool> m_vertexingTool { this, "VertexingTool", "FaserTracking::PointOfClosestApproachSearchTool"};
ToolHandle<IWaveformCableMappingTool> m_mappingTool { this, "WaveformCableMappingTool", "WaveformCableMappingTool" };
const TrackerDD::SCT_DetectorManager* m_detMgr {nullptr};
......@@ -421,7 +419,9 @@ private:
mutable int m_eventsPassed = 0;
mutable int m_eventsFailedGRL = 0;
mutable int m_two_tracks = 0;
mutable int m_verticies = 0;
mutable double m_vertex_x; // components of reconstructed vertex in mm
mutable double m_vertex_y;
mutable double m_vertex_z;
......
......@@ -63,9 +63,5 @@ def ScintWaveformDigitizationOutputCfg(flags, **kwargs):
ItemList = [
"RawWaveformContainer#*"
]
acc.merge(OutputStreamCfg(flags, "RDO"))
ostream = acc.getEventAlgo("OutputStreamRDO")
# ostream.TakeItemsFromInput = True # Copies all data from input file to output
# ostream.TakeItemsFromInput = False
ostream.ItemList += ItemList
acc.merge(OutputStreamCfg(flags, "RDO", ItemList))
return acc
......@@ -29,41 +29,43 @@ atlas_add_library( G4FaserAlg
INCLUDE_DIRS ${GEANT4_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS} ${XERCESC_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS}
PRIVATE_LINK_LIBRARIES ${GEANT4_LIBRARIES} ${EIGEN_LIBRARIES} ${XERCESC_LIBRARIES} ${CLHEP_LIBRARIES} AtlasHepMCLib AthenaBaseComps AthenaKernel CxxUtils GaudiKernel G4AtlasInterfaces G4FaserAlgLib SGTools StoreGateLib EventInfo GeneratorObjects FaserMCTruthBaseLib)
atlas_add_test( G4FaserAlgConfig_TestFaser
SCRIPT python ${CMAKE_CURRENT_SOURCE_DIR}/test/G4FaserAlgConfig_Test.py GeoModel.FaserVersion="'FASER-01'" IOVDb.GlobalTag="'OFLCOND-FASER-01'" Output.HITSFileName='faser.HITS.pool.root'
PROPERTIES TIMEOUT 300
PROPERTIES WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
POST_EXEC_SCRIPT nopost.sh)
# ET - These are currently failing with a free exception on job completion
# Turn them off for the moment until this can be debugged...
# atlas_add_test( G4FaserAlgConfig_TestFaser
# SCRIPT python ${CMAKE_CURRENT_SOURCE_DIR}/test/G4FaserAlgConfig_Test.py GeoModel.FaserVersion="'FASER-01'" IOVDb.GlobalTag="'OFLCOND-FASER-01'" Output.HITSFileName='faser.HITS.pool.root'
# PROPERTIES TIMEOUT 300
# PROPERTIES WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
# POST_EXEC_SCRIPT nopost.sh)
atlas_add_test( G4FaserAlgConfig_TestFaserNu03
SCRIPT python ${CMAKE_CURRENT_SOURCE_DIR}/test/G4FaserAlgConfig_Test.py GeoModel.FaserVersion="'FASERNU-03'" IOVDb.GlobalTag="'OFLCOND-FASER-02'" Output.HITSFileName='faserNu03.HITS.pool.root'
PROPERTIES TIMEOUT 300
PROPERTIES WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
POST_EXEC_SCRIPT nopost.sh)
# atlas_add_test( G4FaserAlgConfig_TestFaserNu03
# SCRIPT python ${CMAKE_CURRENT_SOURCE_DIR}/test/G4FaserAlgConfig_Test.py GeoModel.FaserVersion="'FASERNU-03'" IOVDb.GlobalTag="'OFLCOND-FASER-02'" Output.HITSFileName='faserNu03.HITS.pool.root'
# PROPERTIES TIMEOUT 300
# PROPERTIES WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
# POST_EXEC_SCRIPT nopost.sh)
atlas_add_test( G4FaserAlgConfig_TestFaserNu03_NewField
SCRIPT python ${CMAKE_CURRENT_SOURCE_DIR}/test/G4FaserAlgConfig_Test.py GeoModel.FaserVersion="'FASERNU-03'" IOVDb.GlobalTag="'OFLCOND-FASER-03'" Output.HITSFileName='faserNu03_NewField.HITS.pool.root'
PROPERTIES TIMEOUT 300
PROPERTIES WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
POST_EXEC_SCRIPT nopost.sh)
# atlas_add_test( G4FaserAlgConfig_TestFaserNu03_NewField
# SCRIPT python ${CMAKE_CURRENT_SOURCE_DIR}/test/G4FaserAlgConfig_Test.py GeoModel.FaserVersion="'FASERNU-03'" IOVDb.GlobalTag="'OFLCOND-FASER-03'" Output.HITSFileName='faserNu03_NewField.HITS.pool.root'
# PROPERTIES TIMEOUT 300
# PROPERTIES WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
# POST_EXEC_SCRIPT nopost.sh)
atlas_add_test( G4FaserAlgConfig_TestFaserNu04
SCRIPT python ${CMAKE_CURRENT_SOURCE_DIR}/test/G4FaserAlgConfig_Test.py GeoModel.FaserVersion="'FASERNU-04'" IOVDb.GlobalTag="'OFLCOND-FASER-03'" Output.HITSFileName='faserNu04.HITS.pool.root'
PROPERTIES TIMEOUT 300
PROPERTIES WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
POST_EXEC_SCRIPT nopost.sh)
# atlas_add_test( G4FaserAlgConfig_TestFaserNu04
# SCRIPT python ${CMAKE_CURRENT_SOURCE_DIR}/test/G4FaserAlgConfig_Test.py GeoModel.FaserVersion="'FASERNU-04'" IOVDb.GlobalTag="'OFLCOND-FASER-03'" Output.HITSFileName='faserNu04.HITS.pool.root'
# PROPERTIES TIMEOUT 300
# PROPERTIES WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
# POST_EXEC_SCRIPT nopost.sh)
atlas_add_test( G4FaserAlgConfig_TestTestbeam00
SCRIPT python ${CMAKE_CURRENT_SOURCE_DIR}/test/G4FaserAlgConfig_Test.py GeoModel.FaserVersion="'FASER-TB00'" IOVDb.GlobalTag="'OFLCOND-FASER-TB00'" Output.HITSFileName='tb00.HITS.pool.root'
PROPERTIES TIMEOUT 300
PROPERTIES WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
POST_EXEC_SCRIPT nopost.sh)
# atlas_add_test( G4FaserAlgConfig_TestTestbeam00
# SCRIPT python ${CMAKE_CURRENT_SOURCE_DIR}/test/G4FaserAlgConfig_Test.py GeoModel.FaserVersion="'FASER-TB00'" IOVDb.GlobalTag="'OFLCOND-FASER-TB00'" Output.HITSFileName='tb00.HITS.pool.root'
# PROPERTIES TIMEOUT 300
# PROPERTIES WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
# POST_EXEC_SCRIPT nopost.sh)
atlas_add_test( G4FaserAlgConfig_TestTestbeam01
SCRIPT python ${CMAKE_CURRENT_SOURCE_DIR}/test/G4FaserAlgConfig_Test.py GeoModel.FaserVersion="'FASER-TB01'" IOVDb.GlobalTag="'OFLCOND-FASER-TB00'" Output.HITSFileName='tb01.HITS.pool.root'
PROPERTIES TIMEOUT 300
PROPERTIES WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
POST_EXEC_SCRIPT nopost.sh)
# atlas_add_test( G4FaserAlgConfig_TestTestbeam01
# SCRIPT python ${CMAKE_CURRENT_SOURCE_DIR}/test/G4FaserAlgConfig_Test.py GeoModel.FaserVersion="'FASER-TB01'" IOVDb.GlobalTag="'OFLCOND-FASER-TB00'" Output.HITSFileName='tb01.HITS.pool.root'
# PROPERTIES TIMEOUT 300
# PROPERTIES WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
# POST_EXEC_SCRIPT nopost.sh)
# Install files from the package:
......
......@@ -10,7 +10,7 @@ if __name__ == "__main__":
from AthenaConfiguration.TestDefaults import defaultTestFiles
configFlags = initConfigFlags()
configFlags.Input.Files = defaultTestFiles.HITS
configFlags.Input.Files = []
configFlags.IOVDb.GlobalTag = "OFLCOND-FASER-01" # Always needed; must match FaserVersion
#configFlags.GeoModel.Align.Dynamic = False
configFlags.lock()
......
......@@ -10,7 +10,7 @@ if __name__ == "__main__":
from AthenaConfiguration.TestDefaults import defaultTestFiles
configFlags = initConfigFlags()
configFlags.Input.Files = defaultTestFiles.HITS
configFlags.Input.Files = []
configFlags.IOVDb.GlobalTag = "OFLCOND-FASER-01" # Always needed; must match FaserVersion
#configFlags.GeoModel.Align.Dynamic = False
configFlags.lock()
......