ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitProd/TreeFiller/src/FillerPATElectrons.cc
Revision: 1.2
Committed: Mon Aug 18 15:24:36 2008 UTC (16 years, 8 months ago) by loizides
Content type: text/plain
Branch: MAIN
CVS Tags: Mit_005, Mit_004
Changes since 1.1: +3 -3 lines
Log Message:
Allow compile + build.

File Contents

# Content
1 // $Id: FillerPATElectrons.cc,v 1.1 2008/08/12 10:13:46 sixie Exp $
2
3 #include "MitProd/TreeFiller/interface/FillerPATElectrons.h"
4 #include "FWCore/MessageLogger/interface/MessageLogger.h"
5 #include "DataFormats/Common/interface/Handle.h"
6 #include "DataFormats/TrackReco/interface/Track.h"
7 #include "DataFormats/GsfTrackReco/interface/GsfTrack.h"
8 #include "DataFormats/TrackReco/interface/TrackFwd.h"
9 #include "DataFormats/EgammaCandidates/interface/GsfElectron.h"
10 #include "DataFormats/EgammaCandidates/interface/GsfElectronFwd.h"
11
12 #include "MitAna/DataTree/interface/Track.h"
13 #include "MitAna/DataTree/interface/Names.h"
14
15 #include "DataFormats/PatCandidates/interface/Muon.h"
16 #include "DataFormats/PatCandidates/interface/Jet.h"
17 #include "DataFormats/PatCandidates/interface/Electron.h"
18 #include "DataFormats/PatCandidates/interface/Tau.h"
19 #include "DataFormats/PatCandidates/interface/Photon.h"
20 #include "DataFormats/PatCandidates/interface/MET.h"
21 #include "DataFormats/Common/interface/View.h"
22
23 using namespace std;
24 using namespace edm;
25 using namespace mithep;
26
27 //--------------------------------------------------------------------------------------------------
28 FillerPATElectrons::FillerPATElectrons(const edm::ParameterSet &cfg, bool active,
29 const GsfTrackMap *gsfTrackMap, const TrackMap *trackerTrackMap) :
30 BaseFiller(cfg,"PATElectrons",active),
31 edmName_(Conf().getUntrackedParameter<string>("edmName","selectedLayer1Electrons")),
32 mitName_(Conf().getUntrackedParameter<string>("mitName",Names::gkElectronBrn)),
33 gsfTrackMapName_(Conf().getUntrackedParameter<string>("gsfTrackMapName","")),
34 trackerTrackMapName_(Conf().getUntrackedParameter<string>("trackerTrackMapName","")),
35 electrons_(new mithep::ElectronArr(16)),
36 gsfTrackMap_(0),
37 trackerTrackMap_(0)
38 {
39 // Constructor.
40 }
41
42 //--------------------------------------------------------------------------------------------------
43 FillerPATElectrons::~FillerPATElectrons()
44 {
45 // Destructor.
46
47 delete electrons_;
48 }
49
50 //--------------------------------------------------------------------------------------------------
51 void FillerPATElectrons::BookDataBlock(TreeWriter &tws)
52 {
53 // Add electron branch to our tree and get our maps.
54
55 tws.AddBranch(mitName_.c_str(),&electrons_);
56
57 if (!gsfTrackMapName_.empty())
58 gsfTrackMap_ = OS()->get<GsfTrackMap>(gsfTrackMapName_.c_str());
59 if (!trackerTrackMapName_.empty())
60 trackerTrackMap_ = OS()->get<TrackMap>(trackerTrackMapName_.c_str());
61 }
62
63 //--------------------------------------------------------------------------------------------------
64 void FillerPATElectrons::FillDataBlock(const edm::Event &event,
65 const edm::EventSetup &setup)
66 {
67 // Fill electrons from edm collection into our collection.
68
69 electrons_->Reset();
70
71 edm::Handle<edm::View<pat::Electron> > electronHandle;
72 event.getByLabel(edm::InputTag(edmName_),electronHandle);
73
74 edm::View<pat::Electron> electrons = *electronHandle;
75
76 for(edm::View<pat::Electron>::const_iterator iM = electrons.begin();
77 iM!=electrons.end(); ++iM){
78
79 if(iM->pt()>0) {
80
81 mithep::Electron *outElectron = electrons_->AddNew();
82
83 if (gsfTrackMap_ && iM->gsfTrack().isNonnull())
84 outElectron->SetGsfTrk(gsfTrackMap_->GetMit(iM->gsfTrack()));
85 if (trackerTrackMap_ && iM->track().isNonnull())
86 outElectron->SetTrackerTrk(trackerTrackMap_->GetMit(iM->track()));
87
88
89 outElectron->SetESuperClusterOverP( iM->eSuperClusterOverP() ) ;
90 outElectron->SetESeedClusterOverPout( iM->eSeedClusterOverPout() ) ;
91 outElectron->SetDeltaEtaSuperClusterTrackAtVtx( iM->deltaEtaSuperClusterTrackAtVtx() ) ;
92 outElectron->SetDeltaEtaSeedClusterTrackAtCalo( iM->deltaEtaSeedClusterTrackAtCalo() ) ;
93 outElectron->SetDeltaPhiSuperClusterTrackAtVtx( iM->deltaPhiSuperClusterTrackAtVtx() ) ;
94 outElectron->SetDeltaPhiSeedClusterTrackAtCalo( iM->deltaPhiSeedClusterTrackAtCalo() ) ;
95 outElectron->SetHadronicOverEm( iM->hadronicOverEm() ) ;
96 outElectron->SetIsEnergyScaleCorrected( iM->isEnergyScaleCorrected() ) ;
97
98 outElectron->SetIsMomentumCorrected( iM->isMomentumCorrected() ) ;
99 outElectron->SetNumberOfClusters( iM->numberOfClusters() ) ;
100 outElectron->SetClassification( iM->classification() ) ;
101
102 outElectron->SetCaloIsolation( iM->caloIso() ) ;
103 outElectron->SetTrackIsolation( iM->trackIso() ) ;
104 }
105 }
106
107 electrons_->Trim();
108 }