ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitProd/TreeFiller/src/FillerConversionElectrons.cc
Revision: 1.7
Committed: Thu Jul 31 12:34:04 2008 UTC (16 years, 9 months ago) by loizides
Content type: text/plain
Branch: MAIN
CVS Tags: Mit_006b, Mit_006a, Mit_006, Mit_005, Mit_004, MITHEP_2_0_x
Changes since 1.6: +29 -20 lines
Log Message:
Consistently introduced ObjectService. Updated comments. Updated .cfg files. Switched off default handling of Stable and DecayParts (for now). ZmmFullReco.cfg shows how to use standard filler with extensions.

File Contents

# User Rev Content
1 loizides 1.7 // $Id: FillerConversionElectrons.cc,v 1.6 2008/07/30 08:39:50 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.7 FillerConversionElectrons::FillerConversionElectrons(const edm::ParameterSet &cfg, bool active) :
16 loizides 1.4 BaseFiller(cfg,"ConversionElectrons",active),
17     mitName_(Conf().getUntrackedParameter<string>("mitName","ConversionElectrons")),
18 loizides 1.7 convInOutTracksName_(Conf().getUntrackedParameter<string>("convInOutTracksName","")),
19     convOutInTracksName_(Conf().getUntrackedParameter<string>("convOutInTracksName","")),
20     convInOutTrackMapName_(Conf().getUntrackedParameter<string>("convInOutTrackMapName","")),
21     convOutInTrackMapName_(Conf().getUntrackedParameter<string>("convOutInTrackMapName","")),
22     convElectronMapName_(Conf().getUntrackedParameter<string>("convElectronMapName",
23     Form("%sMapName",mitName_.c_str()))),
24     convInOutTracks_(0),
25     convOutInTracks_(0),
26     convInOutTrackMap_(0),
27     convOutInTrackMap_(0),
28     convElectrons_(new mithep::ElectronArr(16)),
29     convElectronMap_(new mithep::ConversionElectronMap)
30 bendavid 1.1 {
31 loizides 1.2 // Constructor.
32 bendavid 1.1 }
33    
34 loizides 1.2 //--------------------------------------------------------------------------------------------------
35 bendavid 1.1 FillerConversionElectrons::~FillerConversionElectrons()
36     {
37 loizides 1.2 // Destructor.
38    
39 loizides 1.7 delete convElectrons_;
40 bendavid 1.1 delete convElectronMap_;
41     }
42    
43 loizides 1.2 //--------------------------------------------------------------------------------------------------
44 bendavid 1.1 void FillerConversionElectrons::BookDataBlock(TreeWriter &tws)
45     {
46 loizides 1.7 // Add converted electron branch to tree. Publish and get our objects.
47 loizides 1.2
48 loizides 1.7 tws.AddBranch(mitName_.c_str(),&convElectrons_);
49    
50     OS()->add<ElectronArr>(convElectrons_,mitName_.c_str());
51     OS()->add<ConversionElectronMap>(convElectronMap_,convElectronMapName_.c_str());
52     convInOutTracks_ = OS()->get<TrackArr>(convInOutTracksName_.c_str());
53     convOutInTracks_ = OS()->get<TrackArr>(convOutInTracksName_.c_str());
54     convInOutTrackMap_ = OS()->get<TrackMap>(convInOutTrackMapName_.c_str());
55     convOutInTrackMap_ = OS()->get<TrackMap>(convOutInTrackMapName_.c_str());
56 bendavid 1.1 }
57    
58 loizides 1.2 //--------------------------------------------------------------------------------------------------
59 bendavid 1.1 void FillerConversionElectrons::FillDataBlock(const edm::Event &event,
60 loizides 1.2 const edm::EventSetup &setup)
61 bendavid 1.1 {
62 loizides 1.2 // Fill converted electron array.
63 bendavid 1.1
64 loizides 1.7 convElectrons_->Reset();
65 bendavid 1.1 convElectronMap_->Reset();
66 loizides 1.7 FillFromTracks(convInOutTracks_, convInOutTrackMap_);
67     FillFromTracks(convOutInTracks_, convOutInTrackMap_);
68     convElectrons_->Trim();
69 bendavid 1.1 }
70    
71 loizides 1.2 //--------------------------------------------------------------------------------------------------
72     void FillerConversionElectrons::FillFromTracks(const TrackCol *tracks,
73     const TrackMap *trackMap)
74     {
75     // Obtain information from tracks.
76    
77     for (UInt_t i=0; i<tracks->GetEntries(); ++i) {
78     mithep::Track *track = const_cast<Track*>(tracks->At(i));
79 loizides 1.7 mithep::Electron *electron = convElectrons_->AddNew();
80 loizides 1.5 electron->SetTrackerTrk(track);
81 loizides 1.6 convElectronMap_->Add(trackMap->GetEdm(track), electron);
82 loizides 1.2 }
83 bendavid 1.1 }