Skip to content

Commit

Permalink
Added esConsumes calls to SeedGeneratorForCosmics
Browse files Browse the repository at this point in the history
  • Loading branch information
Dr15Jones committed Sep 13, 2021
1 parent bd47432 commit f13a105
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 37 deletions.
Expand Up @@ -9,6 +9,7 @@
#include "RecoTracker/TkTrackingRegions/interface/GlobalTrackingRegion.h"
//#include "RecoTracker/SpecialSeedGenerators/interface/SeedGeneratorFromLayerPairs.h"
#include "FWCore/Framework/interface/EventSetup.h"
#include "FWCore/Framework/interface/ConsumesCollector.h"
#include "FWCore/ParameterSet/interface/ParameterSet.h"
#include "DataFormats/TrackerRecHit2D/interface/SiStripMatchedRecHit2DCollection.h"
#include "DataFormats/TrackerRecHit2D/interface/SiStripRecHit2DCollection.h"
Expand All @@ -22,33 +23,43 @@
#include "TrackingTools/TransientTrackingRecHit/interface/TransientTrackingRecHitBuilder.h"
#include "RecoPixelVertexing/PixelTriplets/interface/CosmicHitTripletGenerator.h"
class PixelSeedLayerPairs;
class GeometricSearchTracker;
class TrackerRecoGeometryRecord;

class SeedGeneratorForCosmics {
public:
typedef TrajectoryStateOnSurface TSOS;
SeedGeneratorForCosmics(const edm::ParameterSet &conf);
virtual ~SeedGeneratorForCosmics(){};
SeedGeneratorForCosmics(const edm::ParameterSet &conf, edm::ConsumesCollector);

void run(const SiStripRecHit2DCollection &collstereo,
const SiStripRecHit2DCollection &collrphi,
const SiStripMatchedRecHit2DCollection &collmatched,
const edm::EventSetup &c,
TrajectorySeedCollection &);

private:
void init(const SiStripRecHit2DCollection &collstereo,
const SiStripRecHit2DCollection &collrphi,
const SiStripMatchedRecHit2DCollection &collmatched,
const edm::EventSetup &c);

void run(TrajectorySeedCollection &, const edm::EventSetup &c);
bool seeds(TrajectorySeedCollection &output, const edm::EventSetup &c, const TrackingRegion &region);
bool seeds(TrajectorySeedCollection &output, const TrackingRegion &region);

private:
int32_t maxSeeds_;
GlobalTrackingRegion region;
CosmicHitPairGenerator *thePairGenerator;
CosmicHitTripletGenerator *theTripletGenerator;
edm::ESHandle<MagneticField> magfield;
edm::ESHandle<TrackerGeometry> tracker;

const edm::ESGetToken<MagneticField, IdealMagneticFieldRecord> theMagfieldToken;
const edm::ESGetToken<TrackerGeometry, TrackerDigiGeometryRecord> theTrackerToken;
const edm::ESGetToken<GeometricSearchTracker, TrackerRecoGeometryRecord> theSearchTrackerToken;
const edm::ESGetToken<TrackerTopology, TrackerTopologyRcd> theTTopoToken;

KFUpdator *theUpdator;
PropagatorWithMaterial *thePropagatorAl;
PropagatorWithMaterial *thePropagatorOp;
const TransientTrackingRecHitBuilder *TTTRHBuilder;
std::string builderName;
std::string geometry;
std::string hitsforseeds;
float seedpt;
Expand Down
6 changes: 2 additions & 4 deletions RecoTracker/SpecialSeedGenerators/src/CosmicSeedGenerator.cc
Expand Up @@ -15,7 +15,7 @@

using namespace std;
CosmicSeedGenerator::CosmicSeedGenerator(edm::ParameterSet const& conf)
: cosmic_seed(conf),
: cosmic_seed(conf, consumesCollector()),
check(conf, consumesCollector())

{
Expand Down Expand Up @@ -45,10 +45,8 @@ void CosmicSeedGenerator::produce(edm::Event& ev, const edm::EventSetup& es) {
//check on the number of clusters
size_t clustsOrZero = check.tooManyClusters(ev);
if (!clustsOrZero) {
cosmic_seed.init(*stereorecHits, *rphirecHits, *matchedrecHits, es);

// invoke the seed finding algorithm
cosmic_seed.run(*output, es);
cosmic_seed.run(*stereorecHits, *rphirecHits, *matchedrecHits, es, *output);
} else
edm::LogError("TooManyClusters") << "Found too many clusters (" << clustsOrZero << "), bailing out.\n";

Expand Down
46 changes: 20 additions & 26 deletions RecoTracker/SpecialSeedGenerators/src/SeedGeneratorForCosmics.cc
Expand Up @@ -10,51 +10,45 @@ void SeedGeneratorForCosmics::init(const SiStripRecHit2DCollection& collstereo,
const SiStripRecHit2DCollection& collrphi,
const SiStripMatchedRecHit2DCollection& collmatched,
const edm::EventSetup& iSetup) {
iSetup.get<IdealMagneticFieldRecord>().get(magfield);
iSetup.get<TrackerDigiGeometryRecord>().get(tracker);
magfield = iSetup.getHandle(theMagfieldToken);
tracker = iSetup.getHandle(theTrackerToken);
thePropagatorAl = new PropagatorWithMaterial(alongMomentum, 0.1057, &(*magfield));
thePropagatorOp = new PropagatorWithMaterial(oppositeToMomentum, 0.1057, &(*magfield));
theUpdator = new KFUpdator();

// get the transient builder
//

edm::ESHandle<TransientTrackingRecHitBuilder> theBuilder;

iSetup.get<TransientRecHitRecord>().get(builderName, theBuilder);
TTTRHBuilder = theBuilder.product();
LogDebug("CosmicSeedFinder") << " Hits built with " << hitsforseeds << " hits";

edm::ESHandle<GeometricSearchTracker> track;
iSetup.get<TrackerRecoGeometryRecord>().get(track);
edm::ESHandle<TrackerTopology> httopo;
iSetup.get<TrackerTopologyRcd>().get(httopo);
GeometricSearchTracker const& track = iSetup.getData(theSearchTrackerToken);
TrackerTopology const& ttopo = iSetup.getData(theTTopoToken);

CosmicLayerPairs cosmiclayers(geometry, collrphi, collmatched, *track, *httopo);
CosmicLayerPairs cosmiclayers(geometry, collrphi, collmatched, track, ttopo);

thePairGenerator = new CosmicHitPairGenerator(cosmiclayers, *tracker);
HitPairs.clear();
if ((hitsforseeds == "pairs") || (hitsforseeds == "pairsandtriplets")) {
thePairGenerator->hitPairs(region, HitPairs);
}

CosmicLayerTriplets cosmiclayers2(geometry, collrphi, *track, *httopo);
CosmicLayerTriplets cosmiclayers2(geometry, collrphi, track, ttopo);
theTripletGenerator = new CosmicHitTripletGenerator(cosmiclayers2, *tracker);
HitTriplets.clear();
if ((hitsforseeds == "triplets") || (hitsforseeds == "pairsandtriplets")) {
theTripletGenerator->hitTriplets(region, HitTriplets);
}
}

SeedGeneratorForCosmics::SeedGeneratorForCosmics(edm::ParameterSet const& conf)
: maxSeeds_(conf.getParameter<int32_t>("maxSeeds")) {
SeedGeneratorForCosmics::SeedGeneratorForCosmics(edm::ParameterSet const& conf, edm::ConsumesCollector iCC)
: maxSeeds_(conf.getParameter<int32_t>("maxSeeds")),
theMagfieldToken(iCC.esConsumes()),
theTrackerToken(iCC.esConsumes()),
theSearchTrackerToken(iCC.esConsumes()),
theTTopoToken(iCC.esConsumes()) {
float ptmin = conf.getParameter<double>("ptMin");
float originradius = conf.getParameter<double>("originRadius");
float halflength = conf.getParameter<double>("originHalfLength");
float originz = conf.getParameter<double>("originZPosition");
seedpt = conf.getParameter<double>("SeedPt");

builderName = conf.getParameter<std::string>("TTRHBuilder");
geometry = conf.getUntrackedParameter<std::string>("GeometricStructure", "STANDARD");
region = GlobalTrackingRegion(ptmin, originradius, halflength, originz);
hitsforseeds = conf.getUntrackedParameter<std::string>("HitsForSeeds", "pairs");
Expand All @@ -68,17 +62,20 @@ SeedGeneratorForCosmics::SeedGeneratorForCosmics(edm::ParameterSet const& conf)
//***
}

void SeedGeneratorForCosmics::run(TrajectorySeedCollection& output, const edm::EventSetup& iSetup) {
seeds(output, iSetup, region);
void SeedGeneratorForCosmics::run(const SiStripRecHit2DCollection& collstereo,
const SiStripRecHit2DCollection& collrphi,
const SiStripMatchedRecHit2DCollection& collmatched,
const edm::EventSetup& c,
TrajectorySeedCollection& output) {
init(collstereo, collrphi, collmatched, c);
seeds(output, region);
delete thePairGenerator;
delete theTripletGenerator;
delete thePropagatorAl;
delete thePropagatorOp;
delete theUpdator;
}
bool SeedGeneratorForCosmics::seeds(TrajectorySeedCollection& output,
const edm::EventSetup& iSetup,
const TrackingRegion& region) {
bool SeedGeneratorForCosmics::seeds(TrajectorySeedCollection& output, const TrackingRegion& region) {
LogDebug("CosmicSeedFinder") << "Number of triplets " << HitTriplets.size();
LogDebug("CosmicSeedFinder") << "Number of pairs " << HitPairs.size();

Expand All @@ -104,8 +101,6 @@ bool SeedGeneratorForCosmics::seeds(TrajectorySeedCollection& output,
->surface()
.toGlobal((*(HitTriplets[it].outer())).localPosition());

// SeedingHitSet::ConstRecHitPointer outrhit=TTTRHBuilder->build(HitPairs[is].outer())

SeedingHitSet::ConstRecHitPointer outrhit = HitTriplets[it].outer();
//***top-bottom
SeedingHitSet::ConstRecHitPointer innrhit = HitTriplets[it].inner();
Expand Down Expand Up @@ -187,7 +182,6 @@ bool SeedGeneratorForCosmics::seeds(TrajectorySeedCollection& output,
.toGlobal((*(HitPairs[is].outer())).localPosition());

LogDebug("CosmicSeedFinder") << "inner point of the seed " << inner << " outer point of the seed " << outer;
//RC const TransientTrackingRecHit* outrhit=TTTRHBuilder->build(HitPairs[is].outer().RecHit());
SeedingHitSet::ConstRecHitPointer outrhit = HitPairs[is].outer();
//***top-bottom
SeedingHitSet::ConstRecHitPointer innrhit = HitPairs[is].inner();
Expand Down

0 comments on commit f13a105

Please sign in to comment.