ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitProd/TreeFiller/src/FillerElectrons.cc
Revision: 1.7
Committed: Tue Jul 8 12:38:20 2008 UTC (16 years, 9 months ago) by loizides
Content type: text/plain
Branch: MAIN
Changes since 1.6: +4 -10 lines
Log Message:
Updated Fillers to use GetProduct function in BaseFiller. This function will determine whether a product is valid and otherwise exit.

File Contents

# User Rev Content
1 loizides 1.7 // $Id: FillerElectrons.cc,v 1.6 2008/07/07 16:14:01 loizides Exp $
2 loizides 1.1
3     #include "MitProd/TreeFiller/interface/FillerElectrons.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/PixelMatchGsfElectron.h"
10     #include "DataFormats/EgammaCandidates/interface/PixelMatchGsfElectronFwd.h"
11    
12     #include "MitAna/DataTree/interface/Track.h"
13     #include "MitAna/DataTree/interface/Names.h"
14    
15     using namespace std;
16     using namespace edm;
17     using namespace mithep;
18    
19 loizides 1.5 //--------------------------------------------------------------------------------------------------
20 loizides 1.2 FillerElectrons::FillerElectrons(const edm::ParameterSet &cfg, bool active,
21 loizides 1.1 const GsfTrackMap* gsfTrackMap, const TrackMap* trackerTrackMap) :
22 loizides 1.2 BaseFiller(cfg, "Electrons", active),
23 loizides 1.1 edmName_(Conf().getUntrackedParameter<string>("edmName","pixelMatchGsfElectrons")),
24     mitName_(Conf().getUntrackedParameter<string>("mitName",Names::gkElectronBrn)),
25     electrons_(new mithep::ElectronArr),
26     gsfTrackMap_(gsfTrackMap),
27     trackerTrackMap_(trackerTrackMap)
28     {
29     // Constructor.
30     }
31    
32 loizides 1.5 //--------------------------------------------------------------------------------------------------
33 loizides 1.1 FillerElectrons::~FillerElectrons()
34     {
35     // Destructor.
36 loizides 1.6
37     delete electrons_;
38 loizides 1.1 }
39    
40 loizides 1.5 //--------------------------------------------------------------------------------------------------
41 loizides 1.1 void FillerElectrons::BookDataBlock(TreeWriter &tws)
42     {
43     // Add electron branch to our tree.
44    
45     tws.AddBranch(mitName_.c_str(),&electrons_);
46     }
47    
48 loizides 1.5 //--------------------------------------------------------------------------------------------------
49 loizides 1.1 void FillerElectrons::FillDataBlock(const edm::Event &event,
50     const edm::EventSetup &setup)
51     {
52     // Fill electrons from edm collection into our collection.
53    
54     electrons_->Reset();
55    
56 loizides 1.7 Handle<reco::PixelMatchGsfElectronCollection> hElectronProduct;
57     GetProduct(edmName_, hElectronProduct, event);
58 loizides 1.1
59 loizides 1.7 const reco::PixelMatchGsfElectronCollection inElectrons = *(hElectronProduct.product());
60 loizides 1.1
61     for (reco::PixelMatchGsfElectronCollection::const_iterator iM = inElectrons.begin();
62     iM != inElectrons.end(); ++iM) {
63    
64     mithep::Electron* outElectron = electrons_->AddNew();
65     if (gsfTrackMap_ && iM->gsfTrack().isNonnull())
66     outElectron->SetGsfTrack(gsfTrackMap_->GetMit(iM->gsfTrack()));
67     if (trackerTrackMap_ && iM->track().isNonnull())
68     outElectron->SetTrackerTrack(trackerTrackMap_->GetMit(iM->track()));
69     }
70    
71     electrons_->Trim();
72     }