CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
MuonIdProducer.h
Go to the documentation of this file.
1 #ifndef MuonIdentification_MuonIdProducer_h
2 #define MuonIdentification_MuonIdProducer_h
3 
4 // -*- C++ -*-
5 //
6 // Package: MuonIdentification
7 // Class: MuonIdProducer
8 //
9 /*
10 
11  Description: reco::Muon producer that can fill various information:
12  - track-segment matching
13  - energy deposition
14  - muon isolation
15  - muon hypothesis compatibility (calorimeter)
16  Acceptable inputs:
17  - reco::TrackCollection
18  - reco::MuonCollection
19  - reco::MuonTrackLinksCollection
20 */
21 //
22 // Original Author: Dmytro Kovalskyi
23 // $Id: MuonIdProducer.h,v 1.27 2011/06/08 15:41:13 bellan Exp $
24 //
25 //
26 
27 
28 // user include files
31 
35 
37 
44 
46 // #include "Utilities/Timing/interface/TimerStack.h"
47 
51 
52 class MuonMesh;
53 class MuonKinkFinder;
54 
56  public:
58 
59  explicit MuonIdProducer(const edm::ParameterSet&);
60 
61  virtual ~MuonIdProducer();
62 
63  virtual void produce(edm::Event&, const edm::EventSetup&);
64  virtual void beginRun(edm::Run&, const edm::EventSetup&);
65 
66  static double sectorPhi( const DetId& id );
67 
68  private:
73  reco::IsoDeposit& trackDep, reco::IsoDeposit& ecalDep, reco::IsoDeposit& hcalDep, reco::IsoDeposit& hoDep,
74  reco::IsoDeposit& jetDep);
75  void fillGlbQuality( edm::Event&, const edm::EventSetup&, reco::Muon& aMuon );
76  void fillTrackerKink( reco::Muon& aMuon );
77  void init( edm::Event&, const edm::EventSetup& );
78 
79  // make a muon based on a track ref
81  const reco::TrackRef& track, TrackType type);
82  // make a global muon based on the links object
84 
85  // make a muon based on track (p4)
86  reco::Muon makeMuon( const reco::Track& track );
87 
89 
90  // check if a silicon track satisfies the trackerMuon requirements
91  bool isGoodTrack( const reco::Track& track );
92 
93  bool isGoodTrackerMuon( const reco::Muon& muon );
94 
95  // check number of common DetIds for a given trackerMuon and a stand alone
96  // muon track
97  int overlap(const reco::Muon& muon, const reco::Track& track);
98 
99  unsigned int chamberId(const DetId&);
100 
101  double phiOfMuonIneteractionRegion( const reco::Muon& muon ) const;
102 
103  bool checkLinks(const reco::MuonTrackLinks*) const ;
104 
107 
108  std::vector<edm::InputTag> inputCollectionLabels_;
109  std::vector<std::string> inputCollectionTypes_;
110 
112 
113  // selections
114  double minPt_;
115  double minP_;
118  double maxAbsEta_;
120 
121  // matching
122  double maxAbsDx_;
123  double maxAbsPullX_;
124  double maxAbsDy_;
125  double maxAbsPullY_;
126 
127  // what information to fill
135 
137 
145 
150  std::string trackDepositName_;
151  std::string ecalDepositName_;
152  std::string hcalDepositName_;
153  std::string hoDepositName_;
154  std::string jetDepositName_;
155 
159 
161  std::auto_ptr<MuonKinkFinder> trackerKinkFinder_;
162 
163  double caloCut_;
164 
165  bool arbClean_;
167 
168 };
169 #endif
std::string hoDepositName_
type
Definition: HCALResponse.h:22
std::string jetDepositName_
reco::Muon makeMuon(edm::Event &iEvent, const edm::EventSetup &iSetup, const reco::TrackRef &track, TrackType type)
void fillMuonIsolation(edm::Event &, const edm::EventSetup &, reco::Muon &aMuon, reco::IsoDeposit &trackDep, reco::IsoDeposit &ecalDep, reco::IsoDeposit &hcalDep, reco::IsoDeposit &hoDep, reco::IsoDeposit &jetDep)
TrackDetectorAssociator trackAssociator_
void fillMuonId(edm::Event &, const edm::EventSetup &, reco::Muon &, TrackDetectorAssociator::Direction direction=TrackDetectorAssociator::InsideOut)
reco::isodeposit::IsoDepositExtractor * muIsoExtractorCalo_
edm::Handle< reco::MuonTrackLinksCollection > linkCollectionHandle_
int overlap(const reco::Muon &muon, const reco::Track &track)
bool fillCaloCompatibility_
std::string trackDepositName_
double phiOfMuonIneteractionRegion(const reco::Muon &muon) const
std::vector< std::string > inputCollectionTypes_
MuonCaloCompatibility muonCaloCompatibility_
void fillGlbQuality(edm::Event &, const edm::EventSetup &, reco::Muon &aMuon)
std::auto_ptr< MuonKinkFinder > trackerKinkFinder_
virtual void beginRun(edm::Run &, const edm::EventSetup &)
std::vector< Muon > MuonCollection
collection of Muon objects
Definition: MuonFwd.h:9
MuonMesh * meshAlgo_
void init(edm::Event &, const edm::EventSetup &)
int iEvent
Definition: GenABIO.cc:243
double ptThresholdToFillCandidateP4WithGlobalFit_
TrackAssociatorParameters parameters_
void fillArbitrationInfo(reco::MuonCollection *)
void fillTrackerKink(reco::Muon &aMuon)
bool isGoodTrackerMuon(const reco::Muon &muon)
bool checkLinks(const reco::MuonTrackLinks *) const
std::string ecalDepositName_
edm::Handle< reco::TrackToTrackMap > dytCollectionHandle_
edm::Handle< reco::TrackCollection > outerTrackCollectionHandle_
bool fillGlobalTrackRefits_
static double sectorPhi(const DetId &id)
reco::CaloMuon makeCaloMuon(const reco::Muon &)
virtual ~MuonIdProducer()
reco::isodeposit::IsoDepositExtractor * muIsoExtractorTrack_
reco::Muon::MuonTrackType TrackType
Definition: DetId.h:20
reco::isodeposit::IsoDepositExtractor * muIsoExtractorJet_
MuonTimingFiller * theTimingFiller_
std::vector< edm::InputTag > inputCollectionLabels_
MuonIdProducer(const edm::ParameterSet &)
bool fillGlobalTrackQuality_
std::string hcalDepositName_
unsigned int chamberId(const DetId &)
edm::Handle< reco::TrackToTrackMap > tpfmsCollectionHandle_
edm::Handle< reco::TrackCollection > innerTrackCollectionHandle_
bool isGoodTrack(const reco::Track &track)
MuonTrackType
map for Global Muon refitters
Definition: Muon.h:39
double sigmaThresholdToFillCandidateP4WithGlobalFit_
virtual void produce(edm::Event &, const edm::EventSetup &)
bool debugWithTruthMatching_
edm::InputTag globalTrackQualityInputTag_
edm::Handle< reco::MuonCollection > muonCollectionHandle_
Definition: Run.h:33
edm::Handle< reco::TrackToTrackMap > pickyCollectionHandle_