ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitProd/TreeFiller/src/FillerPATMuons.cc
Revision: 1.2
Committed: Wed Sep 10 03:30:23 2008 UTC (16 years, 7 months ago) by loizides
Content type: text/plain
Branch: MAIN
CVS Tags: Mit_005, Mit_004
Changes since 1.1: +3 -7 lines
Log Message:
Cleanup

File Contents

# User Rev Content
1 loizides 1.2 // $Id: FillerPATMuons.cc,v 1.1 2008/08/12 10:13:46 sixie Exp $
2 sixie 1.1
3     #include "MitProd/TreeFiller/interface/FillerPATMuons.h"
4     #include "FWCore/MessageLogger/interface/MessageLogger.h"
5     #include "DataFormats/Common/interface/Handle.h"
6     #include "DataFormats/MuonReco/interface/Muon.h"
7     #include "DataFormats/MuonReco/interface/MuonFwd.h"
8     #include "MitAna/DataTree/interface/Muon.h"
9     #include "MitAna/DataTree/interface/Track.h"
10     #include "MitAna/DataTree/interface/Names.h"
11     #include "DataFormats/PatCandidates/interface/Muon.h"
12     #include "DataFormats/PatCandidates/interface/Jet.h"
13     #include "DataFormats/PatCandidates/interface/Electron.h"
14     #include "DataFormats/PatCandidates/interface/Tau.h"
15     #include "DataFormats/PatCandidates/interface/Photon.h"
16     #include "DataFormats/PatCandidates/interface/MET.h"
17     #include "DataFormats/Common/interface/View.h"
18    
19     using namespace std;
20     using namespace edm;
21     using namespace mithep;
22    
23     //--------------------------------------------------------------------------------------------------
24     FillerPATMuons::FillerPATMuons(const edm::ParameterSet &cfg, bool active,
25 loizides 1.2 const TrackMap *globalMap, const TrackMap *stdMap,
26     const TrackMap *stdVtxMap, const TrackMap *trackerMap) :
27 sixie 1.1 BaseFiller(cfg,"PATMuons",active),
28     edmName_(Conf().getUntrackedParameter<string>("edmName","selectedLayer1Muons")),
29     mitName_(Conf().getUntrackedParameter<string>("mitName",Names::gkMuonBrn)),
30     globalTrackMapName_(Conf().getUntrackedParameter<string>("globalTrackMapName","")),
31     staTrackMapName_(Conf().getUntrackedParameter<string>("staTrackMapName","")),
32     staVtxTrackMapName_(Conf().getUntrackedParameter<string>("staVtxTrackMapName","")),
33     trackerTrackMapName_(Conf().getUntrackedParameter<string>("trackerTrackMapName","")),
34     globalTrackMap_(0),
35     standaloneTrackMap_(0),
36     standaloneVtxTrackMap_(0),
37     trackerTrackMap_(0),
38     muons_(new mithep::MuonArr(16))
39     {
40     // Constructor.
41     }
42    
43     //--------------------------------------------------------------------------------------------------
44     FillerPATMuons::~FillerPATMuons()
45     {
46     // Destructor.
47    
48     delete muons_;
49     }
50    
51     //--------------------------------------------------------------------------------------------------
52     void FillerPATMuons::BookDataBlock(TreeWriter &tws)
53     {
54     // Add muons branch to tree and get pointers to maps.
55    
56     tws.AddBranch(mitName_.c_str(),&muons_);
57    
58     if (!globalTrackMapName_.empty())
59     globalTrackMap_ = OS()->get<TrackMap>(globalTrackMapName_.c_str());
60     if (!staTrackMapName_.empty())
61     standaloneTrackMap_ = OS()->get<TrackMap>(staTrackMapName_.c_str());
62     if (!staVtxTrackMapName_.empty())
63     standaloneVtxTrackMap_ = OS()->get<TrackMap>(staVtxTrackMapName_.c_str());
64     if (!trackerTrackMapName_.empty())
65     trackerTrackMap_ = OS()->get<TrackMap>(trackerTrackMapName_.c_str());
66    
67     }
68    
69     //--------------------------------------------------------------------------------------------------
70     void FillerPATMuons::FillDataBlock(const edm::Event &event,
71     const edm::EventSetup &setup)
72     {
73     // Fill muon information.
74    
75     muons_->Reset();
76    
77     edm::Handle<edm::View<pat::Muon> > muonHandle;
78     event.getByLabel(edm::InputTag(edmName_),muonHandle);
79     edm::View<pat::Muon> muons = *muonHandle;
80    
81     for(edm::View<pat::Muon>::const_iterator iM = muons.begin(); iM!=muons.end(); ++iM){
82    
83     if(iM->pt()>0) {
84     mithep::Muon* outMuon = muons_->AddNew();
85    
86     if (globalTrackMap_ && iM->combinedMuon().isNonnull())
87     outMuon->SetGlobalTrk(globalTrackMap_->GetMit(iM->combinedMuon()));
88    
89     if (standaloneTrackMap_ && standaloneVtxTrackMap_ && iM->standAloneMuon().isNonnull()) {
90     Int_t refProductId = iM->standAloneMuon().id().id();
91     if ( refProductId == standaloneVtxTrackMap_->GetEdmProductId())
92     outMuon->SetStandaloneTrk(standaloneVtxTrackMap_->GetMit(iM->standAloneMuon()));
93     else if ( refProductId == standaloneTrackMap_->GetEdmProductId())
94     outMuon->SetStandaloneTrk(standaloneTrackMap_->GetMit(iM->standAloneMuon()));
95     else throw edm::Exception(edm::errors::Configuration, "FillerPATMuons:FillDataBlock()\n")
96     << "Error! Track reference in unmapped collection " << edmName_ << endl;
97     }
98    
99     if (trackerTrackMap_ && iM->track().isNonnull())
100     outMuon->SetTrackerTrk(trackerTrackMap_->GetMit(iM->track()));
101    
102     outMuon->SetIsoR03SumPt(iM->isolationR03().sumPt);
103     outMuon->SetIsoR03EmEt(iM->isolationR03().emEt);
104     outMuon->SetIsoR03HadEt(iM->isolationR03().hadEt);
105     outMuon->SetIsoR03HoEt(iM->isolationR03().hoEt);
106     outMuon->SetIsoR03NTracks(iM->isolationR03().nTracks);
107     outMuon->SetIsoR03NJets(iM->isolationR03().nJets);
108     outMuon->SetIsoR05SumPt(iM->isolationR05().sumPt);
109     outMuon->SetIsoR05EmEt(iM->isolationR05().emEt);
110     outMuon->SetIsoR05HadEt(iM->isolationR05().hadEt);
111     outMuon->SetIsoR05HoEt(iM->isolationR05().hoEt);
112     outMuon->SetIsoR05NTracks(iM->isolationR05().nTracks);
113     outMuon->SetIsoR05NJets(iM->isolationR05().nJets);
114     outMuon->SetEmEnergy(iM->calEnergy().em);
115     outMuon->SetHadEnergy(iM->calEnergy().had);
116     outMuon->SetHoEnergy(iM->calEnergy().ho);
117     outMuon->SetEmS9Energy(iM->calEnergy().emS9);
118     outMuon->SetHadS9Energy(iM->calEnergy().hadS9);
119     outMuon->SetHoS9Energy(iM->calEnergy().hoS9);
120     }
121     }
122     muons_->Trim();
123     }