ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitProd/TreeFiller/src/FillerPsClusters.cc
Revision: 1.1
Committed: Sat May 5 16:49:59 2012 UTC (13 years ago) by paus
Content type: text/plain
Branch: MAIN
CVS Tags: Mit_028, Mit_027a, Mit_027
Log Message:
Version 027 - complete version for ICHEP 2012.

File Contents

# User Rev Content
1 paus 1.1 // $Id: FillerPsClusters.cc,v 1.19 2012/04/20 16:07:43 bendavid Exp $
2    
3     #include "MitProd/TreeFiller/interface/FillerPsClusters.h"
4     #include "DataFormats/EgammaReco/interface/PreshowerCluster.h"
5     #include "DataFormats/EgammaReco/interface/PreshowerClusterFwd.h"
6     #include "DataFormats/CaloRecHit/interface/CaloClusterFwd.h"
7     #include "DataFormats/CaloRecHit/interface/CaloCluster.h"
8     #include "MitAna/DataTree/interface/PsClusterCol.h"
9     #include "MitAna/DataTree/interface/Names.h"
10     #include "MitProd/ObjectService/interface/ObjectService.h"
11     #include "RecoEcal/EgammaCoreTools/interface/EcalClusterLazyTools.h"
12     #include "RecoLocalCalo/EcalRecAlgos/interface/EcalSeverityLevelAlgo.h"
13     #include "DataFormats/EcalDetId/interface/EcalSubdetector.h"
14     #include "RecoEgamma/EgammaTools/interface/EcalClusterLocal.h"
15    
16     using namespace std;
17     using namespace edm;
18     using namespace mithep;
19    
20     //--------------------------------------------------------------------------------------------------
21     FillerPsClusters::FillerPsClusters(const ParameterSet &cfg, const char *name, bool active) :
22     BaseFiller(cfg,name,active),
23     edmName_(Conf().getUntrackedParameter<string>("edmName","hybridSuperClusters")),
24     mitName_(Conf().getUntrackedParameter<string>("mitName","PsClusters")),
25     psClusterMapName_(Conf().getUntrackedParameter<string>("psClusterMapName",
26     "PsClusterMap")),
27     psClusters_(new mithep::PsClusterArr(100)),
28     psClusterMap_(new mithep::PsClusterMap)
29     {
30     // Constructor.
31     }
32    
33     //--------------------------------------------------------------------------------------------------
34     FillerPsClusters::~FillerPsClusters()
35     {
36     // Destructor.
37    
38     delete psClusters_;
39     delete psClusterMap_;
40     }
41    
42     //--------------------------------------------------------------------------------------------------
43     void FillerPsClusters::BookDataBlock(TreeWriter &tws)
44     {
45     // Add PsCluster branch and the PsClusterMap to tree.
46    
47     tws.AddBranch(mitName_,&psClusters_);
48     OS()->add<PsClusterArr>(psClusters_,mitName_);
49    
50     if (!psClusterMapName_.empty()) {
51     psClusterMap_->SetBrName(mitName_);
52     OS()->add<PsClusterMap>(psClusterMap_,psClusterMapName_);
53     }
54     }
55    
56     //--------------------------------------------------------------------------------------------------
57     void FillerPsClusters::FillDataBlock(const edm::Event &event,
58     const edm::EventSetup &setup)
59     {
60     // Fill the PsCluster information into our structures.
61    
62     psClusters_->Delete();
63     psClusterMap_->Reset();
64    
65     Handle<reco::PreshowerClusterCollection> hPsClusterProduct;
66     GetProduct(edmName_, hPsClusterProduct, event);
67     psClusterMap_->SetEdmProductId(hPsClusterProduct.id().id());
68     const reco::PreshowerClusterCollection &inPsClusters = *(hPsClusterProduct.product());
69    
70     // loop through all basic clusters
71     for (reco::PreshowerClusterCollection::const_iterator inBC = inPsClusters.begin();
72     inBC != inPsClusters.end(); ++inBC) {
73    
74     mithep::PsCluster *outPsCluster = psClusters_->Allocate();
75     new (outPsCluster) mithep::PsCluster();
76    
77     outPsCluster->SetXYZ(inBC->x(),inBC->y(),inBC->z());
78     outPsCluster->SetEnergy(inBC->energy());
79     outPsCluster->SetNHits(inBC->size());
80    
81     outPsCluster->SetPsPlane(inBC->plane());
82    
83     // add basic clusters to the map
84     reco::CaloClusterPtr thePtr(hPsClusterProduct, inBC-inPsClusters.begin());
85     psClusterMap_->Add(thePtr, outPsCluster);
86    
87     }
88     psClusters_->Trim();
89     }