CMS 3D CMS Logo

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

Public Types

using OmniClusterCollection = std::vector< OmniClusterRef >
 
- Public Types inherited from edm::global::EDProducerBase
typedef EDProducerBase ModuleType
 
- Public Types inherited from edm::ProducerBase
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex >>
 
typedef
ProductRegistryHelper::TypeLabelList 
TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 

Public Member Functions

 ClusterTPAssociationProducer (const edm::ParameterSet &)
 
 ~ClusterTPAssociationProducer () override=default
 
- Public Member Functions inherited from edm::global::EDProducer<>
 EDProducer ()=default
 
 EDProducer (const EDProducer &)=delete
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
EDProduceroperator= (const EDProducer &)=delete
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
bool wantsInputProcessBlocks () const final
 
bool wantsProcessBlocks () const final
 
bool wantsStreamLuminosityBlocks () const final
 
bool wantsStreamRuns () const final
 
- Public Member Functions inherited from edm::global::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
 ~EDProducerBase () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector
< edm::ProductResolverIndex >
const & 
indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector
< edm::ProductResolverIndex >
const & 
putTokenIndexToProductResolverIndex () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription
const &)> 
registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
 ~ProducerBase () noexcept(false) override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
std::vector< ESProxyIndex > const & esGetTokenIndicesVector (edm::Transition iTrans) const
 
std::vector< ESRecordIndex >
const & 
esGetTokenRecordIndicesVector (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector
< ProductResolverIndexAndSkipBit >
const & 
itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::array< std::vector< ModuleDescription const * > *, NumBranchTypes > &modulesAll, std::vector< ModuleProcessName > &modulesInPreviousProcesses, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void selectInputProcessBlocks (ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase)
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
- Static Public Member Functions inherited from edm::global::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 

Private Member Functions

void produce (edm::StreamID, edm::Event &, const edm::EventSetup &) const override
 

Private Attributes

edm::EDGetTokenT
< edmNew::DetSetVector
< Phase2TrackerCluster1D > > 
phase2OTClustersToken_
 
edm::EDGetTokenT
< edmNew::DetSetVector
< SiPixelCluster > > 
pixelClustersToken_
 
edm::EDGetTokenT
< edm::DetSetVector
< PixelDigiSimLink > > 
siphase2OTSimLinksToken_
 
edm::EDGetTokenT
< edm::DetSetVector
< PixelDigiSimLink > > 
sipixelSimLinksToken_
 
edm::EDGetTokenT
< edm::DetSetVector
< StripDigiSimLink > > 
sistripSimLinksToken_
 
edm::EDGetTokenT
< edmNew::DetSetVector
< SiStripCluster > > 
stripClustersToken_
 
bool throwOnMissingCollections_
 
edm::EDGetTokenT
< TrackingParticleCollection
trackingParticleToken_
 

Additional Inherited Members

- Protected Member Functions inherited from edm::ProducerBase
ProducesCollector producesCollector ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
template<BranchType B = InEvent>
EDConsumerBaseAdaptor< B > consumes (edm::InputTag tag) noexcept
 
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 ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<Transition Tr = Transition::Event>
constexpr auto esConsumes () noexcept
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag) noexcept
 
template<Transition Tr = Transition::Event>
ESGetTokenGeneric esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey)
 Used with EventSetupRecord::doGet. More...
 
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)
 
void resetItemsToGetFrom (BranchType iType)
 

Detailed Description

Definition at line 54 of file ClusterTPAssociationProducer.cc.

Member Typedef Documentation

Definition at line 56 of file ClusterTPAssociationProducer.cc.

Constructor & Destructor Documentation

ClusterTPAssociationProducer::ClusterTPAssociationProducer ( const edm::ParameterSet cfg)
explicit

Definition at line 76 of file ClusterTPAssociationProducer.cc.

88  cfg.getParameter<edm::InputTag>("phase2OTClusterSrc"))),
90  consumes<TrackingParticleCollection>(cfg.getParameter<edm::InputTag>("trackingParticleSrc"))),
91  throwOnMissingCollections_(cfg.getParameter<bool>("throwOnMissingCollections")) {
92  produces<ClusterTPAssociation>();
93 }
edm::EDGetTokenT< edmNew::DetSetVector< Phase2TrackerCluster1D > > phase2OTClustersToken_
edm::EDGetTokenT< edm::DetSetVector< PixelDigiSimLink > > siphase2OTSimLinksToken_
edm::EDGetTokenT< edmNew::DetSetVector< SiPixelCluster > > pixelClustersToken_
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
edm::EDGetTokenT< edmNew::DetSetVector< SiStripCluster > > stripClustersToken_
edm::EDGetTokenT< TrackingParticleCollection > trackingParticleToken_
edm::EDGetTokenT< edm::DetSetVector< PixelDigiSimLink > > sipixelSimLinksToken_
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
edm::EDGetTokenT< edm::DetSetVector< StripDigiSimLink > > sistripSimLinksToken_
ClusterTPAssociationProducer::~ClusterTPAssociationProducer ( )
overridedefault

Member Function Documentation

void ClusterTPAssociationProducer::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 95 of file ClusterTPAssociationProducer.cc.

References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::add(), submitPVResolutionJobs::desc, and HLT_FULL_cff::InputTag.

95  {
97  desc.add<edm::InputTag>("simTrackSrc", edm::InputTag("g4SimHits"));
98  desc.add<edm::InputTag>("pixelSimLinkSrc", edm::InputTag("simSiPixelDigis"));
99  desc.add<edm::InputTag>("stripSimLinkSrc", edm::InputTag("simSiStripDigis"));
100  desc.add<edm::InputTag>("phase2OTSimLinkSrc", edm::InputTag("simSiPixelDigis", "Tracker"));
101  desc.add<edm::InputTag>("pixelClusterSrc", edm::InputTag("siPixelClusters"));
102  desc.add<edm::InputTag>("stripClusterSrc", edm::InputTag("siStripClusters"));
103  desc.add<edm::InputTag>("phase2OTClusterSrc", edm::InputTag("siPhase2Clusters"));
104  desc.add<edm::InputTag>("trackingParticleSrc", edm::InputTag("mix", "MergedTrackTruth"));
105  desc.add<bool>("throwOnMissingCollections", true);
106  descriptions.add("tpClusterProducerDefault", desc);
107 }
ParameterDescriptionBase * add(U const &iLabel, T const &value)
void add(std::string const &label, ParameterSetDescription const &psetDescription)
void ClusterTPAssociationProducer::produce ( edm::StreamID  ,
edm::Event iEvent,
const edm::EventSetup es 
) const
overrideprivatevirtual

Implements edm::global::EDProducerBase.

Definition at line 109 of file ClusterTPAssociationProducer.cc.

References SiStripCluster::amplitudes(), edmNew::DetSet< T >::begin(), Phase2TrackerCluster1D::column(), runTauDisplay::eid, edmNew::DetSet< T >::end(), first, Phase2TrackerCluster1D::firstRow(), SiStripCluster::firstStrip(), edm::Event::getByToken(), edm::HandleBase::id(), edm::HandleBase::isValid(), dqmdumpme::last, edmNew::makeRefTo(), SiPixelCluster::maxPixelCol(), SiPixelCluster::maxPixelRow(), SiPixelCluster::minPixelCol(), SiPixelCluster::minPixelRow(), eostools::move(), ConversionStep_cff::phase2OTClusters, phase2OTClustersToken_, HLT_FULL_cff::pixelClusters, pixelClustersToken_, Phase2TrackerDigi::pixelToChannel(), PixelChannelIdentifier::pixelToChannel(), edm::Handle< T >::product(), edm::Event::put(), siphase2OTSimLinksToken_, sipixelSimLinksToken_, sistripSimLinksToken_, Phase2TrackerCluster1D::size(), SiStripCluster::size(), HLT_FULL_cff::stripClusters, stripClustersToken_, throwOnMissingCollections_, and trackingParticleToken_.

109  {
110  // Pixel Cluster
112  bool foundPixelClusters = iEvent.getByToken(pixelClustersToken_, pixelClusters);
113 
114  // Strip Cluster
116  bool foundStripClusters = iEvent.getByToken(stripClustersToken_, stripClusters);
117 
118  // Phase2 Cluster
120  bool foundPhase2OTClusters = iEvent.getByToken(phase2OTClustersToken_, phase2OTClusters);
121 
122  // Pixel DigiSimLink
124  // iEvent.getByLabel(_pixelSimLinkSrc, sipixelSimLinks);
125  auto pixelSimLinksFound = iEvent.getByToken(sipixelSimLinksToken_, sipixelSimLinks);
126  if (not throwOnMissingCollections_ and foundPixelClusters and not pixelSimLinksFound) {
127  auto clusterTPList = std::make_unique<ClusterTPAssociation>();
128  iEvent.put(std::move(clusterTPList));
129  return;
130  }
131 
132  // SiStrip DigiSimLink
134  auto stripSimLinksFound = iEvent.getByToken(sistripSimLinksToken_, sistripSimLinks);
135  if (not throwOnMissingCollections_ and foundStripClusters and not stripSimLinksFound) {
136  auto clusterTPList = std::make_unique<ClusterTPAssociation>();
137  iEvent.put(std::move(clusterTPList));
138  return;
139  }
140 
141  // Phase2 OT DigiSimLink
143  auto phase2OTSimLinksFound = iEvent.getByToken(siphase2OTSimLinksToken_, siphase2OTSimLinks);
144  if (not throwOnMissingCollections_ and foundPhase2OTClusters and not phase2OTSimLinksFound) {
145  auto clusterTPList = std::make_unique<ClusterTPAssociation>();
146  iEvent.put(std::move(clusterTPList));
147  return;
148  }
149 
150  // TrackingParticle
152  auto tpFound = iEvent.getByToken(trackingParticleToken_, TPCollectionH);
153  if (not throwOnMissingCollections_ and not tpFound) {
154  auto clusterTPList = std::make_unique<ClusterTPAssociation>();
155  iEvent.put(std::move(clusterTPList));
156  return;
157  }
158 
159  auto clusterTPList = std::make_unique<ClusterTPAssociation>(TPCollectionH);
160 
161  // prepare temporary map between SimTrackId and TrackingParticle index
162  std::unordered_map<UniqueSimTrackId, TrackingParticleRef, UniqueSimTrackIdHash> mapping;
163  auto const& tpColl = *TPCollectionH.product();
164  for (TrackingParticleCollection::size_type itp = 0; itp < tpColl.size(); ++itp) {
165  TrackingParticleRef trackingParticleRef(TPCollectionH, itp);
166  auto const& trackingParticle = tpColl[itp];
167  // SimTracks inside TrackingParticle
168  EncodedEventId eid(trackingParticle.eventId());
169  //size_t index = 0;
170  for (auto const& trk : trackingParticle.g4Tracks()) {
171  UniqueSimTrackId trkid(trk.trackId(), eid);
172  //std::cout << "creating map for id: " << trkid.first << " with tp: " << trackingParticle.key() << std::endl;
173  mapping.insert(std::make_pair(trkid, trackingParticleRef));
174  }
175  }
176 
177  std::unordered_set<UniqueSimTrackId, UniqueSimTrackIdHash> simTkIds;
178  std::vector<UniqueSimTrackId> trkid;
179  if (foundPixelClusters) {
180  // Pixel Clusters
181  clusterTPList->addKeyID(pixelClusters.id());
182  for (edmNew::DetSetVector<SiPixelCluster>::const_iterator iter = pixelClusters->begin();
183  iter != pixelClusters->end();
184  ++iter) {
185  uint32_t detid = iter->id();
186  DetId detId(detid);
187  edmNew::DetSet<SiPixelCluster> link_pixel = (*iter);
188  for (edmNew::DetSet<SiPixelCluster>::const_iterator di = link_pixel.begin(); di != link_pixel.end(); ++di) {
189  const SiPixelCluster& cluster = (*di);
191 
192  simTkIds.clear();
193  for (int irow = cluster.minPixelRow(); irow <= cluster.maxPixelRow(); ++irow) {
194  for (int icol = cluster.minPixelCol(); icol <= cluster.maxPixelCol(); ++icol) {
195  uint32_t channel = PixelChannelIdentifier::pixelToChannel(irow, icol);
196  trkid.clear();
197  getSimTrackId<PixelDigiSimLink>(trkid, sipixelSimLinks, detId, channel);
198  simTkIds.insert(trkid.begin(), trkid.end());
199  }
200  }
201  for (auto iset = simTkIds.begin(); iset != simTkIds.end(); iset++) {
202  auto ipos = mapping.find(*iset);
203  if (ipos != mapping.end()) {
204  //std::cout << "cluster in detid: " << detid << " from tp: " << ipos->second.key() << " " << iset->first << std::endl;
205  clusterTPList->emplace_back(OmniClusterRef(c_ref), ipos->second);
206  }
207  }
208  }
209  }
210  }
211 
212  if (foundStripClusters) {
213  // Strip Clusters
214  clusterTPList->addKeyID(stripClusters.id());
215  for (edmNew::DetSetVector<SiStripCluster>::const_iterator iter = stripClusters->begin(false),
216  eter = stripClusters->end(false);
217  iter != eter;
218  ++iter) {
219  if (!(*iter).isValid())
220  continue;
221  uint32_t detid = iter->id();
222  DetId detId(detid);
223  edmNew::DetSet<SiStripCluster> link_strip = (*iter);
224  for (edmNew::DetSet<SiStripCluster>::const_iterator di = link_strip.begin(); di != link_strip.end(); di++) {
225  const SiStripCluster& cluster = (*di);
227 
228  simTkIds.clear();
229  int first = cluster.firstStrip();
230  int last = first + cluster.amplitudes().size();
231 
232  for (int istr = first; istr < last; ++istr) {
233  trkid.clear();
234  getSimTrackId<StripDigiSimLink>(trkid, sistripSimLinks, detId, istr);
235  simTkIds.insert(trkid.begin(), trkid.end());
236  }
237  for (auto iset = simTkIds.begin(); iset != simTkIds.end(); iset++) {
238  auto ipos = mapping.find(*iset);
239  if (ipos != mapping.end()) {
240  //std::cout << "cluster in detid: " << detid << " from tp: " << ipos->second.key() << " " << iset->first << std::endl;
241  clusterTPList->emplace_back(OmniClusterRef(c_ref), ipos->second);
242  }
243  }
244  }
245  }
246  }
247 
248  if (foundPhase2OTClusters) {
249  // Phase2 Clusters
250  clusterTPList->addKeyID(phase2OTClusters.id());
251  if (phase2OTClusters.isValid()) {
252  for (edmNew::DetSetVector<Phase2TrackerCluster1D>::const_iterator iter = phase2OTClusters->begin(false),
253  eter = phase2OTClusters->end(false);
254  iter != eter;
255  ++iter) {
256  if (!(*iter).isValid())
257  continue;
258  uint32_t detid = iter->id();
259  DetId detId(detid);
260  edmNew::DetSet<Phase2TrackerCluster1D> link_phase2 = (*iter);
261  for (edmNew::DetSet<Phase2TrackerCluster1D>::const_iterator di = link_phase2.begin(); di != link_phase2.end();
262  di++) {
263  const Phase2TrackerCluster1D& cluster = (*di);
265  edmNew::makeRefTo(phase2OTClusters, di);
266 
267  simTkIds.clear();
268 
269  for (unsigned int istr(0); istr < cluster.size(); ++istr) {
270  uint32_t channel = Phase2TrackerDigi::pixelToChannel(cluster.firstRow() + istr, cluster.column());
271  trkid.clear();
272  getSimTrackId<PixelDigiSimLink>(trkid, siphase2OTSimLinks, detId, channel);
273  simTkIds.insert(trkid.begin(), trkid.end());
274  }
275 
276  for (auto iset = simTkIds.begin(); iset != simTkIds.end(); iset++) {
277  auto ipos = mapping.find(*iset);
278  if (ipos != mapping.end()) {
279  clusterTPList->emplace_back(OmniClusterRef(c_ref), ipos->second);
280  }
281  }
282  }
283  }
284  }
285  }
286  clusterTPList->sortAndUnique();
287  iEvent.put(std::move(clusterTPList));
288 }
edm::Ref< typename HandleT::element_type, typename HandleT::element_type::value_type::value_type > makeRefTo(const HandleT &iHandle, typename HandleT::element_type::value_type::const_iterator itIter)
int minPixelCol() const
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:133
std::pair< uint32_t, EncodedEventId > UniqueSimTrackId
ProductID id() const
Definition: HandleBase.cc:29
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:539
edm::EDGetTokenT< edmNew::DetSetVector< Phase2TrackerCluster1D > > phase2OTClustersToken_
SiStripCluster const & amplitudes() const
uint16_t firstStrip() const
data_type const * const_iterator
Definition: DetSetNew.h:31
uint16_t size_type
edm::EDGetTokenT< edm::DetSetVector< PixelDigiSimLink > > siphase2OTSimLinksToken_
edm::EDGetTokenT< edmNew::DetSetVector< SiPixelCluster > > pixelClustersToken_
edm::EDGetTokenT< edmNew::DetSetVector< SiStripCluster > > stripClustersToken_
int maxPixelRow() const
unsigned int firstRow() const
int minPixelRow() const
unsigned int column() const
static PackedDigiType pixelToChannel(unsigned int row, unsigned int col)
def move
Definition: eostools.py:511
bool isValid() const
Definition: HandleBase.h:70
edm::EDGetTokenT< TrackingParticleCollection > trackingParticleToken_
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
Definition: DetId.h:17
T const * product() const
Definition: Handle.h:70
edm::EDGetTokenT< edm::DetSetVector< PixelDigiSimLink > > sipixelSimLinksToken_
int maxPixelCol() const
Pixel cluster – collection of neighboring pixels above threshold.
iterator end()
Definition: DetSetNew.h:56
static int pixelToChannel(int row, int col)
tuple last
Definition: dqmdumpme.py:56
uint8_t size() const
edm::EDGetTokenT< edm::DetSetVector< StripDigiSimLink > > sistripSimLinksToken_
iterator begin()
Definition: DetSetNew.h:54

Member Data Documentation

edm::EDGetTokenT<edmNew::DetSetVector<Phase2TrackerCluster1D> > ClusterTPAssociationProducer::phase2OTClustersToken_
private

Definition at line 71 of file ClusterTPAssociationProducer.cc.

Referenced by produce().

edm::EDGetTokenT<edmNew::DetSetVector<SiPixelCluster> > ClusterTPAssociationProducer::pixelClustersToken_
private

Definition at line 69 of file ClusterTPAssociationProducer.cc.

Referenced by produce().

edm::EDGetTokenT<edm::DetSetVector<PixelDigiSimLink> > ClusterTPAssociationProducer::siphase2OTSimLinksToken_
private

Definition at line 68 of file ClusterTPAssociationProducer.cc.

Referenced by produce().

edm::EDGetTokenT<edm::DetSetVector<PixelDigiSimLink> > ClusterTPAssociationProducer::sipixelSimLinksToken_
private

Definition at line 66 of file ClusterTPAssociationProducer.cc.

Referenced by produce().

edm::EDGetTokenT<edm::DetSetVector<StripDigiSimLink> > ClusterTPAssociationProducer::sistripSimLinksToken_
private

Definition at line 67 of file ClusterTPAssociationProducer.cc.

Referenced by produce().

edm::EDGetTokenT<edmNew::DetSetVector<SiStripCluster> > ClusterTPAssociationProducer::stripClustersToken_
private

Definition at line 70 of file ClusterTPAssociationProducer.cc.

Referenced by produce().

bool ClusterTPAssociationProducer::throwOnMissingCollections_
private

Definition at line 73 of file ClusterTPAssociationProducer.cc.

Referenced by produce().

edm::EDGetTokenT<TrackingParticleCollection> ClusterTPAssociationProducer::trackingParticleToken_
private

Definition at line 72 of file ClusterTPAssociationProducer.cc.

Referenced by produce().