ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitProd/TreeFiller/src/FillerBasicClusters.cc
Revision 1.22 - (view) (annotate) - [select for diffs]
Thu Aug 9 21:16:05 2012 UTC (12 years, 8 months ago) by paus
Branch: MAIN
CVS Tags: HEAD, Mit_029, Mit_029a, Mit_029b, Mit_029c, Mit_030, Mit_030_pre1, Mit_031, Mit_032
Changes since 1.21: +39 -43 lines
Diff to previous 1.21
For version 029.

Revision 1.21 - (view) (annotate) - [select for diffs]
Mon Jul 16 13:13:40 2012 UTC (12 years, 9 months ago) by bendavid
Branch: MAIN
CVS Tags: Mit_029_pre1
Changes since 1.20: +22 -122 lines
Diff to previous 1.20
minimal changes for 53x

Revision 1.17.2.1 - (view) (annotate) - [select for diffs]
Tue May 15 23:31:20 2012 UTC (12 years, 11 months ago) by paus
Branch: Mit_025c_branch
CVS Tags: Mit_025c_branch0, Mit_025c_branch1, Mit_025c_branch2
Changes since 1.17: +102 -57 lines
Diff to previous 1.17 , to next main 1.22
Backporting from 5x.

Revision 1.20 - (view) (annotate) - [select for diffs]
Sat May 5 16:49:59 2012 UTC (12 years, 11 months ago) by paus
Branch: MAIN
CVS Tags: Mit_027, Mit_027a, Mit_028, Mit_028a
Changes since 1.19: +163 -36 lines
Diff to previous 1.19
Version 027 - complete version for ICHEP 2012.

Revision 1.19 - (view) (annotate) - [select for diffs]
Fri Apr 20 16:07:43 2012 UTC (13 years ago) by bendavid
Branch: MAIN
Changes since 1.18: +25 -7 lines
Diff to previous 1.18
Add Particle Flow photons

Revision 1.18 - (view) (annotate) - [select for diffs]
Fri Mar 30 01:08:40 2012 UTC (13 years, 1 month ago) by paus
Branch: MAIN
CVS Tags: Mit_026
Changes since 1.17: +2 -2 lines
Diff to previous 1.17
Initial 5 version.

Revision 1.17 - (view) (annotate) - [select for diffs]
Mon Oct 10 20:57:28 2011 UTC (13 years, 6 months ago) by bendavid
Branch: MAIN
CVS Tags: Mit_025, Mit_025a, Mit_025b, Mit_025c, Mit_025d, Mit_025e
Branch point for: Mit_025c_branch
Changes since 1.16: +10 -29 lines
Diff to previous 1.16
add crystal tilt axes to basic cluster

Revision 1.16 - (view) (annotate) - [select for diffs]
Sun Oct 9 23:28:48 2011 UTC (13 years, 6 months ago) by bendavid
Branch: MAIN
Changes since 1.15: +50 -26 lines
Diff to previous 1.15
store ecal local coordinates

Revision 1.15 - (view) (annotate) - [select for diffs]
Sat Apr 23 19:13:14 2011 UTC (14 years ago) by bendavid
Branch: MAIN
CVS Tags: Mit_021, Mit_021pre1, Mit_021pre2, Mit_022, Mit_022a, Mit_023, Mit_024, Mit_024a, Mit_024b, Mit_025pre1, Mit_025pre2
Changes since 1.14: +2 -2 lines
Diff to previous 1.14
minimal compilation fixes for 42x

Revision 1.14 - (view) (annotate) - [select for diffs]
Fri Jun 25 14:01:31 2010 UTC (14 years, 10 months ago) by peveraer
Branch: MAIN
CVS Tags: Mit_014b, Mit_014c, Mit_014d, Mit_014e, Mit_015, Mit_015a, Mit_015b, Mit_016, Mit_017, Mit_017pre1, Mit_017pre2, Mit_017pre3, Mit_018, Mit_020, Mit_020a, Mit_020b, Mit_020c, Mit_020d, Mit_020pre1, TMit_020d
Changes since 1.13: +1 -31 lines
Diff to previous 1.13
Fixed merging

Revision 1.13 - (view) (annotate) - [select for diffs]
Fri Jun 25 13:57:01 2010 UTC (14 years, 10 months ago) by peveraer
Branch: MAIN
Changes since 1.12: +32 -1 lines
Diff to previous 1.12
Fix in SwissCross method for BasicClusters

Revision 1.12 - (view) (annotate) - [select for diffs]
Thu Jun 24 12:59:50 2010 UTC (14 years, 10 months ago) by peveraer
Branch: MAIN
Changes since 1.11: +31 -1 lines
Diff to previous 1.11
// $Id: FillerBasicClusters.cc,v 1.11 2010/03/24 15:40:57 sixie Exp $

#include "MitProd/TreeFiller/interface/FillerBasicClusters.h"
#include "DataFormats/CaloRecHit/interface/CaloClusterFwd.h"
#include "DataFormats/CaloRecHit/interface/CaloCluster.h"
#include "MitAna/DataTree/interface/BasicClusterCol.h"
#include "MitAna/DataTree/interface/Names.h"
#include "MitProd/ObjectService/interface/ObjectService.h"
#include "RecoEcal/EgammaCoreTools/interface/EcalClusterLazyTools.h"
#include "RecoLocalCalo/EcalRecAlgos/interface/EcalSeverityLevelAlgo.h"
#include "DataFormats/EcalDetId/interface/EcalSubdetector.h"

using namespace std;
using namespace edm;
using namespace mithep;

//--------------------------------------------------------------------------------------------------
FillerBasicClusters::FillerBasicClusters(const ParameterSet &cfg, const char *name, bool active) :
  BaseFiller(cfg,name,active),
  edmName_(Conf().getUntrackedParameter<string>("edmName","hybridSuperClusters")),
  mitName_(Conf().getUntrackedParameter<string>("mitName","BasicClusters")),
  barrelEcalRecHitName_(Conf().getUntrackedParameter<string>("barrelEcalRecHitName","")),
  endcapEcalRecHitName_(Conf().getUntrackedParameter<string>("endcapEcalRecHitName","")),
  basicClusterMapName_(Conf().getUntrackedParameter<string>("basicClusterMapName",
                                                            "BasicClusterMap")),
  basicClusters_(new mithep::BasicClusterArr(100)),
  basicClusterMap_(new mithep::BasicClusterMap)
{
  // Constructor.
}

//--------------------------------------------------------------------------------------------------
FillerBasicClusters::~FillerBasicClusters()
{
  // Destructor.

  delete basicClusters_;
  delete basicClusterMap_;
}

//--------------------------------------------------------------------------------------------------
void FillerBasicClusters::BookDataBlock(TreeWriter &tws)
{
  // Add BasicCluster branch and the BasicClusterMap to tree.

  tws.AddBranch(mitName_,&basicClusters_);
  OS()->add<BasicClusterArr>(basicClusters_,mitName_);

  if (!basicClusterMapName_.empty()) {
    basicClusterMap_->SetBrName(mitName_);
    OS()->add<BasicClusterMap>(basicClusterMap_,basicClusterMapName_);
  }
}

//--------------------------------------------------------------------------------------------------
void FillerBasicClusters::FillDataBlock(const edm::Event      &event,
                                        const edm::EventSetup &setup)
{
  // Fill the BasicCluster information into our structures.

  basicClusters_->Delete();
  basicClusterMap_->Reset();

  Handle<reco::CaloClusterCollection> hBasicClusterProduct;
  GetProduct(edmName_, hBasicClusterProduct, event);
  basicClusterMap_->SetEdmProductId(hBasicClusterProduct.id().id());
  const reco::CaloClusterCollection inBasicClusters = *(hBasicClusterProduct.product());


  EcalClusterLazyTools lazyTools(event, setup, edm::InputTag(barrelEcalRecHitName_),
                                 edm::InputTag(endcapEcalRecHitName_));

  // loop through all basic clusters
  for (reco::CaloClusterCollection::const_iterator inBC = inBasicClusters.begin();
       inBC != inBasicClusters.end(); ++inBC) {

    mithep::BasicCluster *outBasicCluster = basicClusters_->Allocate();
    new (outBasicCluster) mithep::BasicCluster();

    outBasicCluster->SetXYZ(inBC->x(),inBC->y(),inBC->z());
    outBasicCluster->SetEnergy(inBC->energy());
    outBasicCluster->SetNHits(inBC->size());
    outBasicCluster->SetE1x3(lazyTools.e1x3(*inBC));
    outBasicCluster->SetE3x1(lazyTools.e3x1(*inBC));
    outBasicCluster->SetE1x5(lazyTools.e1x5(*inBC));
    outBasicCluster->SetE2x2(lazyTools.e2x2(*inBC));
    outBasicCluster->SetE3x2(lazyTools.e3x2(*inBC));
    outBasicCluster->SetE3x3(lazyTools.e3x3(*inBC));
    outBasicCluster->SetE4x4(lazyTools.e4x4(*inBC));
    outBasicCluster->SetE5x5(lazyTools.e5x5(*inBC));
    outBasicCluster->SetE2x5Right(lazyTools.e2x5Right(*inBC));
    outBasicCluster->SetE2x5Left(lazyTools.e2x5Left(*inBC));
    outBasicCluster->SetE2x5Top(lazyTools.e2x5Top(*inBC));
    outBasicCluster->SetE2x5Bottom(lazyTools.e2x5Bottom(*inBC));
    outBasicCluster->SetE2x5Max(lazyTools.e2x5Max(*inBC));
    outBasicCluster->SetELeft(lazyTools.eLeft(*inBC));
    outBasicCluster->SetERight(lazyTools.eRight(*inBC));
    outBasicCluster->SetETop(lazyTools.eTop(*inBC));
    outBasicCluster->SetEBottom(lazyTools.eBottom(*inBC));
    outBasicCluster->SetEMax(lazyTools.eMax(*inBC));
    outBasicCluster->SetE2nd(lazyTools.e2nd(*inBC));
    outBasicCluster->SetEtaLat(lazyTools.lat(*inBC)[0]);
    outBasicCluster->SetPhiLat(lazyTools.lat(*inBC)[1]);
    outBasicCluster->SetLat(lazyTools.lat(*inBC)[2]);
    outBasicCluster->SetCovEtaEta(lazyTools.covariances(*inBC)[0]);
    outBasicCluster->SetCovEtaPhi(lazyTools.covariances(*inBC)[1]);
    outBasicCluster->SetCovPhiPhi(lazyTools.covariances(*inBC)[2]);
    outBasicCluster->SetCoviEtaiEta(lazyTools.localCovariances(*inBC)[0]);
    outBasicCluster->SetCoviEtaiPhi(lazyTools.localCovariances(*inBC)[1]);
    outBasicCluster->SetCoviPhiiPhi(lazyTools.localCovariances(*inBC)[2]);
    outBasicCluster->SetZernike20(lazyTools.zernike20(*inBC));
    outBasicCluster->SetZernike42(lazyTools.zernike42(*inBC));


    edm::Handle< EcalRecHitCollection > pEBRecHits;
    event.getByLabel(barrelEcalRecHitName_, pEBRecHits );
    const EcalRecHitCollection * ebRecHits_ = pEBRecHits.product();
    edm::Handle< EcalRecHitCollection > pEERecHits;
    event.getByLabel( endcapEcalRecHitName_, pEERecHits );
    const EcalRecHitCollection * eeRecHits_ = pEERecHits.product();

    DetId id = ((*inBC).hitsAndFractions()[0]).first;
    const EcalRecHitCollection *recHits = 0;
    if (  id.subdetId() == EcalBarrel  ) {
                recHits = ebRecHits_;
        } else if ( id.subdetId() == EcalEndcap  ) {
                recHits = eeRecHits_;
        }
    float max = 0;
    DetId idmax(0);
        for ( size_t i = 0; i < (*inBC).hitsAndFractions().size(); ++i ) {
          float energy=0;
          if ((*inBC).hitsAndFractions()[i].first!=DetId(0)) energy= (*(recHits->find( id ))).energy() * (((*inBC).hitsAndFractions())[i].second);
                if ( energy > max ) {
                        max = energy;
                        id = ((*inBC).hitsAndFractions())[i].first;
                }
        }
   outBasicCluster->SetSwissCross(EcalSeverityLevelAlgo::swissCross(idmax,*recHits,0.));

    // add basic clusters to the map
    reco::CaloClusterPtr thePtr(hBasicClusterProduct, inBC-inBasicClusters.begin());
    basicClusterMap_->Add(thePtr, outBasicCluster);

  }
  basicClusters_->Trim();
}

Revision 1.11 - (view) (annotate) - [select for diffs]
Wed Mar 24 15:40:57 2010 UTC (15 years, 1 month ago) by sixie
Branch: MAIN
CVS Tags: Mit_013, Mit_013a, Mit_013b, Mit_013c, Mit_013d, Mit_014, Mit_014a, Mit_014pre1, Mit_014pre2, Mit_014pre3
Changes since 1.10: +38 -0 lines
Diff to previous 1.10
Add EM shower shape variables

Revision 1.10 - (view) (annotate) - [select for diffs]
Thu Mar 18 20:21:00 2010 UTC (15 years, 1 month ago) by bendavid
Branch: MAIN
Changes since 1.9: +2 -2 lines
Diff to previous 1.9
Fix beginrun,beginjob mess

Revision 1.9 - (view) (annotate) - [select for diffs]
Fri Sep 25 08:42:50 2009 UTC (15 years, 7 months ago) by loizides
Branch: MAIN
CVS Tags: Mit_011a, Mit_012, Mit_012a, Mit_012b, Mit_012c, Mit_012d, Mit_012e, Mit_012f, Mit_012g, Mit_012h, Mit_012i, Mit_013pre1
Changes since 1.8: +2 -2 lines
Diff to previous 1.8
Extended interface of BookDataBlock to contain event setup.

Revision 1.8 - (view) (annotate) - [select for diffs]
Mon Jul 20 03:19:24 2009 UTC (15 years, 9 months ago) by loizides
Branch: MAIN
CVS Tags: Mit_010, Mit_010a, Mit_011
Changes since 1.7: +2 -2 lines
Diff to previous 1.7
Cleanup

Revision 1.7 - (view) (annotate) - [select for diffs]
Thu Jun 18 23:04:24 2009 UTC (15 years, 10 months ago) by bendavid
Branch: MAIN
Changes since 1.6: +8 -8 lines
Diff to previous 1.6
Accounted for BasicCluster to CaloCluster name change

Revision 1.6 - (view) (annotate) - [select for diffs]
Mon Jun 15 15:00:25 2009 UTC (15 years, 10 months ago) by loizides
Branch: MAIN
CVS Tags: Mit_009b, Mit_009c
Changes since 1.5: +4 -4 lines
Diff to previous 1.5
Added proper fwd defs plus split up complilation of MitAna/DataTree LinkDefs.

Revision 1.5 - (view) (annotate) - [select for diffs]
Sun Mar 15 11:20:41 2009 UTC (16 years, 1 month ago) by loizides
Branch: MAIN
CVS Tags: Mit_008, Mit_008pre2, Mit_009, Mit_009a
Changes since 1.4: +8 -7 lines
Diff to previous 1.4
Introduced BranchTable plus general cleanup.

Revision 1.4 - (view) (annotate) - [select for diffs]
Tue Mar 3 18:10:00 2009 UTC (16 years, 2 months ago) by bendavid
Branch: MAIN
CVS Tags: Mit_008pre1
Changes since 1.3: +2 -4 lines
Diff to previous 1.3
Remove unused variables

Revision 1.3 - (view) (annotate) - [select for diffs]
Thu Feb 26 17:04:03 2009 UTC (16 years, 2 months ago) by bendavid
Branch: MAIN
Changes since 1.2: +2 -2 lines
Diff to previous 1.2
Switch from Reset to Delete calls on arrays, since we now use some heap

Revision 1.2 - (view) (annotate) - [select for diffs]
Wed Sep 10 03:30:23 2008 UTC (16 years, 7 months ago) by loizides
Branch: MAIN
CVS Tags: Mit_004, Mit_005, Mit_006, Mit_006a, Mit_006b
Changes since 1.1: +2 -4 lines
Diff to previous 1.1
Cleanup

Revision 1.1 - (view) (annotate) - [select for diffs]
Fri Aug 8 11:12:38 2008 UTC (16 years, 8 months ago) by sixie
Branch: MAIN
CVS Tags: MITHEP_2_0_x
Add BasicCluster and SuperCluster objects into the Data Tree, and their Fillers.

Convenience Links

Links to HEAD: (view) (annotate)

Compare Revisions

This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, select a symbolic revision name using the selection box, or choose 'Use Text Field' and enter a numeric revision.

  Diffs between and
  Type of Diff should be a