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

# User Rev Content
1 loizides 1.2 // $Id: FillerPATElectrons.cc,v 1.1 2008/08/12 10:13:46 sixie 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 loizides 1.2 #include "DataFormats/EgammaCandidates/interface/GsfElectron.h"
10     #include "DataFormats/EgammaCandidates/interface/GsfElectronFwd.h"
11 sixie 1.1
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     }