CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Types | Public Member Functions | Public Attributes | Private Attributes
TrajectorySeedProducer Class Reference

#include <TrajectorySeedProducer.h>

Inheritance diagram for TrajectorySeedProducer:
edm::stream::EDProducer<> edm::stream::EDProducer<> edm::stream::EDProducerBase edm::stream::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper edm::ProductRegistryHelper

Public Types

typedef std::vector
< std::unique_ptr
< TrackingRegion > > 
Regions
 
- Public Types inherited from edm::stream::EDProducer<>
typedef CacheContexts< T...> CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T...> HasAbility
 
typedef
CacheTypes::LuminosityBlockCache 
LuminosityBlockCache
 
typedef
LuminosityBlockContextT
< LuminosityBlockCache,
RunCache, GlobalCache
LuminosityBlockContext
 
typedef
CacheTypes::LuminosityBlockSummaryCache 
LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache,
GlobalCache
RunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 
- Public Types inherited from edm::stream::EDProducerBase
typedef EDProducerAdaptorBase ModuleType
 
- Public Types inherited from edm::ProducerBase
typedef
ProductRegistryHelper::TypeLabelList 
TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 

Public Member Functions

bool compatibleWithBeamSpot (const GlobalPoint &gpos1, const GlobalPoint &gpos2, double error, bool forward) const
 
bool compatibleWithPrimaryVertex (const GlobalPoint &gpos1, const GlobalPoint &gpos2, double error, bool forward) const
 
const SeedingNode
< TrackingLayer > * 
insertHit (const std::vector< TrajectorySeedHitCandidate > &trackerRecHits, std::vector< int > &hitIndicesInTree, const SeedingNode< TrackingLayer > *node, unsigned int trackerHit) const
 
bool isHitOnLayer (const TrajectorySeedHitCandidate &trackerRecHit, const TrackingLayer &layer) const
 
virtual std::vector< unsigned int > iterateHits (unsigned int start, const std::vector< TrajectorySeedHitCandidate > &trackerRecHits, std::vector< int > hitIndicesInTree, bool processSkippedHits) const
 method tries to insert all hits into the tree structure. More...
 
bool pass2HitsCuts (const TrajectorySeedHitCandidate &hit1, const TrajectorySeedHitCandidate &hit2) const
 
bool passHitTuplesCuts (const SeedingNode< TrackingLayer > &seedingNode, const std::vector< TrajectorySeedHitCandidate > &trackerRecHits, const std::vector< int > &hitIndicesInTree, const TrajectorySeedHitCandidate &currentTrackerHit) const
 method checks if a SimTrack fulfills the quality requirements. More...
 
virtual void produce (edm::Event &e, const edm::EventSetup &es)
 
virtual void produce (edm::Event &e, const edm::EventSetup &es)
 
bool testWithRegions (const TrajectorySeedHitCandidate &innerHit, const TrajectorySeedHitCandidate &outerHit) const
 method inserts hit into the tree structure at an empty position. More...
 
 TrajectorySeedProducer (const edm::ParameterSet &conf)
 
 TrajectorySeedProducer (const edm::ParameterSet &conf)
 
virtual ~TrajectorySeedProducer ()
 
- Public Member Functions inherited from edm::stream::EDProducer<>
 EDProducer ()=default
 
- Public Member Functions inherited from edm::stream::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
virtual ~EDProducerBase ()
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 ProducerBase ()
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription
const &)> 
registrationCallback () const
 used by the fwk to register list of products More...
 
virtual ~ProducerBase ()
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
 EDConsumerBase ()
 
ProductHolderIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
std::vector
< ProductHolderIndexAndSkipBit >
const & 
itemsToGetFromEvent () const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesDependentUpon (std::string const &iProcessName, std::string const &iModuleLabel, bool iPrint, std::vector< char const * > &oModuleLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
bool registeredToConsume (ProductHolderIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductHolderIndexHelper const &)
 
virtual ~EDConsumerBase ()
 

Public Attributes

const edm::EventSetupes_
 
const MeasurementTrackerEventmeasurementTrackerEvent
 
edm::EDGetTokenT
< MeasurementTrackerEvent
measurementTrackerEventToken
 
Regions regions
 

Private Attributes

SeedingTree< TrackingLayer_seedingTree
 
const reco::BeamSpotbeamSpot
 
bool hitMasks_exists
 
edm::EDGetTokenT< std::vector
< bool > > 
hitMasksToken
 
const MagneticFieldmagneticField
 
const MagneticFieldMapmagneticFieldMap
 
std::string measurementTrackerLabel
 
unsigned int minLayersCrossed
 
double nSigmaZ
 
double originHalfLength
 
double originRadius
 
const reco::VertexCollectionprimaryVertices
 
double ptMin
 
edm::EDGetTokenT
< FastTrackerRecHitCombinationCollection
recHitCombinationsToken
 
std::unique_ptr< SeedCreatorseedCreator
 
std::vector< std::vector
< TrackingLayer > > 
seedingLayers
 
double simTrack_maxD0
 
double simTrack_maxZ0
 
double simTrack_pTMin
 
bool skipSeedFinderSelector
 
bool testBeamspotCompatibility
 
bool testPrimaryVertexCompatibility
 
std::shared_ptr
< PropagatorWithMaterial
thePropagator
 
std::unique_ptr
< TrackingRegionProducer
theRegionProducer
 
const TrackerGeometrytrackerGeometry
 
const TrackerTopologytrackerTopology
 

Additional Inherited Members

- Static Public Member Functions inherited from edm::stream::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Detailed Description

NOTE: what is called here 'FastTrackPreCandidate' is currently still known as 'FastTrackerRecHitCombination'

TrajectorySeedProducer emulates the reconstruction of TrajectorySeeds in FastSim.

The input data is a list of FastTrackPreCandidates. (input data are configured through the parameter 'src') In each given FastTrackPreCandidate, TrajectorySeedProducer searches for one combination of hits that matches all given seed requirements, (see parameters 'layerList','regionFactoryPSet') In that process it respects the order of the hits in the FastTrackPreCandidate. When such combination is found, a TrajectorySeed is reconstructed. Optionally, one can specify a list of hits to be ignored by TrajectorySeedProducer. (see parameter 'hitMasks')

The output data is the list of reconstructed TrajectorySeeds.

Definition at line 62 of file TrajectorySeedProducer.cc.

Member Typedef Documentation

typedef std::vector<std::unique_ptr<TrackingRegion> > TrajectorySeedProducer::Regions

Definition at line 192 of file TrajectorySeedProducer.h.

Constructor & Destructor Documentation

TrajectorySeedProducer::TrajectorySeedProducer ( const edm::ParameterSet conf)

region producer

Definition at line 94 of file TrajectorySeedProducer.cc.

TrajectorySeedProducer::TrajectorySeedProducer ( const edm::ParameterSet conf)
virtual TrajectorySeedProducer::~TrajectorySeedProducer ( )
inlinevirtual

Definition at line 70 of file TrajectorySeedProducer.h.

Member Function Documentation

bool TrajectorySeedProducer::compatibleWithBeamSpot ( const GlobalPoint gpos1,
const GlobalPoint gpos2,
double  error,
bool  forward 
) const

Check that the seed is compatible with a track coming from within a cylinder of radius originRadius, with a decent pT.

bool TrajectorySeedProducer::compatibleWithPrimaryVertex ( const GlobalPoint gpos1,
const GlobalPoint gpos2,
double  error,
bool  forward 
) const

Check that the seed is compatible with a track coming from within a cylinder of radius originRadius, with a decent pT.

const SeedingNode<TrackingLayer>* TrajectorySeedProducer::insertHit ( const std::vector< TrajectorySeedHitCandidate > &  trackerRecHits,
std::vector< int > &  hitIndicesInTree,
const SeedingNode< TrackingLayer > *  node,
unsigned int  trackerHit 
) const
bool TrajectorySeedProducer::isHitOnLayer ( const TrajectorySeedHitCandidate trackerRecHit,
const TrackingLayer layer 
) const
inline

Definition at line 152 of file TrajectorySeedProducer.h.

virtual std::vector<unsigned int> TrajectorySeedProducer::iterateHits ( unsigned int  start,
const std::vector< TrajectorySeedHitCandidate > &  trackerRecHits,
std::vector< int >  hitIndicesInTree,
bool  processSkippedHits 
) const
virtual

method tries to insert all hits into the tree structure.

Parameters
startindex where to begin insertion. Important for recursion.
trackerRecHitslist of all TrackerRecHits.
hitIndicesInTreehit indices which translates the tree node to the hits in trackerRecHits.
currentTrackerHithit which is tested.
Returns
list of hit indices which form a found seed. Returns empty list if no seed was found.
bool TrajectorySeedProducer::pass2HitsCuts ( const TrajectorySeedHitCandidate hit1,
const TrajectorySeedHitCandidate hit2 
) const
bool TrajectorySeedProducer::passHitTuplesCuts ( const SeedingNode< TrackingLayer > &  seedingNode,
const std::vector< TrajectorySeedHitCandidate > &  trackerRecHits,
const std::vector< int > &  hitIndicesInTree,
const TrajectorySeedHitCandidate currentTrackerHit 
) const
inline

method checks if a SimTrack fulfills the quality requirements.

Parameters
theSimTrackthe SimTrack to be tested.
theSimVertexthe associated SimVertex of the SimTrack.
Returns
true if a track fulfills the requirements.method checks if a TrajectorySeedHitCandidate fulfills the quality requirements.
Parameters
seedingNodetree node at which the hit will be inserted.
trackerRecHitslist of all TrackerRecHits.
hitIndicesInTreehit indices which translates the tree node to the hits in trackerRecHits.
currentTrackerHithit which is tested.
Returns
true if a hit fulfills the requirements.

Definition at line 91 of file TrajectorySeedProducer.h.

virtual void TrajectorySeedProducer::produce ( edm::Event e,
const edm::EventSetup es 
)
virtual
void TrajectorySeedProducer::produce ( edm::Event e,
const edm::EventSetup es 
)
virtual

Implements edm::stream::EDProducerBase.

Definition at line 142 of file TrajectorySeedProducer.cc.

Referenced by JSONExport.JsonExport::export().

bool TrajectorySeedProducer::testWithRegions ( const TrajectorySeedHitCandidate innerHit,
const TrajectorySeedHitCandidate outerHit 
) const

method inserts hit into the tree structure at an empty position.

Parameters
trackerRecHitslist of all TrackerRecHits.
hitIndicesInTreehit indices which translates the tree node to the hits in trackerRecHits. Empty positions are identified with '-1'.
nodewhere to look for an empty position. Important for recursive tree traversing (Breadth-first). Starts with the root.
trackerHithit which is tested.
Returns
pointer if this hit is inserted at a leaf which means that a seed has been found. Returns 'nullptr' otherwise.

Member Data Documentation

SeedingTree< TrackingLayer > TrajectorySeedProducer::_seedingTree
private

Definition at line 75 of file TrajectorySeedProducer.cc.

const reco::BeamSpot* TrajectorySeedProducer::beamSpot
private

Definition at line 61 of file TrajectorySeedProducer.h.

const edm::EventSetup* TrajectorySeedProducer::es_

Definition at line 199 of file TrajectorySeedProducer.h.

bool TrajectorySeedProducer::hitMasks_exists
private

Definition at line 59 of file TrajectorySeedProducer.h.

edm::EDGetTokenT< std::vector< bool > > TrajectorySeedProducer::hitMasksToken
private

Definition at line 70 of file TrajectorySeedProducer.cc.

const MagneticField* TrajectorySeedProducer::magneticField
private

Definition at line 41 of file TrajectorySeedProducer.h.

const MagneticFieldMap* TrajectorySeedProducer::magneticFieldMap
private

Definition at line 42 of file TrajectorySeedProducer.h.

const MeasurementTrackerEvent* TrajectorySeedProducer::measurementTrackerEvent

Definition at line 198 of file TrajectorySeedProducer.h.

edm::EDGetTokenT<MeasurementTrackerEvent> TrajectorySeedProducer::measurementTrackerEventToken

Definition at line 197 of file TrajectorySeedProducer.h.

std::string TrajectorySeedProducer::measurementTrackerLabel
private

Definition at line 79 of file TrajectorySeedProducer.cc.

unsigned int TrajectorySeedProducer::minLayersCrossed
private

Definition at line 51 of file TrajectorySeedProducer.h.

double TrajectorySeedProducer::nSigmaZ
private

Definition at line 57 of file TrajectorySeedProducer.h.

double TrajectorySeedProducer::originHalfLength
private

Definition at line 56 of file TrajectorySeedProducer.h.

double TrajectorySeedProducer::originRadius
private

Definition at line 54 of file TrajectorySeedProducer.h.

const reco::VertexCollection* TrajectorySeedProducer::primaryVertices
private

Definition at line 63 of file TrajectorySeedProducer.h.

double TrajectorySeedProducer::ptMin
private

Definition at line 55 of file TrajectorySeedProducer.h.

edm::EDGetTokenT< FastTrackerRecHitCombinationCollection > TrajectorySeedProducer::recHitCombinationsToken
private

Definition at line 69 of file TrajectorySeedProducer.cc.

Regions TrajectorySeedProducer::regions

Definition at line 193 of file TrajectorySeedProducer.h.

std::unique_ptr< SeedCreator > TrajectorySeedProducer::seedCreator
private

Definition at line 77 of file TrajectorySeedProducer.cc.

std::vector< std::vector< TrackingLayer > > TrajectorySeedProducer::seedingLayers
private

Definition at line 74 of file TrajectorySeedProducer.cc.

double TrajectorySeedProducer::simTrack_maxD0
private

Definition at line 48 of file TrajectorySeedProducer.h.

double TrajectorySeedProducer::simTrack_maxZ0
private

Definition at line 49 of file TrajectorySeedProducer.h.

double TrajectorySeedProducer::simTrack_pTMin
private

Definition at line 47 of file TrajectorySeedProducer.h.

bool TrajectorySeedProducer::skipSeedFinderSelector
private

Definition at line 81 of file TrajectorySeedProducer.cc.

bool TrajectorySeedProducer::testBeamspotCompatibility
private

Definition at line 60 of file TrajectorySeedProducer.h.

bool TrajectorySeedProducer::testPrimaryVertexCompatibility
private

Definition at line 62 of file TrajectorySeedProducer.h.

std::shared_ptr<PropagatorWithMaterial> TrajectorySeedProducer::thePropagator
private

Definition at line 45 of file TrajectorySeedProducer.h.

std::unique_ptr< TrackingRegionProducer > TrajectorySeedProducer::theRegionProducer
private

Definition at line 78 of file TrajectorySeedProducer.cc.

const TrackerGeometry* TrajectorySeedProducer::trackerGeometry
private

Definition at line 43 of file TrajectorySeedProducer.h.

const TrackerTopology* TrajectorySeedProducer::trackerTopology
private

Definition at line 44 of file TrajectorySeedProducer.h.