CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
SeedFromGenericPairOrTriplet.h
Go to the documentation of this file.
1 #ifndef SpecialSeedGenerators_SeedFromGenericPairOrTriplet_h
2 #define SpecialSeedGenerators_SeedFromGenericPairOrTriplet_h
3 /*
4 Class that produces a TrajectorySeed from a generic hit pair or triplet withou the vertex constraint.
5 If used without B (e.g. cosmics) it checks the three hits are aligned.
6 If used with B it checks the initial state has a momentum greated than the threshold set in the cfg
7 */
8 //FWK
11 //DataFormats
15 //RecoLocal
17 //TrackingTools
23 //Geometry
25 //MagneticField
27 
28 #include <vector>
29 
31  public:
33  const TrackerGeometry* geom,
34  const TransientTrackingRecHitBuilder* builder,
37  const std::vector<int>& charges,
38  bool momFromPSet,
39  double errorRescaling );
41  void setMomentumTo(double mom){theP = mom;};
42  bool momentumFromPSet(){return theSetMomentum;};
43  //builds a seed from a pair or triplet. it returns a null pointer if the seed does not pass the quality filter
44  std::vector<TrajectorySeed*> seed(const SeedingHitSet& hits,
46  const NavigationDirection& seedDir,
47  const edm::EventSetup& iSetup);
50  const NavigationDirection& seedDir,
51  const edm::EventSetup& iSetup, int charge = -1) const ;
54  const NavigationDirection& seedDir, int charge = -1) const ;
55 
56 
57  private:
58  TrajectorySeed* buildSeed(const GlobalVector& momentum,
59  int charge,
60  //const TrackingRecHit* firsthit,
61  std::vector<const BaseTrackerRecHit*>& trHits,
62  const PropagationDirection& dir) const;
63  //initial error estimate
64  //CurvilinearTrajectoryError initialError(const TrackingRecHit* rechit);
65  //in the case of noB it returns false if 3 hist are not aligned
66  //if the B is on it returns false if the initial momentum is less than p
67  bool qualityFilter(const SeedingHitSet& hits) const ;
68  bool qualityFilter(const GlobalVector& momentum) const;
74 
75  float theP;
77  std::vector<int> theCharges;
79 };
80 
81 #endif
TrajectorySeed * seedFromPair(const SeedingHitSet &hits, const PropagationDirection &dir, const NavigationDirection &seedDir, int charge=-1) const
PropagationDirection
const TransientTrackingRecHitBuilder * theBuilder
TrajectorySeed * seedFromTriplet(const SeedingHitSet &hits, const PropagationDirection &dir, const NavigationDirection &seedDir, const edm::EventSetup &iSetup, int charge=-1) const
std::vector< TrajectorySeed * > seed(const SeedingHitSet &hits, const PropagationDirection &dir, const NavigationDirection &seedDir, const edm::EventSetup &iSetup)
SeedFromGenericPairOrTriplet(const MagneticField *mf, const TrackerGeometry *geom, const TransientTrackingRecHitBuilder *builder, const Propagator *propagatorAlong, const Propagator *propagatorOpposite, const std::vector< int > &charges, bool momFromPSet, double errorRescaling)
bool qualityFilter(const SeedingHitSet &hits) const
TrajectorySeed * buildSeed(const GlobalVector &momentum, int charge, std::vector< const BaseTrackerRecHit * > &trHits, const PropagationDirection &dir) const
dbl *** dir
Definition: mlp_gen.cc:35