CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
TrajectorySeedProducer.h
Go to the documentation of this file.
1 #ifndef FastSimulation_Tracking_TrajectorySeedProducer_h
2 #define FastSimulation_Tracking_TrajectorySeedProducer_h
3 
8 
9 #include <vector>
10 #include <string>
11 
13 class MagneticField;
14 class MagneticFieldMap;
15 class TrackerGeometry;
18 class ParticlePropagator;
20 
21 namespace edm {
22  class ParameterSet;
23  class Event;
24  class EventSetup;
25 }
26 
28 {
29  public:
30 
32 
33  virtual ~TrajectorySeedProducer();
34 
35  virtual void beginRun(edm::Run const& run, const edm::EventSetup & es) override;
36 
37  virtual void produce(edm::Event& e, const edm::EventSetup& es) override;
38 
39  //
40  // 1 = PXB, 2 = PXD, 3 = TIB, 4 = TID, 5 = TOB, 6 = TEC, 0 = not valid
41  enum SubDet { NotValid, PXB, PXD, TIB, TID, TOB, TEC};
42  // 0 = barrel, -1 = neg. endcap, +1 = pos. endcap
43  enum Side { BARREL=0, NEG_ENDCAP=-1, POS_ENDCAP=1};
44 
45  struct LayerSpec {
49  unsigned int idLayer;
50  };
51  //
52 
53  Side setLayerSpecSide(const std::string& layerSpecSide) const;
54 
55  private:
56 
58  void stateOnDet(const TrajectoryStateOnSurface& ts,
59  unsigned int detid,
60  PTrajectoryStateOnDet& pts) const;
61 
65  GlobalPoint& gpos2,
66  double error,
67  bool forward,
68  unsigned algo) const;
69 
70  private:
71 
76 
77  std::vector<double> pTMin;
78  std::vector<double> maxD0;
79  std::vector<double> maxZ0;
80  std::vector<unsigned> minRecHits;
83 
86  unsigned int absMinRecHits;
87  std::vector<std::string> seedingAlgo;
88  std::vector<unsigned int> numberOfHits;
90  std::vector<unsigned int> firstHitSubDetectorNumber;
91  std::vector<unsigned int> secondHitSubDetectorNumber;
92  std::vector<unsigned int> thirdHitSubDetectorNumber;
93  std::vector< std::vector<unsigned int> > firstHitSubDetectors;
94  std::vector< std::vector<unsigned int> > secondHitSubDetectors;
95  std::vector< std::vector<unsigned int> > thirdHitSubDetectors;
97  bool newSyntax;
98  std::vector< std::vector<LayerSpec> > theLayersInSets;
99  //
100 
101  std::vector<double> originRadius;
102  std::vector<double> originHalfLength;
103  std::vector<double> originpTMin;
104 
105  std::vector<edm::InputTag> primaryVertices;
106  std::vector<double> zVertexConstraint;
107 
109 
110  std::vector<const reco::VertexCollection*> vertices;
111  double x0, y0, z0;
112 
113 };
114 
115 #endif
bool compatibleWithBeamAxis(GlobalPoint &gpos1, GlobalPoint &gpos2, double error, bool forward, unsigned algo) const
std::vector< unsigned > minRecHits
std::vector< unsigned int > firstHitSubDetectorNumber
virtual void beginRun(edm::Run const &run, const edm::EventSetup &es) override
std::vector< std::vector< LayerSpec > > theLayersInSets
TrajectorySeedProducer(const edm::ParameterSet &conf)
Side setLayerSpecSide(const std::string &layerSpecSide) const
std::vector< double > pTMin
std::vector< double > originRadius
const MagneticFieldMap * theFieldMap
void stateOnDet(const TrajectoryStateOnSurface &ts, unsigned int detid, PTrajectoryStateOnDet &pts) const
A mere copy (without memory leak) of an existing tracking method.
std::vector< double > originpTMin
std::vector< unsigned int > numberOfHits
PropagatorWithMaterial * thePropagator
static const double pts[33]
Definition: Constants.h:30
std::vector< std::vector< unsigned int > > secondHitSubDetectors
virtual void produce(edm::Event &e, const edm::EventSetup &es) override
std::vector< std::vector< unsigned int > > thirdHitSubDetectors
std::vector< double > zVertexConstraint
const TrackerGeometry * theGeometry
tuple conf
Definition: dbtoconf.py:185
std::vector< unsigned int > thirdHitSubDetectorNumber
std::vector< unsigned int > secondHitSubDetectorNumber
std::vector< const reco::VertexCollection * > vertices
std::vector< double > originHalfLength
std::vector< double > maxZ0
std::vector< std::string > seedingAlgo
std::vector< edm::InputTag > primaryVertices
std::vector< std::vector< unsigned int > > firstHitSubDetectors
std::vector< double > maxD0
Definition: Run.h:41
const MagneticField * theMagField