Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:28:49

0001 #ifndef CosmicLayerPairs_H
0002 #define CosmicLayerPairs_H
0003 
0004 /** \class CosmicLayerPairs
0005 * find all (resonable) pairs of pixel layers
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 //#include "RecoTracker/TkDetLayers/interface/PixelForwardLayer.h"
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