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

# User Rev Content
1 bendavid 1.11 // $Id: FillerConversionElectrons.cc,v 1.10 2009/03/15 11:20:41 loizides Exp $
2 bendavid 1.1
3 loizides 1.2 #include "MitProd/TreeFiller/interface/FillerConversionElectrons.h"
4 bendavid 1.1 #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 loizides 1.2 //--------------------------------------------------------------------------------------------------
15 loizides 1.9 FillerConversionElectrons::FillerConversionElectrons(const edm::ParameterSet &cfg,
16     const char *name, bool active) :
17     BaseFiller(cfg,name,active),
18 loizides 1.4 mitName_(Conf().getUntrackedParameter<string>("mitName","ConversionElectrons")),
19 loizides 1.7 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 bendavid 1.1 {
32 loizides 1.2 // Constructor.
33 bendavid 1.1 }
34    
35 loizides 1.2 //--------------------------------------------------------------------------------------------------
36 bendavid 1.1 FillerConversionElectrons::~FillerConversionElectrons()
37     {
38 loizides 1.2 // Destructor.
39    
40 loizides 1.7 delete convElectrons_;
41 bendavid 1.1 delete convElectronMap_;
42     }
43    
44 loizides 1.2 //--------------------------------------------------------------------------------------------------
45 bendavid 1.1 void FillerConversionElectrons::BookDataBlock(TreeWriter &tws)
46     {
47 loizides 1.7 // Add converted electron branch to tree. Publish and get our objects.
48 loizides 1.2
49 loizides 1.10 tws.AddBranch(mitName_,&convElectrons_);
50     OS()->add<ElectronArr>(convElectrons_,mitName_);
51 loizides 1.7
52 loizides 1.10 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 bendavid 1.1 }
71    
72 loizides 1.2 //--------------------------------------------------------------------------------------------------
73 bendavid 1.1 void FillerConversionElectrons::FillDataBlock(const edm::Event &event,
74 loizides 1.2 const edm::EventSetup &setup)
75 bendavid 1.1 {
76 loizides 1.2 // Fill converted electron array.
77 bendavid 1.1
78 bendavid 1.8 convElectrons_->Delete();
79 bendavid 1.1 convElectronMap_->Reset();
80 loizides 1.7 FillFromTracks(convInOutTracks_, convInOutTrackMap_);
81     FillFromTracks(convOutInTracks_, convOutInTrackMap_);
82     convElectrons_->Trim();
83 bendavid 1.1 }
84    
85 loizides 1.2 //--------------------------------------------------------------------------------------------------
86     void FillerConversionElectrons::FillFromTracks(const TrackCol *tracks,
87     const TrackMap *trackMap)
88     {
89     // Obtain information from tracks.
90    
91 loizides 1.10 if (!tracks || !trackMap)
92     return;
93    
94 loizides 1.2 for (UInt_t i=0; i<tracks->GetEntries(); ++i) {
95     mithep::Track *track = const_cast<Track*>(tracks->At(i));
96 loizides 1.7 mithep::Electron *electron = convElectrons_->AddNew();
97 bendavid 1.11 electron->SetPtEtaPhi(track->Pt(), track->Eta(), track->Phi());
98 loizides 1.5 electron->SetTrackerTrk(track);
99 loizides 1.6 convElectronMap_->Add(trackMap->GetEdm(track), electron);
100 loizides 1.2 }
101 bendavid 1.1 }