ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitProd/TreeFiller/src/FillerConversionElectrons.cc
Revision: 1.13
Committed: Thu Jun 18 23:10:01 2009 UTC (15 years, 10 months ago) by bendavid
Content type: text/plain
Branch: MAIN
CVS Tags: HEAD
Changes since 1.12: +1 -1 lines
State: FILE REMOVED
Log Message:
Finally removed godaweful hack FillerConversionElectrons class

File Contents

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