CMS 3D CMS Logo

Public Member Functions | Private Attributes

ES_HitMatchingAlgorithm_window2012< T > Class Template Reference

#include <HitMatchingAlgorithm_window2012.h>

Inheritance diagram for ES_HitMatchingAlgorithm_window2012< T >:
edm::ESProducer edm::ESProxyFactoryProducer edm::eventsetup::DataProxyProvider

List of all members.

Public Member Functions

 ES_HitMatchingAlgorithm_window2012 (const edm::ParameterSet &p)
 Constructor.
boost::shared_ptr
< HitMatchingAlgorithm< T > > 
produce (const HitMatchingAlgorithmRecord &record)
 Implement the producer.
virtual ~ES_HitMatchingAlgorithm_window2012 ()
 Destructor.

Private Attributes

boost::shared_ptr
< HitMatchingAlgorithm< T > > 
_theAlgo
 Data members.
double mIPWidth
double mPtThreshold

Detailed Description

template<typename T>
class ES_HitMatchingAlgorithm_window2012< T >

********************** DECLARATION OF THE ALGORITHM TO THE FRAMEWORK **********************

Definition at line 200 of file HitMatchingAlgorithm_window2012.h.


Constructor & Destructor Documentation

Constructor.

Definition at line 210 of file HitMatchingAlgorithm_window2012.h.

References edm::ESProducer::setWhatProduced().

      : mPtThreshold( p.getParameter< double >("minPtThreshold") )
    //                                mIPWidth( p.getParameter<double>("ipWidth") ),
    {
      setWhatProduced( this );
    }
template<typename T >
virtual ES_HitMatchingAlgorithm_window2012< T >::~ES_HitMatchingAlgorithm_window2012 ( ) [inline, virtual]

Destructor.

Definition at line 218 of file HitMatchingAlgorithm_window2012.h.

{}

Member Function Documentation

template<typename T >
boost::shared_ptr< HitMatchingAlgorithm< T > > ES_HitMatchingAlgorithm_window2012< T >::produce ( const HitMatchingAlgorithmRecord record) [inline]

Implement the producer.

Get magnetic field

Calculate scaling factor based on B and Pt threshold

Definition at line 221 of file HitMatchingAlgorithm_window2012.h.

References ES_HitMatchingAlgorithm_window2012< T >::_theAlgo, edm::eventsetup::DependentRecordImplementation< RecordT, ListT >::getRecord(), and ES_HitMatchingAlgorithm_window2012< T >::mPtThreshold.

    { 
      edm::ESHandle< MagneticField > magnet;
      record.getRecord< IdealMagneticFieldRecord >().get(magnet);
      double mMagneticFieldStrength = magnet->inTesla(GlobalPoint(0,0,0)).z();

      //double mPtScalingFactor = 0.0015*mMagneticFieldStrength/mPtThreshold;
      //double mPtScalingFactor = (CLHEP::c_light * mMagneticFieldStrength) / (100.0 * 2.0e+9 * mPtThreshold);
      double mPtScalingFactor = (floor(mMagneticFieldStrength*10.0 + 0.5))/10.0*0.0015/mPtThreshold;

      edm::ESHandle< StackedTrackerGeometry > StackedTrackerGeomHandle;
      record.getRecord< StackedTrackerGeometryRecord >().get( StackedTrackerGeomHandle );
  
      HitMatchingAlgorithm< T >* HitMatchingAlgo =
        new HitMatchingAlgorithm_window2012< T >( &(*StackedTrackerGeomHandle),
                                                               mPtScalingFactor );

      _theAlgo = boost::shared_ptr< HitMatchingAlgorithm< T > >( HitMatchingAlgo );
      return _theAlgo;
    } 

Member Data Documentation

template<typename T >
boost::shared_ptr< HitMatchingAlgorithm< T > > ES_HitMatchingAlgorithm_window2012< T >::_theAlgo [private]
template<typename T >
double ES_HitMatchingAlgorithm_window2012< T >::mIPWidth [private]

Definition at line 206 of file HitMatchingAlgorithm_window2012.h.

template<typename T >
double ES_HitMatchingAlgorithm_window2012< T >::mPtThreshold [private]