ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitProd/TreeFiller/src/FillerMuons.cc
Revision: 1.10
Committed: Fri Aug 8 11:21:08 2008 UTC (16 years, 9 months ago) by sixie
Content type: text/plain
Branch: MAIN
CVS Tags: MITHEP_2_0_x
Changes since 1.9: +28 -14 lines
Log Message:
Add SuperCluster links to electron Filler. Add basic cluster and supercluster association maps. Add new electron and Muon ID variables. Add correct default names to the config file. BuildFile had to be modified to include Egamma objects for the electron Fillers.

File Contents

# User Rev Content
1 sixie 1.10 // $Id: FillerMuons.cc,v 1.9 2008/07/31 12:34:04 loizides Exp $
2 loizides 1.1
3     #include "MitProd/TreeFiller/interface/FillerMuons.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    
12     using namespace std;
13     using namespace edm;
14     using namespace mithep;
15    
16 loizides 1.4 //--------------------------------------------------------------------------------------------------
17 loizides 1.9 FillerMuons::FillerMuons(const edm::ParameterSet &cfg, bool active) :
18 loizides 1.7 BaseFiller(cfg,"Muons",active),
19 loizides 1.1 edmName_(Conf().getUntrackedParameter<string>("edmName","muons")),
20     mitName_(Conf().getUntrackedParameter<string>("mitName",Names::gkMuonBrn)),
21 loizides 1.9 globalTrackMapName_(Conf().getUntrackedParameter<string>("globalTrackMapName","")),
22     staTrackMapName_(Conf().getUntrackedParameter<string>("staTrackMapName","")),
23     staVtxTrackMapName_(Conf().getUntrackedParameter<string>("staVtxTrackMapName","")),
24     trackerTrackMapName_(Conf().getUntrackedParameter<string>("trackerTrackMapName","")),
25     globalTrackMap_(0),
26     standaloneTrackMap_(0),
27     standaloneVtxTrackMap_(0),
28     trackerTrackMap_(0),
29     muons_(new mithep::MuonArr(16))
30 loizides 1.1 {
31     // Constructor.
32     }
33    
34 loizides 1.4 //--------------------------------------------------------------------------------------------------
35 loizides 1.1 FillerMuons::~FillerMuons()
36     {
37     // Destructor.
38 loizides 1.5
39     delete muons_;
40 loizides 1.1 }
41    
42 loizides 1.4 //--------------------------------------------------------------------------------------------------
43 loizides 1.1 void FillerMuons::BookDataBlock(TreeWriter &tws)
44     {
45 loizides 1.9 // Add muons branch to tree and get pointers to maps.
46 loizides 1.1
47     tws.AddBranch(mitName_.c_str(),&muons_);
48 loizides 1.9
49     if (!globalTrackMapName_.empty())
50     globalTrackMap_ = OS()->get<TrackMap>(globalTrackMapName_.c_str());
51     if (!staTrackMapName_.empty())
52     standaloneTrackMap_ = OS()->get<TrackMap>(staTrackMapName_.c_str());
53     if (!staVtxTrackMapName_.empty())
54     standaloneVtxTrackMap_ = OS()->get<TrackMap>(staVtxTrackMapName_.c_str());
55     if (!trackerTrackMapName_.empty())
56     trackerTrackMap_ = OS()->get<TrackMap>(trackerTrackMapName_.c_str());
57 loizides 1.1 }
58    
59 loizides 1.9
60    
61 loizides 1.4 //--------------------------------------------------------------------------------------------------
62 loizides 1.1 void FillerMuons::FillDataBlock(const edm::Event &event,
63 loizides 1.4 const edm::EventSetup &setup)
64 loizides 1.1 {
65     // Fill muon information.
66    
67     muons_->Reset();
68    
69 loizides 1.6 Handle<reco::MuonCollection> hMuonProduct;
70 sixie 1.10 GetProduct(edmName_, hMuonProduct, event);
71 loizides 1.6 const reco::MuonCollection inMuons = *(hMuonProduct.product());
72 loizides 1.1
73 sixie 1.10 for (reco::MuonCollection::const_iterator iM = inMuons.begin(); iM != inMuons.end(); ++iM) {
74     mithep::Muon* outMuon = muons_->AddNew();
75     outMuon->SetIsoR03SumPt(iM->isolationR03().sumPt);
76     outMuon->SetIsoR03EmEt(iM->isolationR03().emEt);
77     outMuon->SetIsoR03HadEt(iM->isolationR03().hadEt);
78     outMuon->SetIsoR03HoEt(iM->isolationR03().hoEt);
79     outMuon->SetIsoR03NTracks(iM->isolationR03().nTracks);
80     outMuon->SetIsoR03NJets(iM->isolationR03().nJets);
81     outMuon->SetIsoR05SumPt(iM->isolationR05().sumPt);
82     outMuon->SetIsoR05EmEt(iM->isolationR05().emEt);
83     outMuon->SetIsoR05HadEt(iM->isolationR05().hadEt);
84     outMuon->SetIsoR05HoEt(iM->isolationR05().hoEt);
85     outMuon->SetIsoR05NTracks(iM->isolationR05().nTracks);
86     outMuon->SetIsoR05NJets(iM->isolationR05().nJets);
87     outMuon->SetEmEnergy(iM->calEnergy().em);
88     outMuon->SetHadEnergy(iM->calEnergy().had);
89     outMuon->SetHoEnergy(iM->calEnergy().ho);
90     outMuon->SetEmS9Energy(iM->calEnergy().emS9);
91     outMuon->SetHadS9Energy(iM->calEnergy().hadS9);
92     outMuon->SetHoS9Energy(iM->calEnergy().hoS9);
93    
94 loizides 1.1 if (globalTrackMap_ && iM->combinedMuon().isNonnull())
95 sixie 1.10 outMuon->SetGlobalTrk(globalTrackMap_->GetMit(iM->combinedMuon()));
96 loizides 1.1 if (standaloneTrackMap_ && standaloneVtxTrackMap_ && iM->standAloneMuon().isNonnull()) {
97     Int_t refProductId = iM->standAloneMuon().id().id();
98     if ( refProductId == standaloneVtxTrackMap_->GetEdmProductId())
99 sixie 1.10 outMuon->SetStandaloneTrk(standaloneVtxTrackMap_->GetMit(iM->standAloneMuon()));
100 loizides 1.1 else if ( refProductId == standaloneTrackMap_->GetEdmProductId())
101 sixie 1.10 outMuon->SetStandaloneTrk(standaloneTrackMap_->GetMit(iM->standAloneMuon()));
102 loizides 1.1 else throw edm::Exception(edm::errors::Configuration, "FillerMuons:FillDataBlock()\n")
103 sixie 1.10 << "Error! Track reference in unmapped collection " << edmName_ << endl;
104 loizides 1.1 }
105     if (trackerTrackMap_ && iM->track().isNonnull())
106 loizides 1.8 outMuon->SetTrackerTrk(trackerTrackMap_->GetMit(iM->track()));
107 sixie 1.10 }
108 loizides 1.1 muons_->Trim();
109     }