ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitProd/TreeFiller/src/FillerConversionElectrons.cc
Revision: 1.11
Committed: Fri Mar 20 18:46:02 2009 UTC (16 years, 1 month ago) by bendavid
Content type: text/plain
Branch: MAIN
CVS Tags: Mit_009a, Mit_009, Mit_008
Changes since 1.10: +2 -1 lines
Log Message:
Updated for explicit electron momentum vector

File Contents

# Content
1 // $Id: FillerConversionElectrons.cc,v 1.10 2009/03/15 11:20:41 loizides Exp $
2
3 #include "MitProd/TreeFiller/interface/FillerConversionElectrons.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/TrackReco/interface/TrackFwd.h"
8 #include "MitAna/DataTree/interface/Names.h"
9
10 using namespace std;
11 using namespace edm;
12 using namespace mithep;
13
14 //--------------------------------------------------------------------------------------------------
15 FillerConversionElectrons::FillerConversionElectrons(const edm::ParameterSet &cfg,
16 const char *name, bool active) :
17 BaseFiller(cfg,name,active),
18 mitName_(Conf().getUntrackedParameter<string>("mitName","ConversionElectrons")),
19 convInOutTracksName_(Conf().getUntrackedParameter<string>("convInOutTracksName","")),
20 convOutInTracksName_(Conf().getUntrackedParameter<string>("convOutInTracksName","")),
21 convInOutTrackMapName_(Conf().getUntrackedParameter<string>("convInOutTrackMapName","")),
22 convOutInTrackMapName_(Conf().getUntrackedParameter<string>("convOutInTrackMapName","")),
23 convElectronMapName_(Conf().getUntrackedParameter<string>("convElectronMapName",
24 Form("%sMapName",mitName_.c_str()))),
25 convInOutTracks_(0),
26 convOutInTracks_(0),
27 convInOutTrackMap_(0),
28 convOutInTrackMap_(0),
29 convElectrons_(new mithep::ElectronArr(16)),
30 convElectronMap_(new mithep::ConversionElectronMap)
31 {
32 // Constructor.
33 }
34
35 //--------------------------------------------------------------------------------------------------
36 FillerConversionElectrons::~FillerConversionElectrons()
37 {
38 // Destructor.
39
40 delete convElectrons_;
41 delete convElectronMap_;
42 }
43
44 //--------------------------------------------------------------------------------------------------
45 void FillerConversionElectrons::BookDataBlock(TreeWriter &tws)
46 {
47 // Add converted electron branch to tree. Publish and get our objects.
48
49 tws.AddBranch(mitName_,&convElectrons_);
50 OS()->add<ElectronArr>(convElectrons_,mitName_);
51
52 if (!convElectronMapName_.empty()) {
53 convElectronMap_->SetBrName(mitName_);
54 OS()->add<ConversionElectronMap>(convElectronMap_,convElectronMapName_);
55 }
56 if (!convInOutTracksName_.empty())
57 convInOutTracks_ = OS()->get<TrackArr>(convInOutTracksName_);
58 if (!convOutInTracksName_.empty())
59 convOutInTracks_ = OS()->get<TrackArr>(convOutInTracksName_);
60 if (!convInOutTrackMapName_.empty()) {
61 convInOutTrackMap_ = OS()->get<TrackMap>(convInOutTrackMapName_);
62 if (convInOutTrackMap_)
63 AddBranchDep(mitName_,convInOutTrackMap_->GetBrName());
64 }
65 if (!convOutInTrackMapName_.empty()) {
66 convOutInTrackMap_ = OS()->get<TrackMap>(convOutInTrackMapName_);
67 if (convOutInTrackMap_)
68 AddBranchDep(mitName_,convOutInTrackMap_->GetBrName());
69 }
70 }
71
72 //--------------------------------------------------------------------------------------------------
73 void FillerConversionElectrons::FillDataBlock(const edm::Event &event,
74 const edm::EventSetup &setup)
75 {
76 // Fill converted electron array.
77
78 convElectrons_->Delete();
79 convElectronMap_->Reset();
80 FillFromTracks(convInOutTracks_, convInOutTrackMap_);
81 FillFromTracks(convOutInTracks_, convOutInTrackMap_);
82 convElectrons_->Trim();
83 }
84
85 //--------------------------------------------------------------------------------------------------
86 void FillerConversionElectrons::FillFromTracks(const TrackCol *tracks,
87 const TrackMap *trackMap)
88 {
89 // Obtain information from tracks.
90
91 if (!tracks || !trackMap)
92 return;
93
94 for (UInt_t i=0; i<tracks->GetEntries(); ++i) {
95 mithep::Track *track = const_cast<Track*>(tracks->At(i));
96 mithep::Electron *electron = convElectrons_->AddNew();
97 electron->SetPtEtaPhi(track->Pt(), track->Eta(), track->Phi());
98 electron->SetTrackerTrk(track);
99 convElectronMap_->Add(trackMap->GetEdm(track), electron);
100 }
101 }