ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitProd/TreeFiller/src/FillerConversions.cc
Revision: 1.4
Committed: Mon Jul 7 16:14:01 2008 UTC (16 years, 9 months ago) by loizides
Content type: text/plain
Branch: MAIN
Changes since 1.3: +3 -2 lines
Log Message:
coding conventions

File Contents

# User Rev Content
1 loizides 1.4 // $Id: FillerConversions.cc,v 1.3 2008/07/07 15:33:51 bendavid Exp $
2 bendavid 1.1
3 loizides 1.2 #include "MitProd/TreeFiller/interface/FillerConversions.h"
4 bendavid 1.1 #include "FWCore/MessageLogger/interface/MessageLogger.h"
5     #include "DataFormats/Common/interface/Handle.h"
6     #include "MitAna/DataTree/interface/Names.h"
7    
8     using namespace std;
9     using namespace edm;
10     using namespace mithep;
11    
12 loizides 1.2 //--------------------------------------------------------------------------------------------------
13     FillerConversions::FillerConversions(const ParameterSet &cfg, bool active,
14     const ConversionElectronMap *conversionElectronMap) :
15 bendavid 1.1 BaseFiller(cfg, "Conversions", active),
16     edmName_(Conf().getUntrackedParameter<string>("edmName","conversions")),
17     mitName_(Conf().getUntrackedParameter<string>("mitName","Conversions")),
18     conversionElectronMap_(conversionElectronMap),
19     conversions_(new mithep::ConversionArr),
20     conversionMap_(new mithep::ConversionMap)
21     {
22 loizides 1.2 // Constructor.
23 bendavid 1.1 }
24    
25 loizides 1.2 //--------------------------------------------------------------------------------------------------
26 bendavid 1.1 FillerConversions::~FillerConversions()
27     {
28 loizides 1.2 // Destructor.
29    
30 loizides 1.4 delete conversions_;
31 loizides 1.2 delete conversionMap_;
32 bendavid 1.1 }
33    
34 loizides 1.2 //--------------------------------------------------------------------------------------------------
35 bendavid 1.1 void FillerConversions::BookDataBlock(TreeWriter &tws)
36     {
37 loizides 1.2 // Add conversions to tree.
38    
39 bendavid 1.1 tws.AddBranch(mitName_.c_str(),&conversions_);
40     }
41    
42 loizides 1.2 //--------------------------------------------------------------------------------------------------
43 bendavid 1.1 void FillerConversions::FillDataBlock(const edm::Event &event,
44     const edm::EventSetup &setup)
45     {
46    
47     conversions_->Reset();
48     conversionMap_->Reset();
49    
50     try {
51     event.getByLabel(edm::InputTag(edmName_),conversionProduct_);
52 loizides 1.4 } catch (cms::Exception &ex) {
53 bendavid 1.1 edm::LogError("FillerConversions") << "Error! Cannot get collection with label "
54 loizides 1.2 << edmName_ << endl;
55 bendavid 1.1 throw edm::Exception(edm::errors::Configuration, "FillerConversions:FillDataBlock()\n")
56     << "Error! Cannot get collection with label " << edmName_ << endl;
57     }
58    
59     conversionMap_->SetEdmProductId(conversionProduct_.id().id());
60    
61     const reco::ConversionCollection inConversions = *(conversionProduct_.product());
62    
63     for (reco::ConversionCollection::const_iterator inConversion = inConversions.begin();
64     inConversion != inConversions.end(); ++inConversion) {
65    
66     mithep::Conversion* outConversion = conversions_->Allocate();
67 loizides 1.2 new (outConversion) mithep::Conversion(inConversion->conversionVertex().x(),
68     inConversion->conversionVertex().y(),
69     inConversion->conversionVertex().z(),
70     inConversion->conversionVertex().xError(),
71     inConversion->conversionVertex().yError(),
72     inConversion->conversionVertex().zError());
73 bendavid 1.1
74     outConversion->GetVertex().SetChi2(inConversion->conversionVertex().chi2());
75 bendavid 1.3 outConversion->GetVertex().SetNDof((Int_t)inConversion->conversionVertex().ndof());
76    
77     outConversion->SetDCotTheta(inConversion->pairCotThetaSeparation());
78     outConversion->SetEOverP(inConversion->EoverP());
79     outConversion->SetPairMass(inConversion->pairInvariantMass());
80     outConversion->SetPairMomentum(inConversion->pairMomentum().x(),
81     inConversion->pairMomentum().y(),
82     inConversion->pairMomentum().z());
83 bendavid 1.1
84     if (conversionElectronMap_) {
85 loizides 1.2 std::vector<reco::TrackRef> trackRefs = inConversion->tracks();
86     for (std::vector<reco::TrackRef>::const_iterator trackRef = trackRefs.begin();
87     trackRef != trackRefs.end(); ++trackRef) {
88     outConversion->AddDaughter(conversionElectronMap_->GetMit(*trackRef));
89     }
90 bendavid 1.1 }
91    
92     reco::ConversionRef theRef(conversionProduct_, inConversion-inConversions.begin());
93     conversionMap_->Add(theRef, outConversion);
94     }
95 loizides 1.2
96 bendavid 1.1 conversions_->Trim();
97     }