Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:27:15

0001 #ifndef RecoMuon_TrackerSeedGenerator_CompositeTSG_H
0002 #define RecoMuon_TrackerSeedGenerator_CompositeTSG_H
0003 
0004 /** \class CompositeTSG
0005  * Description:
0006  * TrackerSeedGenerator generic class to allow more than one TSG to be used.
0007  * used as a SeparatingTSG of CombinedTSG
0008  *
0009  * \author Jean-Roch Vlimant, Adam Everett
0010  */
0011 
0012 #include "RecoMuon/TrackerSeedGenerator/interface/TrackerSeedGenerator.h"
0013 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0014 #include "DataFormats/TrajectorySeed/interface/TrajectorySeed.h"
0015 #include "FWCore/Framework/interface/ConsumesCollector.h"
0016 
0017 class TrackingRegion;
0018 class MuonServiceProxy;
0019 class TrackerTopology;
0020 
0021 class CompositeTSG : public TrackerSeedGenerator {
0022 public:
0023   typedef std::vector<TrajectorySeed> BTSeedCollection;
0024   typedef std::pair<const Trajectory *, reco::TrackRef> TrackCand;
0025 
0026   CompositeTSG(const edm::ParameterSet &pset, edm::ConsumesCollector &IC);
0027   ~CompositeTSG() override;
0028 
0029   /// initialized the TSGs
0030   void init(const MuonServiceProxy *service) override;
0031   /// set the event to the TSGs
0032   void setEvent(const edm::Event &event) override;
0033 
0034   /// provides the seeds from the TSGs: must be overloaded
0035   void trackerSeeds(const TrackCand &, const TrackingRegion &, const TrackerTopology *, BTSeedCollection &) override = 0;
0036 
0037 protected:
0038   unsigned int nTSGs() { return theTSGs.size(); }
0039   std::vector<std::unique_ptr<TrackerSeedGenerator>> theTSGs;
0040   std::vector<std::string> theNames;
0041   std::string theCategory;
0042 
0043   const MuonServiceProxy *theProxyService;
0044 };
0045 
0046 #endif