File indexing completed on 2024-04-06 12:28:56
0001 #ifndef GlobalTrackingRegion_H
0002 #define GlobalTrackingRegion_H
0003
0004
0005
0006
0007
0008
0009
0010 #include "RecoTracker/TkTrackingRegions/interface/TrackingRegion.h"
0011 #include "RecoTracker/TkMSParametrization/interface/MultipleScatteringParametrisationMaker.h"
0012 #include <vector>
0013
0014 class GlobalTrackingRegion final : public TrackingRegion {
0015 public:
0016
0017
0018
0019
0020
0021
0022
0023
0024 GlobalTrackingRegion(float ptMin,
0025 const GlobalPoint& origin,
0026 float originRadius,
0027 float originHalfLength,
0028 bool precise = false,
0029 bool useMS = false,
0030 const MultipleScatteringParametrisationMaker* msmaker = nullptr)
0031 : TrackingRegionBase(GlobalVector(0, 0, 0), origin, Range(-1 / ptMin, 1 / ptMin), originRadius, originHalfLength),
0032 theMSMaker(msmaker),
0033 thePrecise(precise),
0034 theUseMS(useMS) {}
0035
0036
0037 GlobalTrackingRegion(float ptMin = 1.,
0038 float originRadius = 0.2,
0039 float originHalfLength = 22.7,
0040 float originZPos = 0.,
0041 bool precise = false)
0042 : TrackingRegionBase(GlobalVector(0, 0, 0),
0043 GlobalPoint(0, 0, originZPos),
0044 Range(-1 / ptMin, 1 / ptMin),
0045 originRadius,
0046 originHalfLength),
0047 thePrecise(precise) {}
0048
0049 TrackingRegion::Hits hits(const SeedingLayerSetsHits::SeedingLayer& layer) const override;
0050
0051 std::unique_ptr<HitRZCompatibility> checkRZ(const DetLayer* layer,
0052 const Hit& outerHit,
0053 const DetLayer* outerlayer = nullptr,
0054 float lr = 0,
0055 float gz = 0,
0056 float dr = 0,
0057 float dz = 0) const override;
0058
0059
0060
0061 void checkTracks(reco::TrackCollection const& tracks, std::vector<bool>& mask) const override;
0062
0063 std::unique_ptr<TrackingRegion> clone() const override { return std::make_unique<GlobalTrackingRegion>(*this); }
0064
0065 std::string name() const override { return "GlobalTrackingRegion"; }
0066 std::string print() const override;
0067
0068 private:
0069 const MultipleScatteringParametrisationMaker* theMSMaker = nullptr;
0070 bool thePrecise = false;
0071 bool theUseMS = false;
0072 };
0073 #endif