ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitProd/TreeFiller/src/FillerPATElectrons.cc
Revision: 1.10
Committed: Thu Mar 18 20:21:00 2010 UTC (15 years, 1 month ago) by bendavid
Content type: text/plain
Branch: MAIN
CVS Tags: Mit_020d, TMit_020d, Mit_020c, Mit_020b, Mit_020a, Mit_020, Mit_020pre1, Mit_018, Mit_017, Mit_017pre3, Mit_017pre2, Mit_017pre1, Mit_016, Mit_015b, Mit_015a, Mit_015, Mit_014e, Mit_014d, Mit_014c, Mit_014b, Mit_014a, Mit_014, Mit_014pre3, Mit_014pre2, Mit_014pre1, Mit_013d, Mit_013c, Mit_013b, Mit_013a, Mit_013
Changes since 1.9: +2 -2 lines
Log Message:
Fix beginrun,beginjob mess

File Contents

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