Commit c4316198 authored by Niels Van Eldik's avatar Niels Van Eldik Committed by Graeme Stewart
Browse files

IMuonCreatorTool simplify interface (MuonCombinedToolInterfaces-01-02-04)

	* IMuonCreatorTool simplify interface
	* MuonCombinedToolInterfaces-01-02-04

2014-12-04 Sue Cheatham
	* IMuonCreatorTool fix for slowMuon
	* MuonCombinedToolInterfaces-01-02-03

2014-12-01 Sue Cheatham
	* MuonCreatorTool: add slowMuonContainer
	* MuonCombinedToolInterfaces-01-02-02

2014-10-09 David Quarrie <David.Quarrie@cern.ch>
	* cmt/requirements
		Declare this as a metalibrary for cmake so that its clients have access
		to the libraries and header files of packages that this one depends on
	* Tagged as MuonCombinedToolInterfaces-01-02-01
parent 35a583be
......@@ -12,6 +12,7 @@
#include "MuonCombinedEvent/MuonCandidateCollection.h"
#include "MuonCombinedEvent/InDetCandidateCollection.h"
#include "xAODMuon/MuonContainer.h"
#include "xAODMuon/SlowMuonContainer.h"
#include "xAODTracking/TrackParticleContainer.h"
#include "TrkTrack/TrackCollection.h"
......@@ -21,33 +22,61 @@ namespace MuonCombined {
/** @class IMuonCreatorTool
@brief interface for tools building combined muons from ID and Muon candidates
The tool is capable of writing a large number of different output formats. Whether or not certain outputs
are written is controled using the OutputData struct defined below.
If the pointer to a certain type is non-zero, the container is filled.
The MuonContainer is manditory, all other output types are optional.
@author Niels van Eldik
*/
class IMuonCreatorTool : virtual public IAlgTool {
public:
struct OutputData {
OutputData(xAOD::MuonContainer& container) : muonContainer(&container),
combinedTrackParticleContainer(0),combinedTrackCollection(0),
extrapolatedTrackParticleContainer(0), extrapolatedTrackCollection(0),
xaodSegmentContainer(0), muonSegmentCollection(0),
slowMuonContainer(0) {
}
/** MuonContainer to be filled with the Muon objects */
xAOD::MuonContainer* muonContainer;
/** container for the combined track particles */
xAOD::TrackParticleContainer* combinedTrackParticleContainer;
/** container for the combined tracks */
TrackCollection* combinedTrackCollection;
/** container for the extrapolated track particles */
xAOD::TrackParticleContainer* extrapolatedTrackParticleContainer;
/** container for the extrapolated tracks */
TrackCollection* extrapolatedTrackCollection;
/** container for the xAOD segments from MuGirl */
xAOD::MuonSegmentContainer* xaodSegmentContainer;
/** collection for the segments from MuGirl */
Trk::SegmentCollection* muonSegmentCollection;
/** container for the Slow muon content */
xAOD::SlowMuonContainer* slowMuonContainer;
};
static const InterfaceID& interfaceID( ) ;
/**IMuonCreatorTool interface: build muons from ID and MS candidates */
virtual void create( const MuonCandidateCollection* muonCandidates, const InDetCandidateCollection* inDetCandidates,
xAOD::MuonContainer& container,
xAOD::TrackParticleContainer* combinedTrackParticleContainer=0, TrackCollection* combinedTrackCollection=0,
xAOD::TrackParticleContainer* extrapolatedTrackParticleContainer=0, TrackCollection* extrapolatedTrackCollection=0,
xAOD::MuonSegmentContainer* xaodSegments=0, Trk::SegmentCollection* muonSegmentCollection=0
) const = 0;
OutputData& outputData ) const = 0;
/** create a muon from a muon candidate */
virtual xAOD::Muon* create( const MuonCandidate& candidate, xAOD::MuonContainer& container,
xAOD::TrackParticleContainer* extrapolatedTrackParticleContainer=0, TrackCollection* extrapolatedTrackCollection=0
) const = 0;
virtual xAOD::Muon* create( const MuonCandidate& candidate, OutputData& outputData ) const = 0;
/** create a muon from a muon candidate */
virtual xAOD::Muon* create( const InDetCandidate& candidate, xAOD::MuonContainer& container,
xAOD::TrackParticleContainer* combinedTrackParticleContainer=0, TrackCollection* combinedTrackCollection=0,
xAOD::TrackParticleContainer* extrapolatedTrackParticleContainer=0, TrackCollection* extrapolatedTrackCollection=0,
xAOD::MuonSegmentContainer* xaodSegments=0, Trk::SegmentCollection* muonSegmentCollection=0 ) const = 0;
virtual xAOD::Muon* create( const InDetCandidate& candidate, OutputData& outputData ) const = 0;
};
......
......@@ -11,3 +11,8 @@ use TrkTrack TrkTrack-* Tracking/TrkEvent
use TrkParameters TrkParameters-* Tracking/TrkEvent
use xAODTracking xAODTracking-* Event/xAOD
use xAODMuon xAODMuon-* Event/xAOD
# Declare this package as a cmake metalibrary in order to allow its clients to access the
# libraries and header files from packages that this one depends on. Transparent to CMT.
apply_pattern cmake_add_command command=metalibrary
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment