CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
HICMeasurementEstimator.h
Go to the documentation of this file.
1 #ifndef CommonDet_HICMeasurementEstimator_H
2 #define CommonDet_HICMeasurementEstimator_H
3 
21 
23 public:
24 
30  explicit HICMeasurementEstimator(const GeometricSearchTracker* theTracker0,
31  const MagneticField * mf, double maxChi2, double nSigma = 3.):
32  Chi2MeasurementEstimatorBase(maxChi2,nSigma)
33  {
34  theTracker = theTracker0;
38  field = mf;
39  setHICDetMap();
40  }
41 
42  virtual std::pair<bool,double> estimate(const TrajectoryStateOnSurface&,
43  const TransientTrackingRecHit&) const;
44 
45  template <unsigned int D> std::pair<bool,double> estimate(const TrajectoryStateOnSurface&,
46  const TransientTrackingRecHit&) const;
47 
48  bool estimate( const TrajectoryStateOnSurface& ts,
49  const BoundPlane& plane) const;
50 
51  virtual std::vector<double> setCuts( Trajectory& traj, const DetLayer* theCurrentLayer );
52 
53  virtual void setHICDetMap();
54 
56 
58 
59  virtual void setLastLayer( DetLayer*& ll){theLastLayer = ll;};
60 
61  virtual int getDetectorCode(const DetLayer* a);
62 
63  virtual void chooseCuts(int& i);
64 
65  virtual void setMult(int aMult=1) {theLowMult=aMult;}
66 
67  virtual void setSign(int& i){theSign=i;}
68 
69  const MagneticField* getField() {return field;}
70 
71  virtual HICMeasurementEstimator* clone() const {
72  return new HICMeasurementEstimator(*this);
73  }
74 
75 private:
77  double theMaxChi2;
78  int theNSigma;
79  std::map<const DetLayer*,int> theBarrel;
80  std::map<const DetLayer*,int> theForward;
81  std::map<const DetLayer*,int> theBackward;
82 
83  double thePhiBound;
84  double theZBound;
86  double theZBoundMean;
91  double thePhiWin;
92  double theZWin;
93  double thePhiWinMean;
94  double theZWinMean;
95 
96  double thePhiWinB;
97  double theZWinB;
99  double theZWinMeanB;
100 
101  double thePhiCut;
102  double theZCut;
104  double theZCutMean;
105  double theChi2Cut;
106  double theNewCut;
107  double theNewCutB;
108 // Multiplicity
112  std::vector<BarrelDetLayer*> bl;
113  std::vector<ForwardDetLayer*> fpos;
114  std::vector<ForwardDetLayer*> fneg;
115  int theSign;
117 };
118 
119 #endif
std::map< const DetLayer *, int > theBackward
std::map< const DetLayer *, int > theBarrel
int i
Definition: DBlmapReader.cc:9
std::map< const DetLayer *, int > theForward
std::vector< BarrelDetLayer * > bl
virtual std::vector< double > setCuts(Trajectory &traj, const DetLayer *theCurrentLayer)
void setHICConst(cms::HICConst *hh)
std::vector< BarrelDetLayer * > const & barrelLayers() const
virtual HICMeasurementEstimator * clone() const
const MagneticField * getField()
virtual void setLastLayer(DetLayer *&ll)
std::vector< ForwardDetLayer * > const & negForwardLayers() const
virtual void setSign(int &i)
std::vector< ForwardDetLayer * > fneg
std::vector< ForwardDetLayer * > const & posForwardLayers() const
virtual int getDetectorCode(const DetLayer *a)
virtual void setMult(int aMult=1)
double a
Definition: hdecay.h:121
virtual std::pair< bool, double > estimate(const TrajectoryStateOnSurface &, const TransientTrackingRecHit &) const
std::vector< ForwardDetLayer * > fpos
const GeometricSearchTracker * theTracker
HICMeasurementEstimator(const GeometricSearchTracker *theTracker0, const MagneticField *mf, double maxChi2, double nSigma=3.)