CMS 3D CMS Logo

CtfSpecialSeedGenerator.h
Go to the documentation of this file.
1 #ifndef CtfSpecialSeedGenerator_H
2 #define CtfSpecialSeedGenerator_H
3 
8 //FWK
14 //DataFormats
18 //RecoTracker
26 //#include "RecoTracker/SpecialSeedGenerators/interface/GenericPairOrTripletGenerator.h"
27 //#include "RecoTracker/SpecialSeedGenerators/interface/SeedCleaner.h"
28 //MagneticField
30 //TrackingTools
34 //Geometry
37 
38 #include <map>
39 
41 public:
43 
45 
46  ~CtfSpecialSeedGenerator() override; //{};
47 
48  void beginRun(edm::Run const&, edm::EventSetup const&) override;
49  void endRun(edm::Run const&, edm::EventSetup const&) override;
50 
51  void produce(edm::Event& e, const edm::EventSetup& c) override;
52 
53 private:
55 
56  bool buildSeeds(const edm::EventSetup& iSetup,
57  const edm::Event& e,
58  const OrderedSeedingHits& osh,
59  const NavigationDirection& navdir,
62  //checks that the hits used are at positive y and are on different layers
63  bool preliminaryCheck(const SeedingHitSet& shs, const edm::EventSetup& es);
64  //We can check if the seed points in a region covered by scintillators. To be used only in noB case
65  //because it uses StraightLinePropagation
66  bool postCheck(const TrajectorySeed& seed);
67 
68 private:
70 
77 
81  //edm::ESHandle<SeedCleaner> theCleaner;
82  //OrderedHitsGenerator* hitsGeneratorOutIn;
83  //OrderedHitsGenerator* hitsGeneratorInOut;
84  //PropagationDirection inOutPropagationDirection;
85  //PropagationDirection outInPropagationDirection;
86  //GenericPairOrTripletGenerator* hitsGeneratorOutIn;
87  //GenericPairOrTripletGenerator* hitsGeneratorInOut;
88  std::vector<std::unique_ptr<OrderedHitsGenerator> > theGenerators;
89  std::vector<PropagationDirection> thePropDirs;
90  std::vector<NavigationDirection> theNavDirs;
91  std::unique_ptr<TrackingRegionProducer> theRegionProducer;
92  //TrajectoryStateTransform theTransformer;
93  std::unique_ptr<SeedFromGenericPairOrTriplet> theSeedBuilder;
98  int32_t theMaxSeeds;
100 };
101 #endif
std::unique_ptr< SeedFromGenericPairOrTriplet > theSeedBuilder
std::unique_ptr< TrackingRegionProducer > theRegionProducer
BoundPlane::BoundPlanePointer lowerScintillator
const edm::ESGetToken< TransientTrackingRecHitBuilder, TransientRecHitRecord > theBuilderToken
bool run(const edm::EventSetup &c, const edm::Event &e, TrajectorySeedCollection &output)
PropagationDirection
bool buildSeeds(const edm::EventSetup &iSetup, const edm::Event &e, const OrderedSeedingHits &osh, const NavigationDirection &navdir, const PropagationDirection &dir, TrajectorySeedCollection &output)
TrajectoryStateOnSurface TSOS
const edm::ESGetToken< Propagator, TrackingComponentsRecord > thePropOppositeToken
CtfSpecialSeedGenerator(const edm::ParameterSet &conf)
BoundPlane::BoundPlanePointer upperScintillator
std::vector< TrajectorySeed > TrajectorySeedCollection
bool preliminaryCheck(const SeedingHitSet &shs, const edm::EventSetup &es)
~CtfSpecialSeedGenerator() override
bool postCheck(const TrajectorySeed &seed)
const edm::ESGetToken< Propagator, TrackingComponentsRecord > thePropAlongToken
void produce(edm::Event &e, const edm::EventSetup &c) override
void beginRun(edm::Run const &, edm::EventSetup const &) override
edm::ESHandle< MagneticField > theMagfield
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > theTrackerToken
edm::ESHandle< TrackerGeometry > theTracker
edm::ESHandle< TransientTrackingRecHitBuilder > theBuilder
Definition: output.py:1
void endRun(edm::Run const &, edm::EventSetup const &) override
std::vector< NavigationDirection > theNavDirs
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > theTopoToken
std::vector< std::unique_ptr< OrderedHitsGenerator > > theGenerators
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > theMFToken
std::vector< PropagationDirection > thePropDirs
Definition: Run.h:45