ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitProd/TreeFiller/src/FillerBasicClusters.cc
Revision: 1.2
Committed: Wed Sep 10 03:30:23 2008 UTC (16 years, 7 months ago) by loizides
Content type: text/plain
Branch: MAIN
CVS Tags: Mit_006b, Mit_006a, Mit_006, Mit_005, Mit_004
Changes since 1.1: +2 -4 lines
Log Message:
Cleanup

File Contents

# User Rev Content
1 loizides 1.2 // $Id: FillerBasicClusters.cc,v 1.1 2008/08/08 11:12:38 sixie Exp $
2 sixie 1.1
3     #include "MitProd/TreeFiller/interface/FillerBasicClusters.h"
4     #include "FWCore/MessageLogger/interface/MessageLogger.h"
5     #include "DataFormats/Common/interface/Handle.h"
6     #include "MitAna/DataTree/interface/Names.h"
7     #include "DataFormats/EgammaReco/interface/BasicClusterFwd.h"
8     #include "DataFormats/EgammaReco/interface/BasicCluster.h"
9    
10     using namespace std;
11     using namespace edm;
12     using namespace mithep;
13    
14     //--------------------------------------------------------------------------------------------------
15     FillerBasicClusters::FillerBasicClusters(const ParameterSet &cfg, const char *name, bool active) :
16     BaseFiller(cfg,name,active),
17     edmName_(Conf().getUntrackedParameter<string>("edmName","hybridSuperClusters")),
18     mitName_(Conf().getUntrackedParameter<string>("mitName","BasicClusters")),
19     basicClusterMapName_(Conf().getUntrackedParameter<string>("basicClusterMapName",
20     "BasicClusterMap")),
21     basicClusters_(new mithep::BasicClusterArr(100)),
22     basicClusterMap_(new mithep::BasicClusterMap)
23     {
24     // Constructor.
25     }
26    
27     //--------------------------------------------------------------------------------------------------
28     FillerBasicClusters::~FillerBasicClusters()
29     {
30     // Destructor.
31    
32     delete basicClusters_;
33     delete basicClusterMap_;
34     }
35    
36     //--------------------------------------------------------------------------------------------------
37     void FillerBasicClusters::BookDataBlock(TreeWriter &tws)
38     {
39     // Add BasicCluster branch and the BasicClusterMap to tree.
40    
41     tws.AddBranch(mitName_.c_str(),&basicClusters_);
42     OS()->add<BasicClusterMap>(basicClusterMap_,basicClusterMapName_.c_str());
43     OS()->add<BasicClusterArr>(basicClusters_,mitName_.c_str());
44    
45     }
46    
47     //--------------------------------------------------------------------------------------------------
48     void FillerBasicClusters::FillDataBlock(const edm::Event &event,
49 loizides 1.2 const edm::EventSetup &setup)
50 sixie 1.1 {
51     // Fill the BasicCluster Data Block
52    
53     basicClusters_->Reset();
54     basicClusterMap_->Reset();
55    
56     Handle<reco::BasicClusterCollection> hBasicClusterProduct;
57     GetProduct(edmName_, hBasicClusterProduct, event);
58     basicClusterMap_->SetEdmProductId(hBasicClusterProduct.id().id());
59     const reco::BasicClusterCollection inBasicClusters = *(hBasicClusterProduct.product());
60    
61     // loop through all basic clusters
62     for (reco::BasicClusterCollection::const_iterator inBC = inBasicClusters.begin();
63     inBC != inBasicClusters.end(); ++inBC) {
64    
65     mithep::BasicCluster *outBasicCluster = basicClusters_->Allocate();
66     new (outBasicCluster) mithep::BasicCluster();
67    
68     outBasicCluster->SetXYZ(inBC->x(),inBC->y(),inBC->z());
69     outBasicCluster->SetEnergy(inBC->energy());
70     outBasicCluster->SetAlgoId(inBC->algo());
71     outBasicCluster->SetChiSq(inBC->chi2());
72    
73     //add basic clusters to the map
74     reco::BasicClusterRef theRef(hBasicClusterProduct, inBC-inBasicClusters.begin());
75     basicClusterMap_->Add(theRef, outBasicCluster);
76    
77     }
78    
79     basicClusters_->Trim();
80     }