CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
RPCSeedPattern.h
Go to the documentation of this file.
1 #ifndef MRecoMuon_MuonSeedGenerator_RPCSeedPattern_H
2 #define MRecoMuon_MuonSeedGenerator_RPCSeedPattern_H
3 
19 #include <vector>
20 
21 #ifndef upper_limit_pt
22 #define upper_limit_pt 100
23 #endif
24 
25 #ifndef lower_limit_pt
26 #define lower_limit_pt 3.0
27 #endif
28 
29 
31 
36 
37  public:
38  typedef std::pair<ConstMuonRecHitPointer, ConstMuonRecHitPointer> RPCSegment;
39  typedef std::pair<TrajectorySeed, double> weightedTrajectorySeed;
40 
41  public:
42  RPCSeedPattern();
44  void configure(const edm::ParameterSet& iConfig);
45  void clear() { theRecHits.clear(); }
46  void add(const ConstMuonRecHitPointer& hit) { theRecHits.push_back(hit); }
47  unsigned int nrhit() const { return theRecHits.size(); }
48 
49  private:
50  friend class RPCSeedFinder;
51  weightedTrajectorySeed seed(const edm::EventSetup& eSetup, int& isGoodSeed);
52  void ThreePointsAlgorithm();
53  void MiddlePointsAlgorithm();
54  void SegmentAlgorithm();
56  bool checkSegment() const;
62  double getDistance(const ConstMuonRecHitPointer& precHit, const GlobalVector& Center) const;
63  bool checkStraightwithThreerecHits(ConstMuonRecHitPointer (&precHit)[3], double MinDeltaPhi) const;
64  GlobalVector computePtwithThreerecHits(double& pt, double& pt_err, ConstMuonRecHitPointer (&precHit)[3]) const;
65  bool checkStraightwithSegment(const RPCSegment& Segment1, const RPCSegment& Segment2, double MinDeltaPhi) const;
66  GlobalVector computePtwithSegment(const RPCSegment& Segment1, const RPCSegment& Segment2) const;
67  bool checkStraightwithThreerecHits(double (&x)[3], double (&y)[3], double MinDeltaPhi) const;
68  GlobalVector computePtWithThreerecHits(double& pt, double& pt_err, double (&x)[3], double (&y)[3]) const;
69 
72  double extropolateStep(const GlobalPoint& startPosition, const GlobalVector& startMomentum, ConstMuonRecHitContainer::const_iterator iter, const int ClockwiseDirection, double& tracklength, const edm::EventSetup& eSetup);
73 
74  //void computeBestPt(double* pt, double* spt, double& ptmean0, double& sptmean0, unsigned int NumberofPt) const;
75 
76  // ----------member data ---------------------------
77 
78  // parameters for configuration
79  double MaxRSD;
81  unsigned int AlgorithmType;
83  double ZError;
84  double MinDeltaPhi;
85  double stepLength;
86  unsigned int sampleCount;
87  // Signals for run seed()
89  // recHits of a pattern
91  // Complex pattern
96  double meanRadius2;
100  double lastPhi;
101  double S;
102  // Simple pattern
105  double meanRadius;
106  double meanBz;
107  double deltaBz;
108  // Pattern estimation part
113  int Charge;
114  double meanPt;
115  double meanSpt;
117 };
118 
119 #endif
MuonTransientTrackingRecHit::ConstMuonRecHitPointer ConstMuonRecHitPointer
weightedTrajectorySeed createFakeSeed(int &isGoodSeed, const edm::EventSetup &eSetup)
void configure(const edm::ParameterSet &iConfig)
void checkSegmentAlgorithmSpecial(const edm::EventSetup &eSetup)
void MiddlePointsAlgorithm()
double MagnecticFieldThreshold
ConstMuonRecHitPointer FirstRecHit() const
GlobalPoint entryPosition
bool checkStraightwithThreerecHits(ConstMuonRecHitPointer(&precHit)[3], double MinDeltaPhi) const
weightedTrajectorySeed createSeed(int &isGoodSeed, const edm::EventSetup &eSetup)
GlobalVector Momentum
double extropolateStep(const GlobalPoint &startPosition, const GlobalVector &startMomentum, ConstMuonRecHitContainer::const_iterator iter, const int ClockwiseDirection, double &tracklength, const edm::EventSetup &eSetup)
std::pair< ConstMuonRecHitPointer, ConstMuonRecHitPointer > RPCSegment
LocalTrajectoryError getSpecialAlgorithmErrorMatrix(const ConstMuonRecHitPointer &first, const ConstMuonRecHitPointer &best)
double getDistance(const ConstMuonRecHitPointer &precHit, const GlobalVector &Center) const
bool autoAlgorithmChoose
unsigned int nrhit() const
double deltaRThreshold
RPCSegment SegmentRB[2]
MuonTransientTrackingRecHit::ConstMuonRecHitContainer ConstMuonRecHitContainer
MuonTransientTrackingRecHit::MuonRecHitContainer MuonRecHitContainer
weightedTrajectorySeed seed(const edm::EventSetup &eSetup, int &isGoodSeed)
ConstMuonRecHitContainer theRecHits
void ThreePointsAlgorithm()
const edm::EventSetup * eSetup
Definition: RPCSeedFinder.h:46
ConstMuonRecHitPointer BestRefRecHit() const
GlobalVector Center
std::pair< TrajectorySeed, double > weightedTrajectorySeed
std::vector< ConstMuonRecHitPointer > ConstMuonRecHitContainer
GlobalVector Center2
unsigned int AlgorithmType
GlobalVector meanMagneticField2
void checkSimplePattern(const edm::EventSetup &eSetup)
void SegmentAlgorithmSpecial(const edm::EventSetup &eSetup)
GlobalVector computePtWithThreerecHits(double &pt, double &pt_err, double(&x)[3], double(&y)[3]) const
void add(const ConstMuonRecHitPointer &hit)
MuonTransientTrackingRecHit const * ConstMuonRecHitPointer
bool checkSegment() const
bool checkStraightwithSegment(const RPCSegment &Segment1, const RPCSegment &Segment2, double MinDeltaPhi) const
GlobalPoint leavePosition
unsigned int sampleCount
GlobalVector computePtwithSegment(const RPCSegment &Segment1, const RPCSegment &Segment2) const
GlobalVector computePtwithThreerecHits(double &pt, double &pt_err, ConstMuonRecHitPointer(&precHit)[3]) const
std::vector< MuonRecHitPointer > MuonRecHitContainer
MuonTransientTrackingRecHit::MuonRecHitPointer MuonRecHitPointer