CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Classes | Public Member Functions | Private Types | Private Member Functions | Static Private Member Functions | Private Attributes
TrackClusterSplitter Class Reference
Inheritance diagram for TrackClusterSplitter:
edm::stream::EDProducer<> edm::stream::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Classes

struct  ClusterWithTracks
 
class  FindCluster
 
struct  TrackAndState
 

Public Member Functions

void produce (edm::Event &iEvent, const edm::EventSetup &iSetup) override
 
 TrackClusterSplitter (const edm::ParameterSet &iConfig)
 
 ~TrackClusterSplitter ()
 
- 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 ()
 

Private Types

typedef std::pair< uint32_t,
EncodedEventId
SimHitIdpr
 
typedef boost::sub_range
< std::vector
< SiPixelClusterWithTracks > > 
SiPixelClustersWithTracks
 
typedef ClusterWithTracks
< SiPixelCluster
SiPixelClusterWithTracks
 
typedef boost::sub_range
< std::vector
< SiStripClusterWithTracks > > 
SiStripClustersWithTracks
 
typedef ClusterWithTracks
< SiStripCluster
SiStripClusterWithTracks
 

Private Member Functions

template<>
const SiPixelClustergetCluster (const TrackingRecHit *hit)
 
template<>
const SiStripClustergetCluster (const TrackingRecHit *hit)
 
template<>
const SiStripClustergetCluster (const TrackingRecHit *hit)
 
template<>
const SiPixelClustergetCluster (const TrackingRecHit *hit)
 
template<typename Cluster >
void markClusters (std::map< uint32_t, boost::sub_range< std::vector< ClusterWithTracks< Cluster > > > > &map, const TrackingRecHit *hit, const reco::Track *track, const TrajectoryStateOnSurface &tsos) const
 
template<typename Cluster >
void splitCluster (const ClusterWithTracks< Cluster > &cluster, const GlobalVector &dir, typename edmNew::DetSetVector< Cluster >::FastFiller &output, DetId detId) const
 
template<>
void splitCluster (const SiPixelClusterWithTracks &cluster, const GlobalVector &dir, edmNew::DetSetVector< SiPixelCluster >::FastFiller &output, DetId detId) const
 
template<>
void splitCluster (const SiStripClusterWithTracks &cluster, const GlobalVector &dir, edmNew::DetSetVector< SiStripCluster >::FastFiller &output, DetId detId) const
 
template<>
void splitCluster (const SiStripClusterWithTracks &c, const GlobalVector &vtx, edmNew::DetSetVector< SiStripCluster >::FastFiller &output, DetId detId) const
 
template<>
void splitCluster (const SiPixelClusterWithTracks &c, const GlobalVector &vtx, edmNew::DetSetVector< SiPixelCluster >::FastFiller &output, DetId detId) const
 
template<typename Cluster >
std::auto_ptr
< edmNew::DetSetVector
< Cluster > > 
splitClusters (const std::map< uint32_t, boost::sub_range< std::vector< ClusterWithTracks< Cluster > > > > &input, const reco::Vertex &vtx) const
 

Static Private Member Functions

template<typename C >
static const C * equalClusters (const C &c1, const C &c2)
 
template<typename C >
static const C * getCluster (const TrackingRecHit *hit)
 

Private Attributes

std::vector
< SiPixelClusterWithTracks
allSiPixelClusters
 working data More...
 
std::vector
< SiStripClusterWithTracks
allSiStripClusters
 
edm::ESHandle
< GlobalTrackingGeometry
geometry_
 
std::unique_ptr
< TrackerHitAssociator
hitAssociator
 
edm::ESHandle< MagneticFieldmagfield_
 
edm::EDGetTokenT
< edmNew::DetSetVector
< SiPixelCluster > > 
pixelClusters_
 
edm::Handle< edm::DetSetVector
< PixelDigiSimLink > > 
pixeldigisimlink
 
edm::EDGetTokenT
< edm::DetSetVector
< PixelDigiSimLink > > 
pixeldigisimlinkToken
 
edm::ESHandle< Propagatorpropagator_
 
std::string propagatorName_
 
bool simSplitPixel_
 
bool simSplitStrip_
 
std::map< uint32_t,
SiPixelClustersWithTracks
siPixelDetsWithClusters
 
std::map< uint32_t,
SiStripClustersWithTracks
siStripDetsWithClusters
 
edm::EDGetTokenT
< edmNew::DetSetVector
< SiStripCluster > > 
stripClusters_
 
edm::Handle< edm::DetSetVector
< StripDigiSimLink > > 
stripdigisimlink
 
edm::EDGetTokenT
< edm::DetSetVector
< StripDigiSimLink > > 
stripdigisimlinkToken
 
std::vector
< SiPixelTemplateStore2D
thePixelTemp2D_
 
std::vector< SiPixelTemplateStorethePixelTemp_
 
std::vector< SiStripTemplateStoretheStripTemp_
 
bool tmpSplitPixel_
 
bool tmpSplitStrip_
 
TrackerHitAssociator::Config trackerHitAssociatorConfig_
 
edm::EDGetTokenT< std::vector
< reco::Track > > 
tracks_
 
edm::EDGetTokenT
< TrajTrackAssociationCollection
trajTrackAssociations_
 
bool useStraightTracks_
 
bool useTrajectories_
 
edm::EDGetTokenT< std::vector
< reco::Vertex > > 
vertices_
 

Additional Inherited Members

- 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
 
- 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

Definition at line 64 of file TrackClusterSplitter.cc.

Member Typedef Documentation

typedef std::pair<uint32_t, EncodedEventId> TrackClusterSplitter::SimHitIdpr
private

Definition at line 153 of file TrackClusterSplitter.cc.

typedef boost::sub_range<std::vector<SiPixelClusterWithTracks> > TrackClusterSplitter::SiPixelClustersWithTracks
private

Definition at line 148 of file TrackClusterSplitter.cc.

Definition at line 143 of file TrackClusterSplitter.cc.

typedef boost::sub_range<std::vector<SiStripClusterWithTracks> > TrackClusterSplitter::SiStripClustersWithTracks
private

Definition at line 149 of file TrackClusterSplitter.cc.

Definition at line 144 of file TrackClusterSplitter.cc.

Constructor & Destructor Documentation

TrackClusterSplitter::TrackClusterSplitter ( const edm::ParameterSet iConfig)

Definition at line 236 of file TrackClusterSplitter.cc.

TrackClusterSplitter::~TrackClusterSplitter ( )

Definition at line 330 of file TrackClusterSplitter.cc.

Member Function Documentation

template<typename C >
static const C* TrackClusterSplitter::equalClusters ( const C &  c1,
const C &  c2 
)
inlinestaticprivate

Definition at line 161 of file TrackClusterSplitter.cc.

template<typename C >
static const C* TrackClusterSplitter::getCluster ( const TrackingRecHit hit)
staticprivate
template<>
const SiPixelCluster* TrackClusterSplitter::getCluster ( const TrackingRecHit hit)
private
template<>
const SiStripCluster* TrackClusterSplitter::getCluster ( const TrackingRecHit hit)
private
template<>
const SiStripCluster* TrackClusterSplitter::getCluster ( const TrackingRecHit hit)
private

Definition at line 304 of file TrackClusterSplitter.cc.

template<>
const SiPixelCluster* TrackClusterSplitter::getCluster ( const TrackingRecHit hit)
private

Definition at line 320 of file TrackClusterSplitter.cc.

template<typename Cluster >
void TrackClusterSplitter::markClusters ( std::map< uint32_t, boost::sub_range< std::vector< ClusterWithTracks< Cluster > > > > &  map,
const TrackingRecHit hit,
const reco::Track track,
const TrajectoryStateOnSurface tsos 
) const
private

Definition at line 531 of file TrackClusterSplitter.cc.

void TrackClusterSplitter::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
overridevirtual

Implements edm::stream::EDProducerBase.

Definition at line 335 of file TrackClusterSplitter.cc.

template<typename Cluster >
void TrackClusterSplitter::splitCluster ( const ClusterWithTracks< Cluster > &  cluster,
const GlobalVector dir,
typename edmNew::DetSetVector< Cluster >::FastFiller &  output,
DetId  detId 
) const
private

Definition at line 588 of file TrackClusterSplitter.cc.

template<>
void TrackClusterSplitter::splitCluster ( const SiPixelClusterWithTracks cluster,
const GlobalVector dir,
edmNew::DetSetVector< SiPixelCluster >::FastFiller &  output,
DetId  detId 
) const
private
template<>
void TrackClusterSplitter::splitCluster ( const SiStripClusterWithTracks cluster,
const GlobalVector dir,
edmNew::DetSetVector< SiStripCluster >::FastFiller &  output,
DetId  detId 
) const
private
template<>
void TrackClusterSplitter::splitCluster ( const SiStripClusterWithTracks c,
const GlobalVector vtx,
edmNew::DetSetVector< SiStripCluster >::FastFiller &  output,
DetId  detId 
) const
private

Definition at line 598 of file TrackClusterSplitter.cc.

template<>
void TrackClusterSplitter::splitCluster ( const SiPixelClusterWithTracks c,
const GlobalVector vtx,
edmNew::DetSetVector< SiPixelCluster >::FastFiller &  output,
DetId  detId 
) const
private

Definition at line 1228 of file TrackClusterSplitter.cc.

template<typename Cluster >
std::auto_ptr< edmNew::DetSetVector< Cluster > > TrackClusterSplitter::splitClusters ( const std::map< uint32_t, boost::sub_range< std::vector< ClusterWithTracks< Cluster > > > > &  input,
const reco::Vertex vtx 
) const
private

Definition at line 554 of file TrackClusterSplitter.cc.

Member Data Documentation

std::vector<SiPixelClusterWithTracks> TrackClusterSplitter::allSiPixelClusters
private

working data

Definition at line 206 of file TrackClusterSplitter.cc.

std::vector<SiStripClusterWithTracks> TrackClusterSplitter::allSiStripClusters
private

Definition at line 209 of file TrackClusterSplitter.cc.

edm::ESHandle<GlobalTrackingGeometry> TrackClusterSplitter::geometry_
private

Definition at line 109 of file TrackClusterSplitter.cc.

std::unique_ptr<TrackerHitAssociator> TrackClusterSplitter::hitAssociator
private

Definition at line 155 of file TrackClusterSplitter.cc.

edm::ESHandle<MagneticField> TrackClusterSplitter::magfield_
private

Definition at line 107 of file TrackClusterSplitter.cc.

edm::EDGetTokenT<edmNew::DetSetVector<SiPixelCluster> > TrackClusterSplitter::pixelClusters_
private

Definition at line 73 of file TrackClusterSplitter.cc.

edm::Handle< edm::DetSetVector<PixelDigiSimLink> > TrackClusterSplitter::pixeldigisimlink
private

Definition at line 112 of file TrackClusterSplitter.cc.

edm::EDGetTokenT< edm::DetSetVector<PixelDigiSimLink> > TrackClusterSplitter::pixeldigisimlinkToken
private

Definition at line 102 of file TrackClusterSplitter.cc.

edm::ESHandle<Propagator> TrackClusterSplitter::propagator_
private

Definition at line 108 of file TrackClusterSplitter.cc.

std::string TrackClusterSplitter::propagatorName_
private

Definition at line 106 of file TrackClusterSplitter.cc.

bool TrackClusterSplitter::simSplitPixel_
private

Definition at line 76 of file TrackClusterSplitter.cc.

bool TrackClusterSplitter::simSplitStrip_
private

Definition at line 77 of file TrackClusterSplitter.cc.

std::map<uint32_t, SiPixelClustersWithTracks> TrackClusterSplitter::siPixelDetsWithClusters
private

Definition at line 207 of file TrackClusterSplitter.cc.

std::map<uint32_t, SiStripClustersWithTracks> TrackClusterSplitter::siStripDetsWithClusters
private

Definition at line 210 of file TrackClusterSplitter.cc.

edm::EDGetTokenT<edmNew::DetSetVector<SiStripCluster> > TrackClusterSplitter::stripClusters_
private

Definition at line 74 of file TrackClusterSplitter.cc.

edm::Handle< edm::DetSetVector<StripDigiSimLink> > TrackClusterSplitter::stripdigisimlink
private

Definition at line 115 of file TrackClusterSplitter.cc.

edm::EDGetTokenT< edm::DetSetVector<StripDigiSimLink> > TrackClusterSplitter::stripdigisimlinkToken
private

Definition at line 103 of file TrackClusterSplitter.cc.

std::vector< SiPixelTemplateStore2D > TrackClusterSplitter::thePixelTemp2D_
private

Definition at line 121 of file TrackClusterSplitter.cc.

std::vector< SiPixelTemplateStore > TrackClusterSplitter::thePixelTemp_
private

Definition at line 120 of file TrackClusterSplitter.cc.

std::vector< SiStripTemplateStore > TrackClusterSplitter::theStripTemp_
private

Definition at line 123 of file TrackClusterSplitter.cc.

bool TrackClusterSplitter::tmpSplitPixel_
private

Definition at line 78 of file TrackClusterSplitter.cc.

bool TrackClusterSplitter::tmpSplitStrip_
private

Definition at line 79 of file TrackClusterSplitter.cc.

TrackerHitAssociator::Config TrackClusterSplitter::trackerHitAssociatorConfig_
private

Definition at line 154 of file TrackClusterSplitter.cc.

edm::EDGetTokenT<std::vector<reco::Track> > TrackClusterSplitter::tracks_
private

Definition at line 97 of file TrackClusterSplitter.cc.

edm::EDGetTokenT<TrajTrackAssociationCollection > TrackClusterSplitter::trajTrackAssociations_
private

Definition at line 96 of file TrackClusterSplitter.cc.

bool TrackClusterSplitter::useStraightTracks_
private

Definition at line 87 of file TrackClusterSplitter.cc.

bool TrackClusterSplitter::useTrajectories_
private

Definition at line 93 of file TrackClusterSplitter.cc.

edm::EDGetTokenT<std::vector<reco::Vertex> > TrackClusterSplitter::vertices_
private

Definition at line 100 of file TrackClusterSplitter.cc.