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 
13 
14 #include <vector>
15 #include <string>
16 
18 class MagneticField;
19 class MagneticFieldMap;
20 class TrackerGeometry;
23 class ParticlePropagator;
25 
26 
27 namespace edm {
28  class ParameterSet;
29  class Event;
30  class EventSetup;
31 }
32 
33 
35 {
36  public:
37 
39 
40  virtual ~TrajectorySeedProducer();
41 
42  virtual void beginRun(edm::Run const& run, const edm::EventSetup & es) override;
43 
44  virtual void produce(edm::Event& e, const edm::EventSetup& es) override;
45 
46  //
47  // 1 = PXB, 2 = PXD, 3 = TIB, 4 = TID, 5 = TOB, 6 = TEC, 0 = not valid
48  enum SubDet { NotValid, PXB, PXD, TIB, TID, TOB, TEC};
49  // 0 = barrel, -1 = neg. endcap, +1 = pos. endcap
50  enum Side { BARREL=0, NEG_ENDCAP=-1, POS_ENDCAP=1};
51 
52  struct LayerSpec {
56  unsigned int idLayer;
57  };
58  //
59 
60  Side setLayerSpecSide(const std::string& layerSpecSide) const;
61 
62  private:
63 
65  void stateOnDet(const TrajectoryStateOnSurface& ts,
66  unsigned int detid,
67  PTrajectoryStateOnDet& pts) const;
68 
72  GlobalPoint& gpos2,
73  double error,
74  bool forward,
75  unsigned algo) const;
76 
77  private:
78 
83 
84  std::vector<double> pTMin;
85  std::vector<double> maxD0;
86  std::vector<double> maxZ0;
87  std::vector<unsigned> minRecHits;
90 
93  unsigned int absMinRecHits;
94  std::vector<std::string> seedingAlgo;
95  std::vector<unsigned int> numberOfHits;
97  std::vector<unsigned int> firstHitSubDetectorNumber;
98  std::vector<unsigned int> secondHitSubDetectorNumber;
99  std::vector<unsigned int> thirdHitSubDetectorNumber;
100  std::vector< std::vector<unsigned int> > firstHitSubDetectors;
101  std::vector< std::vector<unsigned int> > secondHitSubDetectors;
102  std::vector< std::vector<unsigned int> > thirdHitSubDetectors;
104  bool newSyntax;
105  std::vector< std::vector<LayerSpec> > theLayersInSets;
106  //
107 
108  std::vector<double> originRadius;
109  std::vector<double> originHalfLength;
110  std::vector<double> originpTMin;
111 
112  std::vector<edm::InputTag> primaryVertices;
113  std::vector<double> zVertexConstraint;
114 
116 
117  std::vector<const reco::VertexCollection*> vertices;
118  double x0, y0, z0;
119 
120  // tokens
125  std::vector<edm::EDGetTokenT<reco::VertexCollection> > recoVertexToken;
126 };
127 
128 #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< edm::EDGetTokenT< reco::VertexCollection > > recoVertexToken
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
edm::EDGetTokenT< SiTrackerGSMatchedRecHit2DCollection > recHitToken
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
edm::EDGetTokenT< edm::SimVertexContainer > simVertexToken
tuple conf
Definition: dbtoconf.py:185
std::vector< unsigned int > thirdHitSubDetectorNumber
edm::EDGetTokenT< edm::SimTrackContainer > simTrackToken
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
edm::EDGetTokenT< reco::BeamSpot > beamSpotToken
std::vector< std::vector< unsigned int > > firstHitSubDetectors
std::vector< double > maxD0
Definition: Run.h:41
const MagneticField * theMagField