CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
ShallowTrackClustersProducer Class Reference

#include <ShallowTrackClustersProducer.h>

Inheritance diagram for ShallowTrackClustersProducer:
edm::EDProducer edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

 ShallowTrackClustersProducer (const edm::ParameterSet &)
 
- Public Member Functions inherited from edm::EDProducer
 EDProducer ()
 
SerialTaskQueueglobalLuminosityBlocksQueue ()
 
SerialTaskQueueglobalRunsQueue ()
 
ModuleDescription const & moduleDescription () const
 
 ~EDProducer () 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
 
std::vector< bool > const & recordProvenanceList () 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)
 
TypeLabelList const & typeLabelList () const
 used by the fwk to register the list of products of this module More...
 
 ~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 &&)=default
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
ESProxyIndex const * esGetTokenIndices (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::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Member Functions

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

Private Attributes

const edm::EDGetTokenT< TrajTrackAssociationCollectionassociation_token_
 
const edm::EDGetTokenT< edmNew::DetSetVector< SiStripCluster > > clusters_token_
 
std::string Prefix
 
std::string Suffix
 
const edm::EDGetTokenT< edm::View< reco::Track > > tracks_token_
 

Additional Inherited Members

- Public Types inherited from edm::EDProducer
typedef EDProducer 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
 
- Static Public Member Functions inherited from edm::EDProducer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
static bool wantsGlobalLuminosityBlocks ()
 
static bool wantsGlobalRuns ()
 
static bool wantsStreamLuminosityBlocks ()
 
static bool wantsStreamRuns ()
 
- Protected Member Functions inherited from edm::ProducerBase
template<class ProductType >
BranchAliasSetterT< ProductType > produces ()
 declare what type of product will make and with which optional label More...
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces ()
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces ()
 
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<BranchType B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<Transition B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<class ProductType >
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
ProducesCollector producesCollector ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (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)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 

Detailed Description

Definition at line 12 of file ShallowTrackClustersProducer.h.

Constructor & Destructor Documentation

◆ ShallowTrackClustersProducer()

ShallowTrackClustersProducer::ShallowTrackClustersProducer ( const edm::ParameterSet iConfig)
explicit

Definition at line 26 of file ShallowTrackClustersProducer.cc.

28  association_token_(consumes<TrajTrackAssociationCollection>(iConfig.getParameter<edm::InputTag>("Tracks"))),
30  Suffix(iConfig.getParameter<std::string>("Suffix")),
31  Prefix(iConfig.getParameter<std::string>("Prefix")) {
32  produces<std::vector<int>>(Prefix + "clusterIdx" + Suffix); //link: on trk cluster --> general cluster info
33  produces<std::vector<int>>(Prefix + "onTrkClusterIdx" + Suffix); //link: general cluster info --> on track cluster
34  produces<std::vector<int>>(Prefix + "onTrkClustersBegin" + Suffix); //link: track --> onTrkInfo (range)
35  produces<std::vector<int>>(Prefix + "onTrkClustersEnd" + Suffix); //link: track --> onTrkInfo (range)
36  produces<std::vector<int>>(Prefix + "trackindex" + Suffix); //link: on trk cluster --> track index
37 
38  produces<std::vector<unsigned int>>(Prefix + "trackmulti" + Suffix);
39  produces<std::vector<float>>(Prefix + "localtheta" + Suffix);
40  produces<std::vector<float>>(Prefix + "localphi" + Suffix);
41  produces<std::vector<float>>(Prefix + "localpitch" + Suffix);
42  produces<std::vector<float>>(Prefix + "localx" + Suffix);
43  produces<std::vector<float>>(Prefix + "localy" + Suffix);
44  produces<std::vector<float>>(Prefix + "localz" + Suffix);
45  produces<std::vector<float>>(Prefix + "strip" + Suffix);
46  produces<std::vector<float>>(Prefix + "globaltheta" + Suffix);
47  produces<std::vector<float>>(Prefix + "globalphi" + Suffix);
48  produces<std::vector<float>>(Prefix + "globalx" + Suffix);
49  produces<std::vector<float>>(Prefix + "globaly" + Suffix);
50  produces<std::vector<float>>(Prefix + "globalz" + Suffix);
51  produces<std::vector<float>>(Prefix + "insidistance" + Suffix);
52  produces<std::vector<float>>(Prefix + "covered" + Suffix);
53  produces<std::vector<float>>(Prefix + "projwidth" + Suffix);
54  produces<std::vector<float>>(Prefix + "BdotY" + Suffix);
55 
56  produces<std::vector<float>>(Prefix + "rhlocalx" + Suffix);
57  produces<std::vector<float>>(Prefix + "rhlocaly" + Suffix);
58  produces<std::vector<float>>(Prefix + "rhlocalxerr" + Suffix);
59  produces<std::vector<float>>(Prefix + "rhlocalyerr" + Suffix);
60  produces<std::vector<float>>(Prefix + "rhglobalx" + Suffix);
61  produces<std::vector<float>>(Prefix + "rhglobaly" + Suffix);
62  produces<std::vector<float>>(Prefix + "rhglobalz" + Suffix);
63  produces<std::vector<float>>(Prefix + "rhstrip" + Suffix);
64  produces<std::vector<float>>(Prefix + "rhmerr" + Suffix);
65 
66  produces<std::vector<float>>(Prefix + "ubstrip" + Suffix);
67  produces<std::vector<float>>(Prefix + "ubmerr" + Suffix);
68 
69  produces<std::vector<float>>(Prefix + "driftx" + Suffix);
70  produces<std::vector<float>>(Prefix + "drifty" + Suffix);
71  produces<std::vector<float>>(Prefix + "driftz" + Suffix);
72  produces<std::vector<float>>(Prefix + "globalZofunitlocalY" + Suffix);
73 }

References Prefix, and Suffix.

Member Function Documentation

◆ produce()

void ShallowTrackClustersProducer::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprivatevirtual

Implements edm::EDProducer.

Definition at line 75 of file ShallowTrackClustersProducer.cc.

75  {
78  iEvent.getByToken(tracks_token_, tracks);
79 
80  int size = clustermap.size();
81 
82  //links
83  auto clusterIdx = std::make_unique<std::vector<int>>(); //link: on trk cluster --> general cluster info
84  auto onTrkClusterIdx =
85  std::make_unique<std::vector<int>>(size, -1); //link: general cluster info --> on track cluster
86  auto onTrkClustersBegin = std::make_unique<std::vector<int>>(tracks->size(), -1); //link: track --> on trk cluster
87  auto onTrkClustersEnd = std::make_unique<std::vector<int>>(tracks->size(), -1); //link: track --> on trk cluster
88  auto trackindex = std::make_unique<std::vector<int>>(); //link: on track cluster --> track
89  clusterIdx->reserve(size);
90  trackindex->reserve(size);
91 
92  auto trackmulti = std::make_unique<std::vector<unsigned int>>();
93  trackmulti->reserve(size);
94  auto localtheta = std::make_unique<std::vector<float>>();
95  localtheta->reserve(size);
96  auto localphi = std::make_unique<std::vector<float>>();
97  localphi->reserve(size);
98  auto localpitch = std::make_unique<std::vector<float>>();
99  localpitch->reserve(size);
100  auto localx = std::make_unique<std::vector<float>>();
101  localx->reserve(size);
102  auto localy = std::make_unique<std::vector<float>>();
103  localy->reserve(size);
104  auto localz = std::make_unique<std::vector<float>>();
105  localz->reserve(size);
106  auto strip = std::make_unique<std::vector<float>>();
107  strip->reserve(size);
108  auto globaltheta = std::make_unique<std::vector<float>>();
109  globaltheta->reserve(size);
110  auto globalphi = std::make_unique<std::vector<float>>();
111  globalphi->reserve(size);
112  auto globalx = std::make_unique<std::vector<float>>();
113  globalx->reserve(size);
114  auto globaly = std::make_unique<std::vector<float>>();
115  globaly->reserve(size);
116  auto globalz = std::make_unique<std::vector<float>>();
117  globalz->reserve(size);
118  auto insidistance = std::make_unique<std::vector<float>>();
119  insidistance->reserve(size);
120  auto projwidth = std::make_unique<std::vector<float>>();
121  projwidth->reserve(size);
122  auto BdotY = std::make_unique<std::vector<float>>();
123  BdotY->reserve(size);
124  auto covered = std::make_unique<std::vector<float>>();
125  covered->reserve(size);
126  auto rhlocalx = std::make_unique<std::vector<float>>();
127  rhlocalx->reserve(size);
128  auto rhlocaly = std::make_unique<std::vector<float>>();
129  rhlocaly->reserve(size);
130  auto rhlocalxerr = std::make_unique<std::vector<float>>();
131  rhlocalxerr->reserve(size);
132  auto rhlocalyerr = std::make_unique<std::vector<float>>();
133  rhlocalyerr->reserve(size);
134  auto rhglobalx = std::make_unique<std::vector<float>>();
135  rhglobalx->reserve(size);
136  auto rhglobaly = std::make_unique<std::vector<float>>();
137  rhglobaly->reserve(size);
138  auto rhglobalz = std::make_unique<std::vector<float>>();
139  rhglobalz->reserve(size);
140  auto rhstrip = std::make_unique<std::vector<float>>();
141  rhstrip->reserve(size);
142  auto rhmerr = std::make_unique<std::vector<float>>();
143  rhmerr->reserve(size);
144  auto ubstrip = std::make_unique<std::vector<float>>();
145  ubstrip->reserve(size);
146  auto ubmerr = std::make_unique<std::vector<float>>();
147  ubmerr->reserve(size);
148  auto driftx = std::make_unique<std::vector<float>>();
149  driftx->reserve(size);
150  auto drifty = std::make_unique<std::vector<float>>();
151  drifty->reserve(size);
152  auto driftz = std::make_unique<std::vector<float>>();
153  driftz->reserve(size);
154  auto globalZofunitlocalY = std::make_unique<std::vector<float>>();
155  globalZofunitlocalY->reserve(size);
156 
157  edm::ESHandle<TrackerGeometry> theTrackerGeometry;
158  iSetup.get<TrackerDigiGeometryRecord>().get(theTrackerGeometry);
163 
166 
168 
169  size_t ontrk_cluster_idx = 0;
170  std::map<size_t, std::vector<size_t>> mapping; //cluster idx --> on trk cluster idx (multiple)
171 
173  association != associations->end();
174  association++) {
175  const Trajectory* traj = association->key.get();
176  const reco::Track* track = association->val.get();
177  int trk_idx = shallow::findTrackIndex(tracks, track);
178  size_t trk_strt_idx = ontrk_cluster_idx;
179 
180  for (auto const& measurement : traj->measurements()) {
181  const TrajectoryStateOnSurface& tsos = measurement.updatedState();
182  const TrajectoryStateOnSurface unbiased =
183  combiner(measurement.forwardPredictedState(), measurement.backwardPredictedState());
184 
185  const TrackingRecHit* hit = measurement.recHit()->hit();
186  const SiStripRecHit1D* hit1D = dynamic_cast<const SiStripRecHit1D*>(hit);
187  const SiStripRecHit2D* hit2D = dynamic_cast<const SiStripRecHit2D*>(hit);
188  const SiStripMatchedRecHit2D* matchedhit = dynamic_cast<const SiStripMatchedRecHit2D*>(hit);
189 
190  for (unsigned h = 0; h < 2; h++) { //loop over possible Hit options (1D, 2D)
191  const SiStripCluster* cluster_ptr;
192  if (!matchedhit && h == 1)
193  continue;
194  else if (matchedhit && h == 0)
195  cluster_ptr = &matchedhit->monoCluster();
196  else if (matchedhit && h == 1)
197  cluster_ptr = &matchedhit->stereoCluster();
198  else if (hit2D)
199  cluster_ptr = (hit2D->cluster()).get();
200  else if (hit1D)
201  cluster_ptr = (hit1D->cluster()).get();
202  else
203  continue;
204 
205  shallow::CLUSTERMAP::const_iterator cluster =
206  clustermap.find(std::make_pair(hit->geographicalId().rawId(), cluster_ptr->firstStrip()));
207  if (cluster == clustermap.end())
208  throw cms::Exception("Logic Error") << "Cluster not found: this could be a configuration error" << std::endl;
209 
210  unsigned i = cluster->second;
211 
212  //find if cluster was already assigned to a previous track
213  auto already_visited = mapping.find(i);
214  int nassociations = 1;
215  if (already_visited != mapping.end()) {
216  nassociations += already_visited->second.size();
217  for (size_t idx : already_visited->second) {
218  trackmulti->at(idx)++;
219  }
220  already_visited->second.push_back(ontrk_cluster_idx);
221  } else { //otherwise store this
222  std::vector<size_t> single = {ontrk_cluster_idx};
223  mapping.insert(std::make_pair(i, single));
224  }
225 
226  const StripGeomDetUnit* theStripDet =
227  dynamic_cast<const StripGeomDetUnit*>(theTrackerGeometry->idToDet(hit->geographicalId()));
229 
230  if (nassociations == 1)
231  onTrkClusterIdx->at(i) = ontrk_cluster_idx; //link: general cluster info --> on track cluster
232  clusterIdx->push_back(i); //link: on trk cluster --> general cluster info
233  trackmulti->push_back(nassociations);
234  trackindex->push_back(trk_idx);
235  localtheta->push_back((theStripDet->toLocal(tsos.globalDirection())).theta());
236  localphi->push_back((theStripDet->toLocal(tsos.globalDirection())).phi());
237  localpitch->push_back(
238  (theStripDet->specificTopology()).localPitch(theStripDet->toLocal(tsos.globalPosition())));
239  localx->push_back((theStripDet->toLocal(tsos.globalPosition())).x());
240  localy->push_back((theStripDet->toLocal(tsos.globalPosition())).y());
241  localz->push_back((theStripDet->toLocal(tsos.globalPosition())).z());
242  strip->push_back((theStripDet->specificTopology()).strip(theStripDet->toLocal(tsos.globalPosition())));
243  globaltheta->push_back(tsos.globalDirection().theta());
244  globalphi->push_back(tsos.globalDirection().phi());
245  globalx->push_back(tsos.globalPosition().x());
246  globaly->push_back(tsos.globalPosition().y());
247  globalz->push_back(tsos.globalPosition().z());
248  insidistance->push_back(1. / fabs(cos(localtheta->at(ontrk_cluster_idx))));
249  projwidth->push_back(tan(localtheta->at(ontrk_cluster_idx)) * cos(localphi->at(ontrk_cluster_idx)));
250  BdotY->push_back((theStripDet->surface()).toLocal(magfield->inTesla(theStripDet->surface().position())).y());
251  covered->push_back(drift.z() / localpitch->at(ontrk_cluster_idx) *
252  fabs(projwidth->at(ontrk_cluster_idx) - drift.x() / drift.z()));
253  rhlocalx->push_back(hit->localPosition().x());
254  rhlocaly->push_back(hit->localPosition().y());
255  rhlocalxerr->push_back(sqrt(hit->localPositionError().xx()));
256  rhlocalyerr->push_back(sqrt(hit->localPositionError().yy()));
257  rhglobalx->push_back(theStripDet->toGlobal(hit->localPosition()).x());
258  rhglobaly->push_back(theStripDet->toGlobal(hit->localPosition()).y());
259  rhglobalz->push_back(theStripDet->toGlobal(hit->localPosition()).z());
260  rhstrip->push_back(theStripDet->specificTopology().strip(hit->localPosition()));
261  rhmerr->push_back(sqrt(
262  theStripDet->specificTopology().measurementError(hit->localPosition(), hit->localPositionError()).uu()));
263  ubstrip->push_back(theStripDet->specificTopology().strip(unbiased.localPosition()));
264  ubmerr->push_back(sqrt(theStripDet->specificTopology()
265  .measurementError(unbiased.localPosition(), unbiased.localError().positionError())
266  .uu()));
267  driftx->push_back(drift.x());
268  drifty->push_back(drift.y());
269  driftz->push_back(drift.z());
270  globalZofunitlocalY->push_back((theStripDet->toGlobal(LocalVector(0, 1, 0))).z());
271 
272  ontrk_cluster_idx++;
273  } //for(unsigned h=0; h<2; h++) { //loop over possible Hit options (1D, 2D)
274  } //for(auto const& measurement : traj->measurements() )
275 
276  onTrkClustersBegin->at(trk_idx) = trk_strt_idx;
277  onTrkClustersEnd->at(trk_idx) = ontrk_cluster_idx;
278 
279  } //for(TrajTrackAssociationCollection::const_iterator association = associations->begin();
280 
281  iEvent.put(std::move(clusterIdx), Prefix + "clusterIdx" + Suffix);
282  iEvent.put(std::move(onTrkClusterIdx), Prefix + "onTrkClusterIdx" + Suffix);
283  iEvent.put(std::move(onTrkClustersBegin), Prefix + "onTrkClustersBegin" + Suffix);
284  iEvent.put(std::move(onTrkClustersEnd), Prefix + "onTrkClustersEnd" + Suffix);
285  iEvent.put(std::move(trackindex), Prefix + "trackindex" + Suffix);
286 
287  iEvent.put(std::move(trackmulti), Prefix + "trackmulti" + Suffix);
288  iEvent.put(std::move(localtheta), Prefix + "localtheta" + Suffix);
289  iEvent.put(std::move(localphi), Prefix + "localphi" + Suffix);
290  iEvent.put(std::move(localpitch), Prefix + "localpitch" + Suffix);
291  iEvent.put(std::move(localx), Prefix + "localx" + Suffix);
292  iEvent.put(std::move(localy), Prefix + "localy" + Suffix);
293  iEvent.put(std::move(localz), Prefix + "localz" + Suffix);
294  iEvent.put(std::move(strip), Prefix + "strip" + Suffix);
295  iEvent.put(std::move(globaltheta), Prefix + "globaltheta" + Suffix);
296  iEvent.put(std::move(globalphi), Prefix + "globalphi" + Suffix);
297  iEvent.put(std::move(globalx), Prefix + "globalx" + Suffix);
298  iEvent.put(std::move(globaly), Prefix + "globaly" + Suffix);
299  iEvent.put(std::move(globalz), Prefix + "globalz" + Suffix);
300  iEvent.put(std::move(insidistance), Prefix + "insidistance" + Suffix);
301  iEvent.put(std::move(covered), Prefix + "covered" + Suffix);
302  iEvent.put(std::move(projwidth), Prefix + "projwidth" + Suffix);
303  iEvent.put(std::move(BdotY), Prefix + "BdotY" + Suffix);
304  iEvent.put(std::move(rhlocalx), Prefix + "rhlocalx" + Suffix);
305  iEvent.put(std::move(rhlocaly), Prefix + "rhlocaly" + Suffix);
306  iEvent.put(std::move(rhlocalxerr), Prefix + "rhlocalxerr" + Suffix);
307  iEvent.put(std::move(rhlocalyerr), Prefix + "rhlocalyerr" + Suffix);
308  iEvent.put(std::move(rhglobalx), Prefix + "rhglobalx" + Suffix);
309  iEvent.put(std::move(rhglobaly), Prefix + "rhglobaly" + Suffix);
310  iEvent.put(std::move(rhglobalz), Prefix + "rhglobalz" + Suffix);
311  iEvent.put(std::move(rhstrip), Prefix + "rhstrip" + Suffix);
312  iEvent.put(std::move(rhmerr), Prefix + "rhmerr" + Suffix);
313  iEvent.put(std::move(ubstrip), Prefix + "ubstrip" + Suffix);
314  iEvent.put(std::move(ubmerr), Prefix + "ubmerr" + Suffix);
315  iEvent.put(std::move(driftx), Prefix + "driftx" + Suffix);
316  iEvent.put(std::move(drifty), Prefix + "drifty" + Suffix);
317  iEvent.put(std::move(driftz), Prefix + "driftz" + Suffix);
318  iEvent.put(std::move(globalZofunitlocalY), Prefix + "globalZofunitlocalY" + Suffix);
319 }

References TrackValidation_cff::association, association_token_, genericTrackCandidates_cff::associations, SiStripRecHit1D::cluster(), SiStripRecHit2D::cluster(), clusters_token_, heavyFlavorValidationHarvestingSequence_cff::combiner, edm::AssociationMap< edm::OneToOne< std::vector< Trajectory >, reco::TrackCollection, unsigned short > >::const_iterator, funct::cos(), shallow::drift(), shallow::findTrackIndex(), SiStripCluster::firstStrip(), edm::EventSetup::get(), get, TrajectoryStateOnSurface::globalDirection(), TrajectoryStateOnSurface::globalPosition(), mps_fire::i, TrackerGeometry::idToDet(), charmTagsComputerCvsB_cfi::idx, iEvent, TrajectoryStateOnSurface::localError(), TrajectoryStateOnSurface::localPosition(), volumeBasedMagneticField_160812_cfi::magfield, shallow::make_cluster_map(), taus_updatedMVAIds_cff::mapping, Topology::measurementError(), Trajectory::measurements(), SiStripMatchedRecHit2D::monoCluster(), eostools::move(), PV3DBase< T, PVType, FrameType >::phi(), GloballyPositioned< T >::position(), LocalTrajectoryError::positionError(), Prefix, trackerHitRTTI::single, findQualityFiles::size, StripGeomDetUnit::specificTopology(), mathSSE::sqrt(), SiStripMatchedRecHit2D::stereoCluster(), digitizers_cfi::strip, StripTopology::strip(), Suffix, GeomDet::surface(), funct::tan(), PV3DBase< T, PVType, FrameType >::theta(), GeomDet::toGlobal(), GeomDet::toLocal(), toLocal(), HLT_2018_cff::track, PDWG_EXOHSCP_cff::tracks, tracks_token_, x, PV3DBase< T, PVType, FrameType >::x(), hit::x, y, PV3DBase< T, PVType, FrameType >::y(), hit::y, z, and PV3DBase< T, PVType, FrameType >::z().

Member Data Documentation

◆ association_token_

const edm::EDGetTokenT<TrajTrackAssociationCollection> ShallowTrackClustersProducer::association_token_
private

Definition at line 18 of file ShallowTrackClustersProducer.h.

Referenced by produce().

◆ clusters_token_

const edm::EDGetTokenT<edmNew::DetSetVector<SiStripCluster> > ShallowTrackClustersProducer::clusters_token_
private

Definition at line 19 of file ShallowTrackClustersProducer.h.

Referenced by produce().

◆ Prefix

std::string ShallowTrackClustersProducer::Prefix
private

Definition at line 21 of file ShallowTrackClustersProducer.h.

Referenced by produce(), and ShallowTrackClustersProducer().

◆ Suffix

std::string ShallowTrackClustersProducer::Suffix
private

Definition at line 20 of file ShallowTrackClustersProducer.h.

Referenced by produce(), and ShallowTrackClustersProducer().

◆ tracks_token_

const edm::EDGetTokenT<edm::View<reco::Track> > ShallowTrackClustersProducer::tracks_token_
private

Definition at line 17 of file ShallowTrackClustersProducer.h.

Referenced by produce().

Vector3DBase< float, LocalTag >
TrackerGeometry::idToDet
const TrackerGeomDet * idToDet(DetId) const override
Definition: TrackerGeometry.cc:193
TrajectoryStateOnSurface::globalDirection
GlobalVector globalDirection() const
Definition: TrajectoryStateOnSurface.h:67
genericTrackCandidates_cff.associations
associations
Definition: genericTrackCandidates_cff.py:45
DDAxes::y
PDWG_EXOHSCP_cff.tracks
tracks
Definition: PDWG_EXOHSCP_cff.py:28
SiStripRecHit2D::cluster
ClusterRef cluster() const
Definition: SiStripRecHit2D.h:22
mps_fire.i
i
Definition: mps_fire.py:355
ShallowTrackClustersProducer::association_token_
const edm::EDGetTokenT< TrajTrackAssociationCollection > association_token_
Definition: ShallowTrackClustersProducer.h:18
hit::y
double y
Definition: SiStripHitEffFromCalibTree.cc:90
SiStripMatchedRecHit2D::stereoCluster
SiStripCluster const & stereoCluster() const
Definition: SiStripMatchedRecHit2D.h:40
LocalTrajectoryError::positionError
LocalError positionError() const
Definition: LocalTrajectoryError.h:81
PV3DBase::x
T x() const
Definition: PV3DBase.h:59
digitizers_cfi.strip
strip
Definition: digitizers_cfi.py:19
PV3DBase::theta
Geom::Theta< T > theta() const
Definition: PV3DBase.h:72
TrajectoryStateOnSurface::globalPosition
GlobalPoint globalPosition() const
Definition: TrajectoryStateOnSurface.h:65
charmTagsComputerCvsB_cfi.idx
idx
Definition: charmTagsComputerCvsB_cfi.py:108
SiStripRecHit2D
Definition: SiStripRecHit2D.h:7
DDAxes::x
edm::Handle
Definition: AssociativeIterator.h:50
SiStripCluster::firstStrip
uint16_t firstStrip() const
Definition: SiStripCluster.h:38
hit::x
double x
Definition: SiStripHitEffFromCalibTree.cc:89
PV3DBase::z
T z() const
Definition: PV3DBase.h:61
IdealMagneticFieldRecord
Definition: IdealMagneticFieldRecord.h:11
GeomDet::surface
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:37
TrajectoryStateOnSurface
Definition: TrajectoryStateOnSurface.h:16
ShallowTrackClustersProducer::Suffix
std::string Suffix
Definition: ShallowTrackClustersProducer.h:20
shallow::drift
LocalVector drift(const StripGeomDetUnit *, const MagneticField &, const SiStripLorentzAngle &)
Definition: ShallowTools.cc:36
SiStripLorentzAngle
Definition: SiStripLorentzAngle.h:26
funct::cos
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
edm::EventSetup::get
T get() const
Definition: EventSetup.h:73
TrackerDigiGeometryRecord
Definition: TrackerDigiGeometryRecord.h:15
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
DDAxes::z
reco::Track
Definition: Track.h:27
edm::ESHandle< TrackerGeometry >
Topology::measurementError
virtual MeasurementError measurementError(const LocalPoint &, const LocalError &) const =0
h
GeomDet::toLocal
LocalPoint toLocal(const GlobalPoint &gp) const
Conversion to the R.F. of the GeomDet.
Definition: GeomDet.h:58
StripTopology::strip
virtual float strip(const LocalPoint &) const =0
ShallowTrackClustersProducer::Prefix
std::string Prefix
Definition: ShallowTrackClustersProducer.h:21
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
edm::AssociationMap< edm::OneToOne< std::vector< Trajectory >, reco::TrackCollection, unsigned short > >::const_iterator
friend struct const_iterator
Definition: AssociationMap.h:274
edm::View
Definition: CaloClusterFwd.h:14
TrajectoryStateCombiner
Definition: TrajectoryStateCombiner.h:13
TrajectoryStateOnSurface::localPosition
LocalPoint localPosition() const
Definition: TrajectoryStateOnSurface.h:74
GeomDet::toGlobal
GlobalPoint toGlobal(const Local2DPoint &lp) const
Conversion to the global R.F. from the R.F. of the GeomDet.
Definition: GeomDet.h:49
trackerHitRTTI::single
Definition: trackerHitRTTI.h:10
ShallowTrackClustersProducer::clusters_token_
const edm::EDGetTokenT< edmNew::DetSetVector< SiStripCluster > > clusters_token_
Definition: ShallowTrackClustersProducer.h:19
PV3DBase::y
T y() const
Definition: PV3DBase.h:60
funct::tan
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
iEvent
int iEvent
Definition: GenABIO.cc:224
SiStripRecHit1D::cluster
ClusterRef cluster() const
Definition: SiStripRecHit1D.h:18
SiStripRecHit1D
Definition: SiStripRecHit1D.h:8
get
#define get
TrackValidation_cff.association
association
Definition: TrackValidation_cff.py:286
Trajectory::measurements
DataContainer const & measurements() const
Definition: Trajectory.h:178
ShallowTrackClustersProducer::tracks_token_
const edm::EDGetTokenT< edm::View< reco::Track > > tracks_token_
Definition: ShallowTrackClustersProducer.h:17
TrackingRecHit
Definition: TrackingRecHit.h:21
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
GloballyPositioned::position
const PositionType & position() const
Definition: GloballyPositioned.h:36
edmNew::DetSetVector
Definition: DetSetNew.h:13
shallow::make_cluster_map
CLUSTERMAP make_cluster_map(const edm::Event &, const edm::EDGetTokenT< edmNew::DetSetVector< SiStripCluster > > &)
Definition: ShallowTools.cc:12
eostools.move
def move(src, dest)
Definition: eostools.py:511
SiStripMatchedRecHit2D
Definition: SiStripMatchedRecHit2D.h:8
Trajectory
Definition: Trajectory.h:38
SiStripMatchedRecHit2D::monoCluster
SiStripCluster const & monoCluster() const
Definition: SiStripMatchedRecHit2D.h:41
SiStripLorentzAngleDepRcd
Definition: SiStripDependentRecords.h:40
toLocal
LocalVector toLocal(const reco::Track::Vector &v, const Surface &s)
Definition: ConversionProducer.h:192
StripGeomDetUnit::specificTopology
virtual const StripTopology & specificTopology() const
Returns a reference to the strip proxy topology.
Definition: StripGeomDetUnit.cc:17
HLT_2018_cff.track
track
Definition: HLT_2018_cff.py:10352
cms::Exception
Definition: Exception.h:70
heavyFlavorValidationHarvestingSequence_cff.combiner
combiner
Definition: heavyFlavorValidationHarvestingSequence_cff.py:107
edm::EDConsumerBase::consumes
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
Definition: EDConsumerBase.h:126
TrajectoryStateOnSurface::localError
const LocalTrajectoryError & localError() const
Definition: TrajectoryStateOnSurface.h:77
SiStripCluster
Definition: SiStripCluster.h:9
volumeBasedMagneticField_160812_cfi.magfield
magfield
Definition: volumeBasedMagneticField_160812_cfi.py:11
taus_updatedMVAIds_cff.mapping
mapping
Definition: taus_updatedMVAIds_cff.py:28
edm::InputTag
Definition: InputTag.h:15
PV3DBase::phi
Geom::Phi< T > phi() const
Definition: PV3DBase.h:66
shallow::CLUSTERMAP
std::map< std::pair< uint32_t, uint16_t >, unsigned int > CLUSTERMAP
Definition: ShallowTools.h:21
hit
Definition: SiStripHitEffFromCalibTree.cc:88
findQualityFiles.size
size
Write out results.
Definition: findQualityFiles.py:443
StripGeomDetUnit
Definition: StripGeomDetUnit.h:15
shallow::findTrackIndex
int findTrackIndex(const edm::Handle< edm::View< reco::Track > > &h, const reco::Track *t)
Definition: ShallowTools.cc:25