CMS 3D CMS Logo

Public Member Functions | Private Member Functions | Private Attributes

StandAloneMuonProducer Class Reference

#include <StandAloneMuonProducer.h>

Inheritance diagram for StandAloneMuonProducer:
edm::EDProducer edm::ProducerBase edm::ProductRegistryHelper

List of all members.

Public Member Functions

virtual void produce (edm::Event &, const edm::EventSetup &)
 reconstruct muons
 StandAloneMuonProducer (const edm::ParameterSet &)
 constructor with config
virtual ~StandAloneMuonProducer ()
 destructor

Private Member Functions

void setAlias (std::string alias)

Private Attributes

std::string theAlias
edm::InputTag theSeedCollectionLabel
 MuonSeed Collection Label.
MuonServiceProxytheService
 the event setup proxy, it takes care the services update
MuonTrackFindertheTrackFinder
 the track finder

Detailed Description

StandAlone muon reconstructor: reconstructs muons using DT, CSC and RPC information,
starting from internal seeds (L2 muon track segments).

Date:
2010/06/11 00:17:04
Revision:
1.32
Author:
R.Bellan - INFN TO

StandAlone muon reconstructor: reconstructs muons using DT, CSC and RPC information,
starting from internal seeds (L2 muon track segments).

Date:
2010/02/11 00:14:31
Revision:
1.9
Author:
R.Bellan - INFN TO

Definition at line 26 of file StandAloneMuonProducer.h.


Constructor & Destructor Documentation

StandAloneMuonProducer::StandAloneMuonProducer ( const edm::ParameterSet parameterSet)

constructor with config

Definition at line 48 of file StandAloneMuonProducer.cc.

References edm::ParameterSet::getParameter(), LogTrace, and MuonServiceProxy_cff::MuonServiceProxy.

                                                                              {
  LogTrace("Muon|RecoMuon|StandAloneMuonProducer")<<"constructor called"<<endl;

  // Parameter set for the Builder
  ParameterSet trajectoryBuilderParameters = parameterSet.getParameter<ParameterSet>("STATrajBuilderParameters");
  
  // MuonSeed Collection Label
  theSeedCollectionLabel = parameterSet.getParameter<InputTag>("InputObjects");
  
  // service parameters
  ParameterSet serviceParameters = parameterSet.getParameter<ParameterSet>("ServiceParameters");
  
  // TrackLoader parameters
  ParameterSet trackLoaderParameters = parameterSet.getParameter<ParameterSet>("TrackLoaderParameters");
  
  // the services
  theService = new MuonServiceProxy(serviceParameters);

  MuonTrackLoader * trackLoader = new MuonTrackLoader(trackLoaderParameters,theService);
  MuonTrajectoryBuilder * trajectoryBuilder = 0;
  // instantiate the concrete trajectory builder in the Track Finder
  string typeOfBuilder = parameterSet.getParameter<string>("MuonTrajectoryBuilder");
  if(typeOfBuilder == "StandAloneMuonTrajectoryBuilder")
    trajectoryBuilder = new StandAloneMuonTrajectoryBuilder(trajectoryBuilderParameters,theService);
  else if(typeOfBuilder == "DirectMuonTrajectoryBuilder")
    trajectoryBuilder = new DirectMuonTrajectoryBuilder(trajectoryBuilderParameters,theService);
  else if(typeOfBuilder == "Exhaustive")
    trajectoryBuilder = new ExhaustiveMuonTrajectoryBuilder(trajectoryBuilderParameters,theService);
  else{
    LogWarning("Muon|RecoMuon|StandAloneMuonProducer") << "No Trajectory builder associated with "<<typeOfBuilder
                                                       << ". Falling down to the default (StandAloneMuonTrajectoryBuilder)";
     trajectoryBuilder = new StandAloneMuonTrajectoryBuilder(trajectoryBuilderParameters,theService);
  }
  theTrackFinder = new MuonTrackFinder(trajectoryBuilder, trackLoader);

  setAlias(parameterSet.getParameter<std::string>("@module_label"));
  
  produces<reco::TrackCollection>().setBranchAlias(theAlias + "Tracks");
  produces<reco::TrackCollection>("UpdatedAtVtx").setBranchAlias(theAlias + "UpdatedAtVtxTracks");
  produces<TrackingRecHitCollection>().setBranchAlias(theAlias + "RecHits");
  produces<reco::TrackExtraCollection>().setBranchAlias(theAlias + "TrackExtras");
  produces<reco::TrackToTrackMap>().setBranchAlias(theAlias + "TrackToTrackMap");
  
  produces<std::vector<Trajectory> >().setBranchAlias(theAlias + "Trajectories");
  produces<TrajTrackAssociationCollection>().setBranchAlias(theAlias + "TrajToTrackMap");
}
StandAloneMuonProducer::~StandAloneMuonProducer ( ) [virtual]

destructor

Definition at line 96 of file StandAloneMuonProducer.cc.

References LogTrace.

                                               {
  LogTrace("Muon|RecoMuon|StandAloneMuonProducer")<<"StandAloneMuonProducer destructor called"<<endl;
  if (theService) delete theService;
  if (theTrackFinder) delete theTrackFinder;
}

Member Function Documentation

void StandAloneMuonProducer::produce ( edm::Event event,
const edm::EventSetup eventSetup 
) [virtual]

reconstruct muons

Implements edm::EDProducer.

Definition at line 103 of file StandAloneMuonProducer.cc.

References LogTrace, and metname.

                                                                              {
  const std::string metname = "Muon|RecoMuon|StandAloneMuonProducer";
  
  LogTrace(metname)<<endl<<endl<<endl;
  LogTrace(metname)<<"Stand Alone Muon Reconstruction Started"<<endl;

  // Take the seeds container
  LogTrace(metname)<<"Taking the seeds: "<<theSeedCollectionLabel.label()<<endl;
  Handle<View<TrajectorySeed> > seeds; 
  event.getByLabel(theSeedCollectionLabel,seeds);

  // Update the services
  theService->update(eventSetup);
  NavigationSetter setter(*theService->muonNavigationSchool());

  // Reconstruct 
  LogTrace(metname)<<"Track Reconstruction"<<endl;
  theTrackFinder->reconstruct(seeds,event);
 
  LogTrace(metname)<<"Event loaded"
                   <<"================================"
                   <<endl<<endl;
}
void StandAloneMuonProducer::setAlias ( std::string  alias) [inline, private]

Definition at line 52 of file StandAloneMuonProducer.h.

References ExpressReco_HICollisions_FallBack::alias, and theAlias.

                                  {
    alias.erase( alias.size() - 1, alias.size() );
    theAlias=alias;
  }

Member Data Documentation

std::string StandAloneMuonProducer::theAlias [private]

Definition at line 50 of file StandAloneMuonProducer.h.

Referenced by setAlias().

MuonSeed Collection Label.

Definition at line 42 of file StandAloneMuonProducer.h.

the event setup proxy, it takes care the services update

Definition at line 48 of file StandAloneMuonProducer.h.

the track finder

Definition at line 45 of file StandAloneMuonProducer.h.