ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitProd/TreeFiller/src/FillerStableParts.cc
Revision: 1.8
Committed: Mon Nov 3 18:11:10 2008 UTC (16 years, 6 months ago) by bendavid
Content type: text/plain
Branch: MAIN
CVS Tags: Mit_006
Changes since 1.7: +3 -2 lines
Log Message:
Changed to base class usage of reco::Track throughout and removed FillerGsfTracks

File Contents

# User Rev Content
1 bendavid 1.8 // $Id: FillerStableParts.cc,v 1.7 2008/09/27 05:50:47 loizides Exp $
2 paus 1.1
3 loizides 1.4 #include "MitAna/DataTree/interface/StableParticle.h"
4 paus 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 bendavid 1.8 #include "DataFormats/Common/interface/RefToPtr.h"
9 paus 1.1 #include "SimDataFormats/TrackingAnalysis/interface/TrackingParticle.h"
10     #include "SimDataFormats/TrackingAnalysis/interface/TrackingParticleFwd.h"
11     #include "DataFormats/RecoCandidate/interface/TrackAssociation.h"
12 loizides 1.7 #include "MitEdm/DataFormats/interface/Collections.h"
13 bendavid 1.2 #include "MitEdm/DataFormats/interface/BasePartFwd.h"
14 bendavid 1.5 #include "MitEdm/DataFormats/interface/StablePart.h"
15 paus 1.1 #include "MitProd/TreeFiller/interface/FillerStableParts.h"
16     #include "MitAna/DataTree/interface/Names.h"
17    
18     using namespace std;
19     using namespace edm;
20     using namespace mithep;
21    
22     //--------------------------------------------------------------------------------------------------
23 loizides 1.4 FillerStableParts::FillerStableParts(const ParameterSet &cfg, const char *name, bool active) :
24 paus 1.1 BaseFiller(cfg,name,active),
25 loizides 1.4 edmName_(Conf().getUntrackedParameter<string>("edmName","")),
26     mitName_(Conf().getUntrackedParameter<string>("mitName","")),
27     trackMapName_(Conf().getUntrackedParameter<string>("trackMapName","")),
28     basePartMapName_(Conf().getUntrackedParameter<string>("basePartMap",
29     Form("%sMapName",mitName_.c_str()))),
30     trackMap_(0),
31     stables_(new mithep::StableParticleArr(250)),
32     basePartMap_(new mithep::BasePartMap)
33 paus 1.1 {
34 loizides 1.4 // Constructor.
35 paus 1.1 }
36    
37     //--------------------------------------------------------------------------------------------------
38     FillerStableParts::~FillerStableParts()
39     {
40 loizides 1.4 // Destructor.
41    
42 paus 1.1 delete stables_;
43 loizides 1.4 delete basePartMap_;
44 paus 1.1 }
45    
46     //--------------------------------------------------------------------------------------------------
47     void FillerStableParts::BookDataBlock(TreeWriter &tws)
48     {
49 loizides 1.4 // Add tracks branch to tree, get and publish our maps.
50    
51 paus 1.1 tws.AddBranch(mitName_.c_str(),&stables_);
52 loizides 1.4
53     OS()->add(basePartMap_,basePartMapName_.c_str());
54     if (!trackMapName_.empty())
55     trackMap_ = OS()->get<TrackMap>(trackMapName_.c_str());
56 paus 1.1 }
57    
58     //--------------------------------------------------------------------------------------------------
59     void FillerStableParts::FillDataBlock(const edm::Event &evt,
60     const edm::EventSetup &setup)
61     {
62 loizides 1.4 // Fill our EDM StablePart collection into the MIT StableParticle collection.
63    
64 paus 1.1 stables_->Reset();
65 loizides 1.4 basePartMap_->Reset();
66    
67 bendavid 1.2 Handle<mitedm::StablePartCol> hParts;
68 paus 1.1 GetProduct(edmName_, hParts, evt);
69 bendavid 1.2 const mitedm::StablePartCol *iParts = hParts.product();
70 paus 1.1
71     // loop through all StableParts and fill the information
72 bendavid 1.2 for (UInt_t i=0; i<iParts->size(); ++i) {
73 loizides 1.7 const mitedm::StablePart &p = iParts->at(i);
74 bendavid 1.6 mitedm::BasePartPtr thePtr(hParts,i);
75 bendavid 1.2 mithep::StableParticle *d = stables_->Allocate();
76     new (d) mithep::StableParticle(p.pid());
77 bendavid 1.6 basePartMap_->Add(thePtr,d);
78 bendavid 1.2 if (trackMap_)
79 bendavid 1.8 d->SetTrk(trackMap_->GetMit(refToPtr(p.trackRef())));
80 paus 1.1 }
81     stables_->Trim();
82     }