CMS 3D CMS Logo

LinkingAlgoByDirectionGeometric.h
Go to the documentation of this file.
1 #ifndef RecoHGCal_TICL_LinkingAlgoByDirectionGeometric_H__
2 #define RecoHGCal_TICL_LinkingAlgoByDirectionGeometric_H__
3 
4 #include <memory>
5 #include <array>
8 
13 
17 
19 
21 
24 
25 namespace ticl {
27  public:
30 
31  void initialize(const HGCalDDDConstants *hgcons,
32  const hgcal::RecHitTools rhtools,
33  const edm::ESHandle<MagneticField> bfieldH,
34  const edm::ESHandle<Propagator> propH) override;
35 
36  void linkTracksters(const edm::Handle<std::vector<reco::Track>>,
40  const std::vector<reco::Muon> &,
41  const edm::Handle<std::vector<Trackster>>,
42  const bool useMTDTiming,
43  std::vector<TICLCandidate> &,
44  std::vector<TICLCandidate> &) override;
45 
47 
48  private:
50 
51  void buildLayers();
52 
54  const unsigned idx,
55  float zVal,
56  std::array<TICLLayerTile, 2> &tracksterTiles);
57 
58  void findTrackstersInWindow(const std::vector<std::pair<Vector, unsigned>> &seedingCollection,
59  const std::array<TICLLayerTile, 2> &tracksterTiles,
60  const std::vector<Vector> &tracksterPropPoints,
61  float delta,
62  unsigned trackstersSize,
63  std::vector<std::vector<unsigned>> &resultCollection,
64  bool useMask);
65 
66  bool timeAndEnergyCompatible(float &total_raw_energy,
67  const reco::Track &track,
68  const Trackster &trackster,
69  const float &tkTime,
70  const float &tkTimeErr,
71  const float &tkTimeQual,
72  bool useMTDTiming);
73 
74  void recordTrackster(const unsigned ts, // trackster index
75  const std::vector<Trackster> &tracksters,
76  const edm::Handle<std::vector<Trackster>> tsH,
77  std::vector<unsigned> &ts_mask,
78  float &energy_in_candidate,
79  TICLCandidate &candidate);
80 
81  void dumpLinksFound(std::vector<std::vector<unsigned>> &resultCollection, const char *label) const;
82 
83  const float tkEnergyCut_ = 2.0f;
84  const float maxDeltaT_ = 3.0f;
85  const float del_tk_ts_layer1_;
86  const float del_tk_ts_int_;
87  const float del_ts_em_had_;
88  const float del_ts_had_had_;
89 
91 
93  std::once_flag initializeGeometry_;
94 
96 
97  std::unique_ptr<GeomDet> firstDisk_[2];
98  std::unique_ptr<GeomDet> interfaceDisk_[2];
99 
101 
104  };
105 } // namespace ticl
106 #endif
void linkTracksters(const edm::Handle< std::vector< reco::Track >>, const edm::Handle< edm::ValueMap< float >>, const edm::Handle< edm::ValueMap< float >>, const edm::Handle< edm::ValueMap< float >>, const std::vector< reco::Muon > &, const edm::Handle< std::vector< Trackster >>, const bool useMTDTiming, std::vector< TICLCandidate > &, std::vector< TICLCandidate > &) override
math::XYZVectorF Vector
Definition: Trackster.h:21
static void fillPSetDescription(edm::ParameterSetDescription &desc)
char const * label
Vector propagateTrackster(const Trackster &t, const unsigned idx, float zVal, std::array< TICLLayerTile, 2 > &tracksterTiles)
const StringCutObjectSelector< reco::Track > cutTk_
void recordTrackster(const unsigned ts, const std::vector< Trackster > &tracksters, const edm::Handle< std::vector< Trackster >> tsH, std::vector< unsigned > &ts_mask, float &energy_in_candidate, TICLCandidate &candidate)
void initialize(const HGCalDDDConstants *hgcons, const hgcal::RecHitTools rhtools, const edm::ESHandle< MagneticField > bfieldH, const edm::ESHandle< Propagator > propH) override
LinkingAlgoByDirectionGeometric(const edm::ParameterSet &conf)
void dumpLinksFound(std::vector< std::vector< unsigned >> &resultCollection, const char *label) const
void findTrackstersInWindow(const std::vector< std::pair< Vector, unsigned >> &seedingCollection, const std::array< TICLLayerTile, 2 > &tracksterTiles, const std::vector< Vector > &tracksterPropPoints, float delta, unsigned trackstersSize, std::vector< std::vector< unsigned >> &resultCollection, bool useMask)
Definition: Common.h:10
bool timeAndEnergyCompatible(float &total_raw_energy, const reco::Track &track, const Trackster &trackster, const float &tkTime, const float &tkTimeErr, const float &tkTimeQual, bool useMTDTiming)