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 
23 
24 namespace ticl {
26  public:
29 
30  void initialize(const HGCalDDDConstants *hgcons,
31  const hgcal::RecHitTools rhtools,
32  const edm::ESHandle<MagneticField> bfieldH,
33  const edm::ESHandle<Propagator> propH) override;
34 
35  void linkTracksters(const edm::Handle<std::vector<reco::Track>>,
39  const std::vector<reco::Muon> &,
40  const edm::Handle<std::vector<Trackster>>,
41  const bool useMTDTiming,
42  std::vector<TICLCandidate> &,
43  std::vector<TICLCandidate> &) override;
44 
46 
47  private:
49 
50  void buildLayers();
51 
53  const unsigned idx,
54  float zVal,
55  std::array<TICLLayerTile, 2> &tracksterTiles);
56 
57  void findTrackstersInWindow(const std::vector<std::pair<Vector, unsigned>> &seedingCollection,
58  const std::array<TICLLayerTile, 2> &tracksterTiles,
59  const std::vector<Vector> &tracksterPropPoints,
60  float delta,
61  unsigned trackstersSize,
62  std::vector<std::vector<unsigned>> &resultCollection,
63  bool useMask);
64 
65  bool timeAndEnergyCompatible(float &total_raw_energy,
66  const reco::Track &track,
67  const Trackster &trackster,
68  const float &tkTime,
69  const float &tkTimeErr,
70  const float &tkTimeQual,
71  bool useMTDTiming);
72 
73  void recordTrackster(const unsigned ts, // trackster index
74  const std::vector<Trackster> &tracksters,
75  const edm::Handle<std::vector<Trackster>> tsH,
76  std::vector<unsigned> &ts_mask,
77  float &energy_in_candidate,
78  TICLCandidate &candidate);
79 
80  void dumpLinksFound(std::vector<std::vector<unsigned>> &resultCollection, const char *label) const;
81 
82  const float tkEnergyCut_ = 2.0f;
83  const float maxDeltaT_ = 3.0f;
84  const float del_tk_ts_layer1_;
85  const float del_tk_ts_int_;
86  const float del_ts_em_had_;
87  const float del_ts_had_had_;
88 
90 
92  std::once_flag initializeGeometry_;
93 
95 
96  std::unique_ptr<GeomDet> firstDisk_[2];
97  std::unique_ptr<GeomDet> interfaceDisk_[2];
98 
100 
103  };
104 } // namespace ticl
105 #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::XYZVector propagateTrackster(const Trackster &t, const unsigned idx, float zVal, std::array< TICLLayerTile, 2 > &tracksterTiles)
static void fillPSetDescription(edm::ParameterSetDescription &desc)
char const * label
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
XYZVectorD XYZVector
spatial vector with cartesian internal representation
Definition: Vector3D.h:31
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:8
bool timeAndEnergyCompatible(float &total_raw_energy, const reco::Track &track, const Trackster &trackster, const float &tkTime, const float &tkTimeErr, const float &tkTimeQual, bool useMTDTiming)