ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitProd/TreeFiller/src/FillerElectrons.cc
Revision: 1.10
Committed: Thu Jul 31 12:34:04 2008 UTC (16 years, 9 months ago) by loizides
Content type: text/plain
Branch: MAIN
Changes since 1.9: +12 -7 lines
Log Message:
Consistently introduced ObjectService. Updated comments. Updated .cfg files. Switched off default handling of Stable and DecayParts (for now). ZmmFullReco.cfg shows how to use standard filler with extensions.

File Contents

# User Rev Content
1 loizides 1.10 // $Id: FillerElectrons.cc,v 1.9 2008/07/14 21:01:00 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     #include "MitAna/DataTree/interface/Track.h"
12     #include "MitAna/DataTree/interface/Names.h"
13    
14     using namespace std;
15     using namespace edm;
16     using namespace mithep;
17    
18 loizides 1.5 //--------------------------------------------------------------------------------------------------
19 loizides 1.10 FillerElectrons::FillerElectrons(const edm::ParameterSet &cfg, bool active) :
20 loizides 1.8 BaseFiller(cfg,"Electrons",active),
21 loizides 1.1 edmName_(Conf().getUntrackedParameter<string>("edmName","pixelMatchGsfElectrons")),
22     mitName_(Conf().getUntrackedParameter<string>("mitName",Names::gkElectronBrn)),
23 loizides 1.10 gsfTrackMapName_(Conf().getUntrackedParameter<string>("gsfTrackMapName","")),
24     trackerTrackMapName_(Conf().getUntrackedParameter<string>("trackerTrackMapName","")),
25 loizides 1.8 electrons_(new mithep::ElectronArr(16)),
26 loizides 1.10 gsfTrackMap_(0),
27     trackerTrackMap_(0)
28 loizides 1.1 {
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 loizides 1.10 // Add electron branch to our tree and get our maps.
44 loizides 1.1
45     tws.AddBranch(mitName_.c_str(),&electrons_);
46 loizides 1.10
47     if (!gsfTrackMapName_.empty())
48     gsfTrackMap_ = OS()->get<GsfTrackMap>(gsfTrackMapName_.c_str());
49     if (!trackerTrackMapName_.empty())
50     trackerTrackMap_ = OS()->get<TrackMap>(trackerTrackMapName_.c_str());
51 loizides 1.1 }
52    
53 loizides 1.5 //--------------------------------------------------------------------------------------------------
54 loizides 1.1 void FillerElectrons::FillDataBlock(const edm::Event &event,
55     const edm::EventSetup &setup)
56     {
57     // Fill electrons from edm collection into our collection.
58    
59     electrons_->Reset();
60    
61 loizides 1.7 Handle<reco::PixelMatchGsfElectronCollection> hElectronProduct;
62     GetProduct(edmName_, hElectronProduct, event);
63 loizides 1.1
64 loizides 1.7 const reco::PixelMatchGsfElectronCollection inElectrons = *(hElectronProduct.product());
65 loizides 1.1
66     for (reco::PixelMatchGsfElectronCollection::const_iterator iM = inElectrons.begin();
67     iM != inElectrons.end(); ++iM) {
68    
69 loizides 1.8 mithep::Electron *outElectron = electrons_->AddNew();
70 loizides 1.1 if (gsfTrackMap_ && iM->gsfTrack().isNonnull())
71 loizides 1.9 outElectron->SetGsfTrk(gsfTrackMap_->GetMit(iM->gsfTrack()));
72 loizides 1.1 if (trackerTrackMap_ && iM->track().isNonnull())
73 loizides 1.9 outElectron->SetTrackerTrk(trackerTrackMap_->GetMit(iM->track()));
74 loizides 1.1 }
75    
76     electrons_->Trim();
77     }