ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitProd/TreeFiller/src/FillerConversionElectrons.cc
Revision: 1.12
Committed: Mon Jun 15 15:00:25 2009 UTC (15 years, 10 months ago) by loizides
Content type: text/plain
Branch: MAIN
CVS Tags: Mit_009c, Mit_009b
Changes since 1.11: +4 -3 lines
Log Message:
Added proper fwd defs plus split up complilation of MitAna/DataTree LinkDefs.

File Contents

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