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>>,
36  const edm::ValueMap<float> &,
37  const edm::ValueMap<float> &,
38  const edm::ValueMap<float> &,
39  const std::vector<reco::Muon> &,
40  const edm::Handle<std::vector<Trackster>>,
41  std::vector<TICLCandidate> &,
42  std::vector<TICLCandidate> &) override;
43 
45 
46  private:
48 
49  void buildLayers();
50 
52  const unsigned idx,
53  float zVal,
54  std::array<TICLLayerTile, 2> &tracksterTiles);
55 
56  void findTrackstersInWindow(const std::vector<std::pair<Vector, unsigned>> &seedingCollection,
57  const std::array<TICLLayerTile, 2> &tracksterTiles,
58  const std::vector<Vector> &tracksterPropPoints,
59  float delta,
60  unsigned trackstersSize,
61  std::vector<std::vector<unsigned>> &resultCollection,
62  bool useMask);
63 
64  bool timeAndEnergyCompatible(float &total_raw_energy,
65  const reco::Track &track,
66  const Trackster &trackster,
67  const float &tkTime,
68  const float &tkTimeErr,
69  const float &tkTimeQual);
70 
71  void recordTrackster(const unsigned ts, // trackster index
72  const std::vector<Trackster> &tracksters,
73  const edm::Handle<std::vector<Trackster>> tsH,
74  std::vector<unsigned> &ts_mask,
75  float &energy_in_candidate,
76  TICLCandidate &candidate);
77 
78  void dumpLinksFound(std::vector<std::vector<unsigned>> &resultCollection, const char *label) const;
79 
80  const float tkEnergyCut_ = 2.0f;
81  const float maxDeltaT_ = 3.0f;
82  const float del_tk_ts_layer1_;
83  const float del_tk_ts_int_;
84  const float del_ts_em_had_;
85  const float del_ts_had_had_;
86 
88 
90  std::once_flag initializeGeometry_;
91 
93 
94  std::unique_ptr<GeomDet> firstDisk_[2];
95  std::unique_ptr<GeomDet> interfaceDisk_[2];
96 
98 
101  };
102 } // namespace ticl
103 #endif
void linkTracksters(const edm::Handle< std::vector< reco::Track >>, const edm::ValueMap< float > &, const edm::ValueMap< float > &, const edm::ValueMap< float > &, const std::vector< reco::Muon > &, const edm::Handle< std::vector< Trackster >>, std::vector< TICLCandidate > &, std::vector< TICLCandidate > &) override
math::XYZVector propagateTrackster(const Trackster &t, const unsigned idx, float zVal, std::array< TICLLayerTile, 2 > &tracksterTiles)
bool timeAndEnergyCompatible(float &total_raw_energy, const reco::Track &track, const Trackster &trackster, const float &tkTime, const float &tkTimeErr, const float &tkTimeQual)
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