CMS 3D CMS Logo

Public Member Functions | Private Attributes

CaloConeSelector Class Reference

#include <CaloConeSelector.h>

List of all members.

Public Member Functions

 CaloConeSelector (double dR, const CaloGeometry *geom)
 CaloConeSelector (double dR, const CaloGeometry *geom, DetId::Detector detector, int subdet=0)
std::auto_ptr
< CaloRecHitMetaCollectionV
select (double eta, double phi, const CaloRecHitMetaCollectionV &inputCollection)
std::auto_ptr
< CaloRecHitMetaCollectionV
select (const GlobalPoint &p, const CaloRecHitMetaCollectionV &inputCollection)

Private Attributes

double deltaR_
DetId::Detector detector_
const CaloGeometrygeom_
int subdet_

Detailed Description

Date:
2006/08/29 12:49:10
Revision:
1.1
Author:
J. Mans - Minnesota

Definition at line 14 of file CaloConeSelector.h.


Constructor & Destructor Documentation

CaloConeSelector::CaloConeSelector ( double  dR,
const CaloGeometry geom 
)

Definition at line 5 of file CaloConeSelector.cc.

                                                                      :
  geom_(geom),deltaR_(dR),detector_(DetId::Detector(0)),subdet_(0) {
}
CaloConeSelector::CaloConeSelector ( double  dR,
const CaloGeometry geom,
DetId::Detector  detector,
int  subdet = 0 
)

Definition at line 9 of file CaloConeSelector.cc.

                                                                                                          : 
  geom_(geom),deltaR_(dR),detector_(detector),subdet_(subdet) {
}

Member Function Documentation

std::auto_ptr< CaloRecHitMetaCollectionV > CaloConeSelector::select ( double  eta,
double  phi,
const CaloRecHitMetaCollectionV inputCollection 
)

Definition at line 13 of file CaloConeSelector.cc.

References AlCaHLTBitMon_ParallelJobs::p.

                                                                                                                                        {
  GlobalPoint p(GlobalPoint::Cylindrical(1,phi,tanh(eta)));
  return select(p,inputCollection);
}
std::auto_ptr< CaloRecHitMetaCollectionV > CaloConeSelector::select ( const GlobalPoint p,
const CaloRecHitMetaCollectionV inputCollection 
)

Definition at line 18 of file CaloConeSelector.cc.

References CaloRecHitMetaCollectionFast::add(), trackerHits::c, deltaR_, detector_, CaloRecHitMetaCollectionV::end(), CaloRecHitMetaCollectionV::find(), geom_, CaloSubdetectorGeometry::getCells(), CaloGeometry::getSubdetectorGeometry(), i, j, and subdet_.

                                                                                                                                      {
  CaloRecHitMetaCollectionFast* c=new CaloRecHitMetaCollectionFast();

  // TODO: handle default setting of detector_ (loops over subdet)
  // TODO: heuristics of when it is better to loop over inputCollection instead (small # hits)
  for (int subdet=subdet_; subdet<=7 && (subdet_==0 || subdet_==subdet); subdet++) {
    const CaloSubdetectorGeometry* sdg=geom_->getSubdetectorGeometry(detector_,subdet);
    if (sdg!=0) {
      // get the list of detids within range (from geometry)
      CaloSubdetectorGeometry::DetIdSet dis=sdg->getCells(p,deltaR_);
      // loop over detids...
      CaloRecHitMetaCollectionV::const_iterator j,je=inputCollection.end();      

      for (CaloSubdetectorGeometry::DetIdSet::iterator i=dis.begin(); i!=dis.end(); i++) {
        if (i->subdetId()!=subdet) continue; // possible for HCAL where the same geometry object handles all the detectors
        j=inputCollection.find(*i);
        if (j!=je) c->add(&(*j));
      }
    }    
  }

  return std::auto_ptr<CaloRecHitMetaCollectionV>(c);
}

Member Data Documentation

double CaloConeSelector::deltaR_ [private]

Definition at line 23 of file CaloConeSelector.h.

Referenced by select().

Definition at line 24 of file CaloConeSelector.h.

Referenced by select().

Definition at line 22 of file CaloConeSelector.h.

Referenced by select().

Definition at line 25 of file CaloConeSelector.h.

Referenced by select().