File indexing completed on 2024-04-06 12:28:49
0001 #ifndef CosmicLayerPairs_H
0002 #define CosmicLayerPairs_H
0003
0004
0005
0006
0007 #include "RecoTracker/TkHitPairs/interface/SeedLayerPairs.h"
0008 #include "DataFormats/TrackerRecHit2D/interface/SiStripRecHit2DCollection.h"
0009 #include "DataFormats/Common/interface/RangeMap.h"
0010 #include "FWCore/Framework/interface/EventSetup.h"
0011 #include "TrackingTools/DetLayers/interface/BarrelDetLayer.h"
0012 #include "TrackingTools/DetLayers/interface/ForwardDetLayer.h"
0013 #include "RecoTracker/TkHitPairs/interface/LayerWithHits.h"
0014
0015 #include <vector>
0016
0017 class TrackerTopology;
0018 class GeometricSearchTracker;
0019
0020 class CosmicLayerPairs : public SeedLayerPairs {
0021 public:
0022 CosmicLayerPairs(std::string geometry,
0023 const SiStripRecHit2DCollection &collrphi,
0024 const SiStripMatchedRecHit2DCollection &collmatched,
0025 const GeometricSearchTracker &track,
0026 const TrackerTopology &ttopo)
0027 : _geometry(geometry) {
0028 init(collrphi, collmatched, track, ttopo);
0029 };
0030 ~CosmicLayerPairs() override;
0031
0032 std::vector<SeedLayerPairs::LayerPair> operator()() override;
0033
0034 private:
0035 void init(const SiStripRecHit2DCollection &collrphi,
0036 const SiStripMatchedRecHit2DCollection &collmatched,
0037 const GeometricSearchTracker &,
0038 const TrackerTopology &);
0039
0040 std::string _geometry;
0041
0042 std::vector<BarrelDetLayer const *> bl;
0043 std::vector<ForwardDetLayer const *> fpos;
0044 std::vector<ForwardDetLayer const *> fneg;
0045 edm::OwnVector<LayerWithHits> TECPlusLayerWithHits;
0046 edm::OwnVector<LayerWithHits> TECMinusLayerWithHits;
0047 edm::OwnVector<LayerWithHits> TIBLayerWithHits;
0048 edm::OwnVector<LayerWithHits> TOBLayerWithHits;
0049 edm::OwnVector<LayerWithHits> MTCCLayerWithHits;
0050 edm::OwnVector<LayerWithHits> CRACKLayerWithHits;
0051
0052 std::vector<const TrackingRecHit *> selectTECHit(const SiStripRecHit2DCollection &collrphi,
0053 const TrackerTopology &ttopo,
0054 int side,
0055 int disk);
0056 std::vector<const TrackingRecHit *> selectTIBHit(const SiStripRecHit2DCollection &collrphi,
0057 const TrackerTopology &ttopo,
0058 int layer);
0059 std::vector<const TrackingRecHit *> selectTOBHit(const SiStripRecHit2DCollection &collrphi,
0060 const TrackerTopology &ttopo,
0061 int layer);
0062 std::vector<const TrackingRecHit *> selectTECHit(const SiStripMatchedRecHit2DCollection &collmatch,
0063 const TrackerTopology &ttopo,
0064 int side,
0065 int disk);
0066 std::vector<const TrackingRecHit *> selectTIBHit(const SiStripMatchedRecHit2DCollection &collmatch,
0067 const TrackerTopology &ttopo,
0068 int layer);
0069 std::vector<const TrackingRecHit *> selectTOBHit(const SiStripMatchedRecHit2DCollection &collmatch,
0070 const TrackerTopology &ttopo,
0071 int layer);
0072 };
0073
0074 #endif