ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitProd/TreeFiller/src/FillerConversionElectrons.cc
Revision: 1.9
Committed: Tue Mar 10 15:56:01 2009 UTC (16 years, 1 month ago) by loizides
Content type: text/plain
Branch: MAIN
Changes since 1.8: +4 -3 lines
Log Message:
Introduced more dynamic filling interface.

File Contents

# User Rev Content
1 loizides 1.9 // $Id: FillerConversionElectrons.cc,v 1.8 2009/02/26 17:04:03 bendavid 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.7 tws.AddBranch(mitName_.c_str(),&convElectrons_);
50    
51     OS()->add<ElectronArr>(convElectrons_,mitName_.c_str());
52     OS()->add<ConversionElectronMap>(convElectronMap_,convElectronMapName_.c_str());
53     convInOutTracks_ = OS()->get<TrackArr>(convInOutTracksName_.c_str());
54     convOutInTracks_ = OS()->get<TrackArr>(convOutInTracksName_.c_str());
55     convInOutTrackMap_ = OS()->get<TrackMap>(convInOutTrackMapName_.c_str());
56     convOutInTrackMap_ = OS()->get<TrackMap>(convOutInTrackMapName_.c_str());
57 bendavid 1.1 }
58    
59 loizides 1.2 //--------------------------------------------------------------------------------------------------
60 bendavid 1.1 void FillerConversionElectrons::FillDataBlock(const edm::Event &event,
61 loizides 1.2 const edm::EventSetup &setup)
62 bendavid 1.1 {
63 loizides 1.2 // Fill converted electron array.
64 bendavid 1.1
65 bendavid 1.8 convElectrons_->Delete();
66 bendavid 1.1 convElectronMap_->Reset();
67 loizides 1.7 FillFromTracks(convInOutTracks_, convInOutTrackMap_);
68     FillFromTracks(convOutInTracks_, convOutInTrackMap_);
69     convElectrons_->Trim();
70 bendavid 1.1 }
71    
72 loizides 1.2 //--------------------------------------------------------------------------------------------------
73     void FillerConversionElectrons::FillFromTracks(const TrackCol *tracks,
74     const TrackMap *trackMap)
75     {
76     // Obtain information from tracks.
77    
78     for (UInt_t i=0; i<tracks->GetEntries(); ++i) {
79     mithep::Track *track = const_cast<Track*>(tracks->At(i));
80 loizides 1.7 mithep::Electron *electron = convElectrons_->AddNew();
81 loizides 1.5 electron->SetTrackerTrk(track);
82 loizides 1.6 convElectronMap_->Add(trackMap->GetEdm(track), electron);
83 loizides 1.2 }
84 bendavid 1.1 }