Child pages
  • L3 Muon Structure
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

Flow Process

 

The flow of processes defined in the HLT menu are as follows:

HLTDoLocalPixelSequence
HLTDoLocalStripSequence

hltL3TrajSeedOIState
hltL3TrackCandidateFromL2OIState
hltL3TkTracksFromL2OIState
hltL3MuonsOIState

hltL3TrajSeedOIHit
hltL3TrackCandidateFromL2OIHit
hltL3TkTracksFromL2OIHit
hltL3MuonsOIHit

hltL3TkFromL2OICombination

hltL3TrajSeedIOHit
hltL3TrackCandidateFromL2IOHit
hltL3TkTracksFromL2IOHit
hltL3MuonsIOHit

hltL3TrajectorySeed
hltL3TrackCandidateFromL2

 

After the local pixel and strip sequences the three different seeding algorithms are visited in the sequence: OIState, OIHit and IOHit.
The steps for each algorithm is described below starting with the creation of L3 muon trajectory seeds from the hltL3TrajSeed.

hltL3TrajSeed


hltL3TrajSeed runs cms.EDProducer( "TSGFromL2Muon" ): RecoMuon/TrackerSeedGenerator/plugins/TSGFromL2Muon.cc

In the TSGFromL2Muon constructor if MuonTrackingRegionBuilder pset is not empty then create a new MuonTrackingRegionBuilder: theRegionBuilder
Assign theTkSeedGenerator = TrackerSeedGeneratorFactory::get()->create(seedGenName, seedGenPSet). Where seedGenName = DualByL2TSG.
If TrackerSeedCleaner pset is not empty then create a new TrackerSeedCleaner: theSeedCleaner

 

hltL3TrackCandidateFromL2


hltL3TrackCandidateFromL2 run cms.EDProducer("CkfTrajectoryMaker"):
RecoTracker/CkfPattern/interface/CkfTrajectoryMaker.h
RecoTracker/CkfPattern/src/CkfTrackCandidateMakerBase.cc

 

hltL3TkTracksFromL2

 

hltL3TkTracksFromL2 runs cms.EDProducer("TrackProducer")

 

hltL3Muons


hltL3Muons runs cms.EDProducer("L3MuonProducer"): RecoMuon/L3MuonProducer/src/L3MuonProducer.cc
From the L3MuonProducer constructor we create a new MuonTrackLoader and L3MuonTrajectoryBuilder using the trackLoaderParameters and trajectoryBuilderParameters respectively.
Then we create a new MuonTrackFinder using the newly created L3MuonTrajectoryBuilder and MuonTrackLoader.
In the MuonTrackFinder constructor we create a new MuonTrajectoryCleaner.
After this we run produces

In L3MuonProducer::produce a vector of MuonTrajectoryBuilder::TrackCand's is created: L2TrackCands.
A loop over the TrajTrackAssociationCollection: L2AssoMap is then performed.


In MuonTrackFinder::reconstruct:
Loop over a vector of TrackCand, create a CandidateContainer (muonCands_temp) using the theTrajBuilder->trajectories(TrackCand). This calls L3MuonTrajectoryBuilder->trajectories function. L3MuonTrajectoryBuilder::trajectories() then calls L3MuonTrajectoryBuilder::makeTkCandCollection() in which the filters are applied.
Then store CandidateContainer (muonCands_temp) in muonCandidates

Additional notes

 

Typedefs to be aware of:
RecoMuon/TrackingTools/interface/MuonTrajectoryBuilder.h:
typedef std::pair<const Trajectory*, reco::TrackRef> TrackCand;

TrackingTools/PatternTools/interface/TrajTrackAssociation.h
typedef edm::AssociationMap<edm::OneToOne< std::vector<Trajectory> ,reco::TrackCollection,unsigned short> > TrajTrackAssociationCollection;

RecoMuon/TrackerSeedGenerator/interface/TrackerSeedGeneratorFactory.h
typedef edmplugin::PluginFactory< TrackerSeedGenerator* (const edm::ParameterSet&,edm::ConsumesCollector& iC) > TrackerSeedGeneratorFactory;

Note:
TkSeedGenerator = cms.PSet(
PSetNames = cms.vstring( 'skipTSG',
'iterativeTSG' ),
L3TkCollectionA = cms.InputTag( "hltL3MuonsOIState" ),
...)
Stops this processes from running

 

  • No labels