CMS 3D CMS Logo

DynamicTruncation.h
Go to the documentation of this file.
1 #ifndef RecoMuon_GlobalTrackingTools_DynamicTruncation_h
2 #define RecoMuon_GlobalTrackingTools_DynamicTruncation_h
3 
19 #include <memory>
43 
44 namespace dyt_utils{
46 };
47 
49 
50  public:
51 
54 
56 
58 
60  const edm::Handle<CSCSegmentCollection>& CSCSegProd) {
61  getSegs->initCSU(DTSegProd, CSCSegProd);
62  }
63 
64  void setSelector(int);
65  void setThr(const std::vector<int>&);
66  void setUpdateState(bool);
67  void setUseAPE(bool);
68  /*---- DyT v2-----*/
69  void setThrsMap(const edm::ParameterSet&);
70  void setParThrsMode(bool dytParThrsMode) { useParametrizedThr = dytParThrsMode;}
71  void setRecoP(double p) { p_reco = p; }
72  void setRecoEta(double eta) {
73  eta_reco = eta;
74  setEtaRegion();
75  }
76 
77  // Return the vector with the tracker plus the selected muon hits
79 
80  // Return the DYTInfo object
82  dytInfo.setNStUsed(nStationsUsed);
83  dytInfo.setDYTEstimators(estimatorMap);
84  dytInfo.setUsedStations(usedStationMap);
85  dytInfo.setIdChambers(idChamberMap);
86  return dytInfo;
87  }
88 
89  private:
90 
91  void compatibleDets(TrajectoryStateOnSurface&, std::map<int, std::vector<DetId> >&);
92  void filteringAlgo();
93  void fillSegmentMaps(std::map<int, std::vector<DetId> >&, std::map<int, std::vector<DTRecSegment4D> >&, std::map<int, std::vector<CSCSegment> >&);
94  void preliminaryFit(std::map<int, std::vector<DetId> >, std::map<int, std::vector<DTRecSegment4D> >, std::map<int, std::vector<CSCSegment> >);
95  bool chooseLayers(int&, double const &, DTRecSegment4D const &, TrajectoryStateOnSurface const &, double const &, CSCSegment const &, TrajectoryStateOnSurface const &);
96  void fillDYTInfos(int const&, bool const&, int&, double const&, double const&, DTRecSegment4D const&, CSCSegment const&);
97  int stationfromDet(DetId const&);
98  void update(TrajectoryStateOnSurface&, ConstRecHitPointer);
99  void updateWithDThits(TrajectoryStateOnSurface&, DTRecSegment4D const &);
100  void updateWithCSChits(TrajectoryStateOnSurface&, CSCSegment const &);
101  void getThresholdFromDB(double&, DetId const&);
102  void correctThrByPAndEta(double&);
103  void getThresholdFromCFG(double&, DetId const&);
104  void testDTstation(TrajectoryStateOnSurface&, std::vector<DTRecSegment4D> const &, double&, DTRecSegment4D&, TrajectoryStateOnSurface&);
105  void testCSCstation(TrajectoryStateOnSurface&, std::vector<CSCSegment> const &, double&, CSCSegment&, TrajectoryStateOnSurface&);
106  void useSegment(DTRecSegment4D const &, TrajectoryStateOnSurface const &);
107  void useSegment(CSCSegment const &, TrajectoryStateOnSurface const &);
108  void sort(ConstRecHitContainer&);
109  void setEtaRegion();
110 
111  ConstRecHitContainer result, prelFitMeas;
112  bool useAPE;
113  std::vector<int> Thrs;
126  std::map<int, double> estimatorMap;
127  std::map<int, bool> usedStationMap;
128  std::map<int, DetId> idChamberMap;
132  std::map<DTChamberId, GlobalError> dtApeMap;
133  std::map<CSCDetId, GlobalError> cscApeMap;
134  double muonPTest, muonETAest;
140  /* Variables for v2 */
141  double p_reco;
142  double eta_reco;
145  std::map<dyt_utils::etaRegion, std::vector<double>> parameters;
146 };
147 
148 #endif
DirectMuonNavigation * navigation
dyt_utils::etaRegion region
edm::ESHandle< Propagator > propagatorPF
void setProd(const edm::Handle< DTRecSegment4DCollection > &DTSegProd, const edm::Handle< CSCSegmentCollection > &CSCSegProd)
TrajectoryStateOnSurface currentState
edm::ESHandle< Propagator > propagatorCompatibleDet
std::map< int, bool > usedStationMap
ThrParameters * thrManager
void setRecoEta(double eta)
TrajectoryStateOnSurface prelFitState
edm::ESHandle< MuonDetLayerGeometry > navMuon
ConstRecHitContainer result
std::map< int, DetId > idChamberMap
std::shared_ptr< TrackingRecHit const > ConstRecHitPointer
TransientTrackingRecHit::ConstRecHitContainer ConstRecHitContainer
edm::ESHandle< TrajectoryStateUpdator > updatorHandle
void setNStUsed(int NStUsed)
Definition: DYTInfo.h:22
edm::ESHandle< TransientTrackingRecHitBuilder > theMuonRecHitBuilder
ChamberSegmentUtility * getSegs
std::map< dyt_utils::etaRegion, std::vector< double > > parameters
reco::DYTInfo dytInfo
std::vector< int > Thrs
std::vector< ConstRecHitPointer > ConstRecHitContainer
void setParThrsMode(bool dytParThrsMode)
Definition: DetId.h:18
std::map< DTChamberId, GlobalError > dtApeMap
reco::DYTInfo getDYTInfo()
const DYTThrObject * dytThresholds
TransientTrackingRecHit::ConstRecHitPointer ConstRecHitPointer
edm::ESHandle< Propagator > propagator
#define update(a, b)
std::map< int, double > estimatorMap
edm::ESHandle< MagneticField > magfield
std::map< CSCDetId, GlobalError > cscApeMap
edm::ESHandle< GlobalTrackingGeometry > theG
edm::ESHandle< CSCGeometry > cscGeom
void setRecoP(double p)