CMS 3D CMS Logo

CtfSpecialSeedGenerator.h
Go to the documentation of this file.
1 #ifndef CtfSpecialSeedGenerator_H
2 #define CtfSpecialSeedGenerator_H
3 
8 //FWK
16 //DataFormats
20 //RecoTracker
28 //#include "RecoTracker/SpecialSeedGenerators/interface/GenericPairOrTripletGenerator.h"
29 //#include "RecoTracker/SpecialSeedGenerators/interface/SeedCleaner.h"
30 //MagneticField
32 //TrackingTools
36 //Geometry
39 
40 #include <map>
41 
43 public:
45 
47  ~CtfSpecialSeedGenerator() override = default;
48 
49  void beginRun(edm::Run const&, edm::EventSetup const&) override;
50  void endRun(edm::Run const&, edm::EventSetup const&) override;
51 
52  void produce(edm::Event& e, const edm::EventSetup& c) override;
53 
54  static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
55 
56 private:
58 
59  bool buildSeeds(const edm::EventSetup& iSetup,
60  const edm::Event& e,
61  const OrderedSeedingHits& osh,
62  const NavigationDirection& navdir,
65  //checks that the hits used are at positive y and are on different layers
66  bool preliminaryCheck(const SeedingHitSet& shs, const edm::EventSetup& es);
67  //We can check if the seed points in a region covered by scintillators. To be used only in noB case
68  //because it uses StraightLinePropagation
69  bool postCheck(const TrajectorySeed& seed);
70 
71 private:
73 
80 
84  //edm::ESHandle<SeedCleaner> theCleaner;
85  //OrderedHitsGenerator* hitsGeneratorOutIn;
86  //OrderedHitsGenerator* hitsGeneratorInOut;
87  //PropagationDirection inOutPropagationDirection;
88  //PropagationDirection outInPropagationDirection;
89  //GenericPairOrTripletGenerator* hitsGeneratorOutIn;
90  //GenericPairOrTripletGenerator* hitsGeneratorInOut;
91  std::vector<std::unique_ptr<OrderedHitsGenerator> > theGenerators;
92  std::vector<PropagationDirection> thePropDirs;
93  std::vector<NavigationDirection> theNavDirs;
94  std::unique_ptr<TrackingRegionProducer> theRegionProducer;
95  //TrajectoryStateTransform theTransformer;
96  std::unique_ptr<SeedFromGenericPairOrTriplet> theSeedBuilder;
101  int32_t theMaxSeeds;
103 };
104 #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
~CtfSpecialSeedGenerator() override=default
bool preliminaryCheck(const SeedingHitSet &shs, const edm::EventSetup &es)
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
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
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