16 auto ttClusterDSVForOutput = std::make_unique<edmNew::DetSetVector<TTCluster<Ref_Phase2TrackerDigi_>>>();
17 std::map<DetId, std::vector<Ref_Phase2TrackerDigi_>>
rawHits;
18 this->RetrieveRawHits(rawHits, iEvent);
30 for (
auto gd = theTrackerGeom->
dets().begin(); gd != theTrackerGeom->
dets().end(); gd++) {
31 DetId detid = (*gd)->geographicalId();
36 DetId lowerDetid = detid;
41 std::vector<std::vector<Ref_Phase2TrackerDigi_>> lowerHits, upperHits;
44 typename std::map<DetId, std::vector<Ref_Phase2TrackerDigi_>>::const_iterator lowerHitFind =
45 rawHits.find(lowerDetid);
46 typename std::map<DetId, std::vector<Ref_Phase2TrackerDigi_>>::const_iterator upperHitFind =
47 rawHits.find(upperDetid);
53 if (lowerHitFind != rawHits.end())
54 theClusterFindingAlgoHandle->Cluster(lowerHits, lowerHitFind->second, isPSP);
55 if (upperHitFind != rawHits.end())
56 theClusterFindingAlgoHandle->Cluster(upperHits, upperHitFind->second,
false);
63 for (
unsigned int i = 0;
i < lowerHits.size();
i++) {
67 if (lowerOutputFiller.
empty())
68 lowerOutputFiller.abort();
73 for (
unsigned int i = 0;
i < upperHits.size();
i++) {
77 if (upperOutputFiller.
empty())
78 upperOutputFiller.abort();
83 iEvent.
put(
std::move(ttClusterDSVForOutput),
"ClusterInclusive");
92 std::vector<edm::EDGetTokenT<edm::DetSetVector<Phase2TrackerDigi>>>::iterator it;
93 for (it = rawHitTokens.begin(); it != rawHitTokens.end(); ++it) {
101 for (detsIter = HitHandle->begin(); detsIter != HitHandle->end(); detsIter++) {
102 DetId id = detsIter->id;
103 for (hitsIter = detsIter->data.
begin(); hitsIter != detsIter->data.
end(); hitsIter++) {
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Item & push_back(id_type iid)
bool getByToken(EDGetToken token, Handle< PROD > &result) const
void RetrieveRawHits(std::map< DetId, std::vector< T > > &mRawHits, const edm::Event &iEvent)
Get hits.
DetId partnerDetId(const DetId &id) const
bool isLower(const DetId &id) const
const DetContainer & dets() const override
Returm a vector of all GeomDet (including all GeomDetUnits)
Ref< typename HandleT::element_type, typename HandleT::element_type::value_type::value_type > makeRefTo(const HandleT &iHandle, det_id_type iDetID, typename HandleT::element_type::value_type::const_iterator itIter)
void produce(edm::Event &iEvent, const edm::EventSetup &iSetup) override
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
ModuleType getDetectorType(DetId) const
iterator end()
Return the off-the-end iterator.
NOTE: this is needed even if it seems not.
iterator begin()
Return an iterator to the first DetSet.
collection_type::const_iterator const_iterator
collection_type::const_iterator const_iterator
T const * product() const