Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef RecoMuon_StandAloneMuonProducer_StandAloneMuonProducer_H
0002 #define RecoMuon_StandAloneMuonProducer_StandAloneMuonProducer_H
0003 
0004 /**  \class StandAloneMuonProducer
0005  * 
0006  *   StandAlone muon reconstructor:
0007  *   reconstructs muons using DT, CSC and RPC
0008  *   information,<BR>
0009  *   starting from internal seeds (L2 muon track segments).
0010  *
0011  *
0012  *
0013  *   \author  R.Bellan - INFN TO
0014  */
0015 
0016 #include "FWCore/Framework/interface/stream/EDProducer.h"
0017 #include "FWCore/Utilities/interface/InputTag.h"
0018 #include "DataFormats/TrajectorySeed/interface/TrajectorySeedCollection.h"
0019 #include <memory>
0020 
0021 namespace edm {
0022   class ParameterSet;
0023   class Event;
0024   class EventSetup;
0025 }  // namespace edm
0026 
0027 class MuonTrackFinder;
0028 class MuonServiceProxy;
0029 
0030 class StandAloneMuonProducer : public edm::stream::EDProducer<> {
0031 public:
0032   /// constructor with config
0033   StandAloneMuonProducer(const edm::ParameterSet&);
0034 
0035   /// destructor
0036   ~StandAloneMuonProducer() override;
0037 
0038   /// reconstruct muons
0039   void produce(edm::Event&, const edm::EventSetup&) override;
0040 
0041 private:
0042   /// MuonSeed Collection Label
0043   edm::InputTag theSeedCollectionLabel;
0044 
0045   /// the track finder
0046   std::unique_ptr<MuonTrackFinder> theTrackFinder;  //It isn't the same as in ORCA
0047 
0048   /// the event setup proxy, it takes care the services update
0049   std::unique_ptr<MuonServiceProxy> theService;
0050 
0051   edm::EDGetTokenT<edm::View<TrajectorySeed> > seedToken;
0052 
0053   std::string theAlias;
0054 
0055   void setAlias(std::string alias) {
0056     alias.erase(alias.size() - 1, alias.size());
0057     theAlias = alias;
0058   }
0059 };
0060 
0061 #endif