CMS 3D CMS Logo

List of all members | Classes | Public Member Functions | Static Public Member Functions | Private Attributes
SiStripOnTrackClusterTableProducerBase Class Referenceabstract

#include <SiStripOnTrackClusterTableProducerBase.h>

Inheritance diagram for SiStripOnTrackClusterTableProducerBase:
edm::stream::EDProducer<> SiStripPositionCorrectionsTableProducer

Classes

struct  OnTrackCluster
 

Public Member Functions

virtual void fillTable (const std::vector< OnTrackCluster > &clusters, const edm::View< reco::Track > &tracks, nanoaod::FlatTable *table, const edm::EventSetup &iSetup)=0
 
void produce (edm::Event &iEvent, const edm::EventSetup &iSetup) final
 
 SiStripOnTrackClusterTableProducerBase (const edm::ParameterSet &params)
 
 ~SiStripOnTrackClusterTableProducerBase () override
 
- Public Member Functions inherited from edm::stream::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
 
const EDProduceroperator= (const EDProducer &)=delete
 

Static Public Member Functions

template<typename VALUES >
static void addColumn (nanoaod::FlatTable *table, const std::string &name, VALUES &&values, const std::string &doc)
 

Private Attributes

const edm::EDGetTokenT< TrajTrackAssociationCollectionm_association_token
 
const std::string m_doc
 
bool m_extension
 
const std::string m_name
 
const edm::EDGetTokenT< edm::View< reco::Track > > m_tracks_token
 

Additional Inherited Members

- Public Types inherited from edm::stream::EDProducer<>
using CacheTypes = CacheContexts< T... >
 
using GlobalCache = typename CacheTypes::GlobalCache
 
using HasAbility = AbilityChecker< T... >
 
using InputProcessBlockCache = typename CacheTypes::InputProcessBlockCache
 
using LuminosityBlockCache = typename CacheTypes::LuminosityBlockCache
 
using LuminosityBlockContext = LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCache >
 
using LuminosityBlockSummaryCache = typename CacheTypes::LuminosityBlockSummaryCache
 
using RunCache = typename CacheTypes::RunCache
 
using RunContext = RunContextT< RunCache, GlobalCache >
 
using RunSummaryCache = typename CacheTypes::RunSummaryCache
 

Detailed Description

Definition at line 10 of file SiStripOnTrackClusterTableProducerBase.h.

Constructor & Destructor Documentation

◆ SiStripOnTrackClusterTableProducerBase()

SiStripOnTrackClusterTableProducerBase::SiStripOnTrackClusterTableProducerBase ( const edm::ParameterSet params)
inlineexplicit

Definition at line 12 of file SiStripOnTrackClusterTableProducerBase.h.

13  : m_name(params.getParameter<std::string>("name")),
14  m_doc(params.existsAs<std::string>("doc") ? params.getParameter<std::string>("doc") : ""),
15  m_extension(params.existsAs<bool>("extension") ? params.getParameter<bool>("extension") : true),
16  m_tracks_token(consumes<edm::View<reco::Track>>(params.getParameter<edm::InputTag>("Tracks"))),
17  m_association_token(consumes<TrajTrackAssociationCollection>(params.getParameter<edm::InputTag>("Tracks"))) {
18  produces<nanoaod::FlatTable>();
19  }

◆ ~SiStripOnTrackClusterTableProducerBase()

SiStripOnTrackClusterTableProducerBase::~SiStripOnTrackClusterTableProducerBase ( )
override

Definition at line 7 of file SiStripOnTrackClusterTableProducerBase.cc.

7 {}

Member Function Documentation

◆ addColumn()

template<typename VALUES >
static void SiStripOnTrackClusterTableProducerBase::addColumn ( nanoaod::FlatTable table,
const std::string &  name,
VALUES &&  values,
const std::string &  doc 
)
inlinestatic

◆ fillTable()

virtual void SiStripOnTrackClusterTableProducerBase::fillTable ( const std::vector< OnTrackCluster > &  clusters,
const edm::View< reco::Track > &  tracks,
nanoaod::FlatTable table,
const edm::EventSetup iSetup 
)
pure virtual

Implemented in SiStripPositionCorrectionsTableProducer.

Referenced by produce().

◆ produce()

void SiStripOnTrackClusterTableProducerBase::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
final

Definition at line 20 of file SiStripOnTrackClusterTableProducerBase.cc.

20  {
22  iEvent.getByToken(m_tracks_token, tracks);
23  edm::Handle<TrajTrackAssociationCollection> trajTrackAssociations;
24  iEvent.getByToken(m_association_token, trajTrackAssociations);
25 
26  std::vector<OnTrackCluster> clusters{};
27 
28  for (const auto& assoc : *trajTrackAssociations) {
29  const auto traj = assoc.key.get();
30  const auto track = assoc.val.get();
31 
32  for (const auto& meas : traj->measurements()) {
33  const auto& trajState = meas.updatedState();
34  if (!trajState.isValid())
35  continue;
36 
37  // there can be 2 (stereo module), 1 (no stereo module), or 0 (no strip hit) clusters per measurement
38  const auto trechit = meas.recHit()->hit();
39  const auto simple1d = dynamic_cast<const SiStripRecHit1D*>(trechit);
40  const auto simple = dynamic_cast<const SiStripRecHit2D*>(trechit);
41  const auto matched = dynamic_cast<const SiStripMatchedRecHit2D*>(trechit);
42  if (matched) {
43  clusters.emplace_back(matched->monoId(), &matched->monoCluster(), traj, track, meas);
44  clusters.emplace_back(matched->stereoId(), &matched->stereoCluster(), traj, track, meas);
45  } else if (simple) {
46  clusters.emplace_back(simple->geographicalId().rawId(), simple->cluster().get(), traj, track, meas);
47  } else if (simple1d) {
48  clusters.emplace_back(simple1d->geographicalId().rawId(), simple1d->cluster().get(), traj, track, meas);
49  }
50  }
51  }
52 
53  auto out = std::make_unique<nanoaod::FlatTable>(clusters.size(), m_name, false, m_extension);
54  if (!m_extension) {
55  std::vector<int> c_trackindex;
56  c_trackindex.reserve(clusters.size());
57  std::vector<uint32_t> c_rawid;
58  c_rawid.reserve(clusters.size());
59  for (const auto clus : clusters) {
60  c_trackindex.push_back(findTrackIndex(*tracks, clus.track));
61  c_rawid.push_back(clus.det);
62  }
63  addColumn(out.get(), "trackindex", c_trackindex, "Track index");
64  addColumn(out.get(), "rawid", c_rawid, "DetId");
65  }
66  fillTable(clusters, *tracks, out.get(), iSetup);
67  iEvent.put(std::move(out));
68 }

References addColumn(), trackingPlots::assoc, bsc_activity_cfg::clusters, fillTable(), shallow::findTrackIndex(), iEvent, m_association_token, m_extension, m_name, m_tracks_token, muonTagProbeFilters_cff::matched, eostools::move(), MillePedeFileConverter_cfg::out, HLT_FULL_cff::track, and tracks.

Member Data Documentation

◆ m_association_token

const edm::EDGetTokenT<TrajTrackAssociationCollection> SiStripOnTrackClusterTableProducerBase::m_association_token
private

Definition at line 55 of file SiStripOnTrackClusterTableProducerBase.h.

Referenced by produce().

◆ m_doc

const std::string SiStripOnTrackClusterTableProducerBase::m_doc
private

Definition at line 51 of file SiStripOnTrackClusterTableProducerBase.h.

◆ m_extension

bool SiStripOnTrackClusterTableProducerBase::m_extension
private

Definition at line 52 of file SiStripOnTrackClusterTableProducerBase.h.

Referenced by produce().

◆ m_name

const std::string SiStripOnTrackClusterTableProducerBase::m_name
private

Definition at line 50 of file SiStripOnTrackClusterTableProducerBase.h.

Referenced by produce().

◆ m_tracks_token

const edm::EDGetTokenT<edm::View<reco::Track> > SiStripOnTrackClusterTableProducerBase::m_tracks_token
private

Definition at line 54 of file SiStripOnTrackClusterTableProducerBase.h.

Referenced by produce().

muonTagProbeFilters_cff.matched
matched
Definition: muonTagProbeFilters_cff.py:62
HLT_FULL_cff.track
track
Definition: HLT_FULL_cff.py:11724
boostedTaus_cff.doc
doc
Definition: boostedTaus_cff.py:20
CalibrationSummaryClient_cfi.params
params
Definition: CalibrationSummaryClient_cfi.py:14
SiStripOnTrackClusterTableProducerBase::m_tracks_token
const edm::EDGetTokenT< edm::View< reco::Track > > m_tracks_token
Definition: SiStripOnTrackClusterTableProducerBase.h:54
edm::Handle
Definition: AssociativeIterator.h:50
SiStripOnTrackClusterTableProducerBase::m_name
const std::string m_name
Definition: SiStripOnTrackClusterTableProducerBase.h:50
trackingPlots.assoc
assoc
Definition: trackingPlots.py:183
SiStripOnTrackClusterTableProducerBase::m_extension
bool m_extension
Definition: SiStripOnTrackClusterTableProducerBase.h:52
contentValuesCheck.values
values
Definition: contentValuesCheck.py:38
SiStripOnTrackClusterTableProducerBase::m_association_token
const edm::EDGetTokenT< TrajTrackAssociationCollection > m_association_token
Definition: SiStripOnTrackClusterTableProducerBase.h:55
SiStripOnTrackClusterTableProducerBase::addColumn
static void addColumn(nanoaod::FlatTable *table, const std::string &name, VALUES &&values, const std::string &doc)
Definition: SiStripOnTrackClusterTableProducerBase.h:44
bsc_activity_cfg.clusters
clusters
Definition: bsc_activity_cfg.py:36
edm::View
Definition: CaloClusterFwd.h:14
SiStripOnTrackClusterTableProducerBase::m_doc
const std::string m_doc
Definition: SiStripOnTrackClusterTableProducerBase.h:51
tracks
const uint32_t *__restrict__ const HitContainer *__restrict__ TkSoA *__restrict__ tracks
Definition: CAHitNtupletGeneratorKernelsImpl.h:176
iEvent
int iEvent
Definition: GenABIO.cc:224
reco::JetExtendedAssociation::value_type
Container::value_type value_type
Definition: JetExtendedAssociation.h:30
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
SiStripOnTrackClusterTableProducerBase::fillTable
virtual void fillTable(const std::vector< OnTrackCluster > &clusters, const edm::View< reco::Track > &tracks, nanoaod::FlatTable *table, const edm::EventSetup &iSetup)=0
eostools.move
def move(src, dest)
Definition: eostools.py:511
Skims_PA_cff.name
name
Definition: Skims_PA_cff.py:17
MillePedeFileConverter_cfg.out
out
Definition: MillePedeFileConverter_cfg.py:31
TableParser.table
table
Definition: TableParser.py:111
edm::InputTag
Definition: InputTag.h:15
shallow::findTrackIndex
int findTrackIndex(const edm::Handle< edm::View< reco::Track > > &h, const reco::Track *t)
Definition: ShallowTools.cc:25