CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Attributes
MTDTrackingRecHitProducer Class Reference
Inheritance diagram for MTDTrackingRecHitProducer:
edm::stream::EDProducer<>

Public Member Functions

 MTDTrackingRecHitProducer (const edm::ParameterSet &ps)
 
void produce (edm::Event &evt, const edm::EventSetup &es) override
 
void run (edm::Handle< edmNew::DetSetVector< FTLCluster > > inputHandle, MTDTrackingDetSetVector &output)
 
 ~MTDTrackingRecHitProducer () override=default
 
- Public Member Functions inherited from edm::stream::EDProducer<>
 EDProducer ()=default
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 

Private Attributes

const MTDClusterParameterEstimatorcpe_
 
const edm::EDGetTokenT< FTLClusterCollectionftlbClusters_
 
const edm::EDGetTokenT< FTLClusterCollectionftleClusters_
 
const MTDGeometrygeom_
 

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, GlobalCacheLuminosityBlockContext
 
typedef CacheTypes::LuminosityBlockSummaryCache LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache, GlobalCacheRunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 

Detailed Description

Definition at line 32 of file MTDTrackingRecHitProducer.cc.

Constructor & Destructor Documentation

◆ MTDTrackingRecHitProducer()

MTDTrackingRecHitProducer::MTDTrackingRecHitProducer ( const edm::ParameterSet ps)
explicit

Definition at line 49 of file MTDTrackingRecHitProducer.cc.

50  : ftlbClusters_(consumes<FTLClusterCollection>(ps.getParameter<edm::InputTag>("barrelClusters"))),
51  ftleClusters_(consumes<FTLClusterCollection>(ps.getParameter<edm::InputTag>("endcapClusters"))) {
52  produces<MTDTrackingDetSetVector>();
53 }

◆ ~MTDTrackingRecHitProducer()

MTDTrackingRecHitProducer::~MTDTrackingRecHitProducer ( )
overridedefault

Member Function Documentation

◆ fillDescriptions()

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

Definition at line 56 of file MTDTrackingRecHitProducer.cc.

56  {
58  desc.add<edm::InputTag>("barrelClusters", edm::InputTag("mtdClusters:FTLBarrel"));
59  desc.add<edm::InputTag>("endcapClusters", edm::InputTag("mtdClusters:FTLEndcap"));
60  descriptions.add("mtdTrackingRecHitProducer", desc);
61 }

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

◆ produce()

void MTDTrackingRecHitProducer::produce ( edm::Event evt,
const edm::EventSetup es 
)
override

Definition at line 63 of file MTDTrackingRecHitProducer.cc.

63  {
66  geom_ = geom.product();
67 
69  es.get<MTDCPERecord>().get("MTDCPEBase", cpe);
70  cpe_ = cpe.product();
71 
73  evt.getByToken(ftlbClusters_, inputBarrel);
74 
76  evt.getByToken(ftleClusters_, inputEndcap);
77 
78  auto outputhits = std::make_unique<MTDTrackingDetSetVector>();
79  auto& theoutputhits = *outputhits;
80 
81  run(inputBarrel, theoutputhits);
82  run(inputEndcap, theoutputhits);
83 
84  evt.put(std::move(outputhits));
85 }

References cpe_, ftlbClusters_, ftleClusters_, relativeConstraints::geom, geom_, edm::EventSetup::get(), get, edm::Event::getByToken(), eostools::move(), edm::ESHandle< T >::product(), edm::Event::put(), and run().

◆ run()

void MTDTrackingRecHitProducer::run ( edm::Handle< edmNew::DetSetVector< FTLCluster > >  inputHandle,
MTDTrackingDetSetVector output 
)

Iterate over DetUnits, then over Clusters and invoke the CPE on each, and make a RecHit to store the result.

Definition at line 91 of file MTDTrackingRecHitProducer.cc.

91  {
92  const edmNew::DetSetVector<FTLCluster>& input = *inputHandle;
94 
95  DEBUG("inputCollection " << input.size());
96  for (; DSViter != input.end(); DSViter++) {
97  unsigned int detid = DSViter->detId();
98  DetId detIdObject(detid);
99  const auto genericDet = geom_->idToDetUnit(detIdObject);
100  if (genericDet == nullptr) {
101  throw cms::Exception("MTDTrackingRecHitProducer")
102  << "GeographicalID: " << std::hex << detid << " is invalid!" << std::dec << std::endl;
103  }
104 
105  MTDTrackingDetSetVector::FastFiller recHitsOnDet(output, detid);
106 
107  edmNew::DetSet<FTLCluster>::const_iterator clustIt = DSViter->begin(), clustEnd = DSViter->end();
108 
109  for (; clustIt != clustEnd; clustIt++) {
110  DEBUG("Cluster: size " << clustIt->size() << " " << clustIt->x() << "," << clustIt->y() << " "
111  << clustIt->energy() << " " << clustIt->time());
112  MTDClusterParameterEstimator::ReturnType tuple = cpe_->getParameters(*clustIt, *genericDet);
113  LocalPoint lp(std::get<0>(tuple));
114  LocalError le(std::get<1>(tuple));
115 
116  // Create a persistent edm::Ref to the cluster
118  // Make a RecHit and add it to the DetSet
119  MTDTrackingRecHit hit(lp, le, *genericDet, cluster);
120  DEBUG("MTD_TRH: " << hit.localPosition().x() << "," << hit.localPosition().y() << " : "
121  << hit.localPositionError().xx() << "," << hit.localPositionError().yy() << " : " << hit.time()
122  << " : " << hit.timeError());
123  // Now save it =================
124  recHitsOnDet.push_back(hit);
125  } // <-- End loop on Clusters
126  } // <-- End loop on DetUnits
127  DEBUG("outputCollection " << output.size());
128 }

References edmNew::DetSetVector< T >::begin(), cpe_, DEBUG, TauDecayModes::dec, edmNew::DetSetVector< T >::end(), Exception, geom_, MTDClusterParameterEstimator::getParameters(), MTDGeometry::idToDetUnit(), input, edmNew::makeRefTo(), convertSQLitetoXML_cfg::output, edmNew::DetSetVector< T >::FastFiller::push_back(), edmNew::DetSet< T >::size(), hit::x, and hit::y.

Referenced by produce().

Member Data Documentation

◆ cpe_

const MTDClusterParameterEstimator* MTDTrackingRecHitProducer::cpe_
private

Definition at line 46 of file MTDTrackingRecHitProducer.cc.

Referenced by produce(), and run().

◆ ftlbClusters_

const edm::EDGetTokenT<FTLClusterCollection> MTDTrackingRecHitProducer::ftlbClusters_
private

Definition at line 42 of file MTDTrackingRecHitProducer.cc.

Referenced by produce().

◆ ftleClusters_

const edm::EDGetTokenT<FTLClusterCollection> MTDTrackingRecHitProducer::ftleClusters_
private

Definition at line 43 of file MTDTrackingRecHitProducer.cc.

Referenced by produce().

◆ geom_

const MTDGeometry* MTDTrackingRecHitProducer::geom_
private

Definition at line 45 of file MTDTrackingRecHitProducer.cc.

Referenced by produce(), and run().

MTDDigiGeometryRecord
Definition: MTDDigiGeometryRecord.h:15
edm::ESHandle::product
T const * product() const
Definition: ESHandle.h:86
MTDTrackingRecHitProducer::geom_
const MTDGeometry * geom_
Definition: MTDTrackingRecHitProducer.cc:45
DEBUG
#define DEBUG(x)
Definition: MTDTrackingRecHitProducer.cc:29
input
static const std::string input
Definition: EdmProvDump.cc:48
MTDClusterParameterEstimator::ReturnType
std::tuple< LocalPoint, LocalError, TimeValue, TimeValueError > ReturnType
Definition: MTDClusterParameterEstimator.h:25
hit::y
double y
Definition: SiStripHitEffFromCalibTree.cc:90
MTDCPERecord
Definition: MTDCPERecord.h:10
convertSQLitetoXML_cfg.output
output
Definition: convertSQLitetoXML_cfg.py:72
FTLCluster
Definition: FTLCluster.h:21
MTDTrackingRecHitProducer::ftleClusters_
const edm::EDGetTokenT< FTLClusterCollection > ftleClusters_
Definition: MTDTrackingRecHitProducer.cc:43
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:89287
edmNew::makeRefTo
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)
Definition: DetSetVectorNew.h:689
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
edmNew::DetSetVector::const_iterator
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
Definition: DetSetVectorNew.h:197
edmNew::DetSetVector::begin
const_iterator begin(bool update=false) const
Definition: DetSetVectorNew.h:530
edm::Handle
Definition: AssociativeIterator.h:50
MTDGeometry::idToDetUnit
const MTDGeomDet * idToDetUnit(DetId) const override
Return the pointer to the GeomDetUnit corresponding to a given DetId.
Definition: MTDGeometry.cc:163
edm::Ref
Definition: AssociativeIterator.h:58
edmNew::DetSet::size
size_type size() const
Definition: DetSetNew.h:68
hit::x
double x
Definition: SiStripHitEffFromCalibTree.cc:89
DetId
Definition: DetId.h:17
edm::EventSetup::get
T get() const
Definition: EventSetup.h:80
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
edm::ESHandle
Definition: DTSurvey.h:22
relativeConstraints.geom
geom
Definition: relativeConstraints.py:72
edm::Event::getByToken
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:531
Point3DBase< float, LocalTag >
LocalError
Definition: LocalError.h:12
MTDTrackingRecHit
A 2D TrackerRecHit with time and time error information.
Definition: MTDTrackingRecHit.h:10
edm::Event::put
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:133
MTDTrackingRecHitProducer::ftlbClusters_
const edm::EDGetTokenT< FTLClusterCollection > ftlbClusters_
Definition: MTDTrackingRecHitProducer.cc:42
get
#define get
edmNew::DetSetVector
Definition: DetSetNew.h:13
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
eostools.move
def move(src, dest)
Definition: eostools.py:511
MTDTrackingRecHitProducer::cpe_
const MTDClusterParameterEstimator * cpe_
Definition: MTDTrackingRecHitProducer.cc:46
MTDClusterParameterEstimator::getParameters
virtual ReturnType getParameters(const FTLCluster &cl, const GeomDetUnit &det) const =0
edmNew::DetSetVector::end
const_iterator end(bool update=false) const
Definition: DetSetVectorNew.h:535
Exception
Definition: hltDiff.cc:246
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
MTDTrackingRecHitProducer::run
void run(edm::Handle< edmNew::DetSetVector< FTLCluster > > inputHandle, MTDTrackingDetSetVector &output)
Definition: MTDTrackingRecHitProducer.cc:91
edmNew::DetSetVector::FastFiller
Definition: DetSetVectorNew.h:202
TauDecayModes.dec
dec
Definition: TauDecayModes.py:143
edm::InputTag
Definition: InputTag.h:15
hit
Definition: SiStripHitEffFromCalibTree.cc:88
edmNew::DetSet::const_iterator
const data_type * const_iterator
Definition: DetSetNew.h:31