ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitProd/TreeFiller/src/FillerPATElectrons.cc
Revision: 1.3
Committed: Mon Nov 3 18:11:10 2008 UTC (16 years, 6 months ago) by bendavid
Content type: text/plain
Branch: MAIN
CVS Tags: Mit_006b, Mit_006a, Mit_006
Changes since 1.2: +6 -5 lines
Log Message:
Changed to base class usage of reco::Track throughout and removed FillerGsfTracks

File Contents

# User Rev Content
1 bendavid 1.3 // $Id: FillerPATElectrons.cc,v 1.2 2008/08/18 15:24:36 loizides Exp $
2 sixie 1.1
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 bendavid 1.3 #include "DataFormats/Common/interface/RefToPtr.h"
10 loizides 1.2 #include "DataFormats/EgammaCandidates/interface/GsfElectron.h"
11     #include "DataFormats/EgammaCandidates/interface/GsfElectronFwd.h"
12 sixie 1.1
13     #include "MitAna/DataTree/interface/Track.h"
14     #include "MitAna/DataTree/interface/Names.h"
15    
16     #include "DataFormats/PatCandidates/interface/Muon.h"
17     #include "DataFormats/PatCandidates/interface/Jet.h"
18     #include "DataFormats/PatCandidates/interface/Electron.h"
19     #include "DataFormats/PatCandidates/interface/Tau.h"
20     #include "DataFormats/PatCandidates/interface/Photon.h"
21     #include "DataFormats/PatCandidates/interface/MET.h"
22     #include "DataFormats/Common/interface/View.h"
23    
24     using namespace std;
25     using namespace edm;
26     using namespace mithep;
27    
28     //--------------------------------------------------------------------------------------------------
29     FillerPATElectrons::FillerPATElectrons(const edm::ParameterSet &cfg, bool active,
30 bendavid 1.3 const TrackMap *gsfTrackMap, const TrackMap *trackerTrackMap) :
31 sixie 1.1 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_.c_str(),&electrons_);
57    
58     if (!gsfTrackMapName_.empty())
59 bendavid 1.3 gsfTrackMap_ = OS()->get<TrackMap>(gsfTrackMapName_.c_str());
60 sixie 1.1 if (!trackerTrackMapName_.empty())
61     trackerTrackMap_ = OS()->get<TrackMap>(trackerTrackMapName_.c_str());
62     }
63    
64     //--------------------------------------------------------------------------------------------------
65     void FillerPATElectrons::FillDataBlock(const edm::Event &event,
66     const edm::EventSetup &setup)
67     {
68     // Fill electrons from edm collection into our collection.
69    
70     electrons_->Reset();
71    
72     edm::Handle<edm::View<pat::Electron> > electronHandle;
73     event.getByLabel(edm::InputTag(edmName_),electronHandle);
74    
75     edm::View<pat::Electron> electrons = *electronHandle;
76    
77     for(edm::View<pat::Electron>::const_iterator iM = electrons.begin();
78     iM!=electrons.end(); ++iM){
79    
80     if(iM->pt()>0) {
81    
82     mithep::Electron *outElectron = electrons_->AddNew();
83    
84     if (gsfTrackMap_ && iM->gsfTrack().isNonnull())
85 bendavid 1.3 outElectron->SetGsfTrk(gsfTrackMap_->GetMit(refToPtr(iM->gsfTrack())));
86 sixie 1.1 if (trackerTrackMap_ && iM->track().isNonnull())
87 bendavid 1.3 outElectron->SetTrackerTrk(trackerTrackMap_->GetMit(refToPtr(iM->track())));
88 sixie 1.1
89    
90     outElectron->SetESuperClusterOverP( iM->eSuperClusterOverP() ) ;
91     outElectron->SetESeedClusterOverPout( iM->eSeedClusterOverPout() ) ;
92     outElectron->SetDeltaEtaSuperClusterTrackAtVtx( iM->deltaEtaSuperClusterTrackAtVtx() ) ;
93     outElectron->SetDeltaEtaSeedClusterTrackAtCalo( iM->deltaEtaSeedClusterTrackAtCalo() ) ;
94     outElectron->SetDeltaPhiSuperClusterTrackAtVtx( iM->deltaPhiSuperClusterTrackAtVtx() ) ;
95     outElectron->SetDeltaPhiSeedClusterTrackAtCalo( iM->deltaPhiSeedClusterTrackAtCalo() ) ;
96     outElectron->SetHadronicOverEm( iM->hadronicOverEm() ) ;
97     outElectron->SetIsEnergyScaleCorrected( iM->isEnergyScaleCorrected() ) ;
98    
99     outElectron->SetIsMomentumCorrected( iM->isMomentumCorrected() ) ;
100     outElectron->SetNumberOfClusters( iM->numberOfClusters() ) ;
101     outElectron->SetClassification( iM->classification() ) ;
102    
103     outElectron->SetCaloIsolation( iM->caloIso() ) ;
104     outElectron->SetTrackIsolation( iM->trackIso() ) ;
105     }
106     }
107    
108     electrons_->Trim();
109     }