CMS 3D CMS Logo

Public Member Functions | Private Attributes

ES_TrackingAlgorithm_PROVA< T > Class Template Reference

#include <TrackingAlgorithm_PROVA.h>

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

List of all members.

Public Member Functions

 ES_TrackingAlgorithm_PROVA (const edm::ParameterSet &p)
 Constructor.
boost::shared_ptr
< TrackingAlgorithm< T > > 
produce (const TrackingAlgorithmRecord &record)
 Implement the producer.
virtual ~ES_TrackingAlgorithm_PROVA ()
 Destructor.

Private Attributes

boost::shared_ptr
< TrackingAlgorithm< T > > 
_theAlgo
 Data members.

Detailed Description

template<typename T>
class ES_TrackingAlgorithm_PROVA< T >

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

Definition at line 262 of file TrackingAlgorithm_PROVA.h.


Constructor & Destructor Documentation

template<typename T >
ES_TrackingAlgorithm_PROVA< T >::ES_TrackingAlgorithm_PROVA ( const edm::ParameterSet p) [inline]

Constructor.

Definition at line 270 of file TrackingAlgorithm_PROVA.h.

References edm::ESProducer::setWhatProduced().

    {
      setWhatProduced( this );
    }
template<typename T >
virtual ES_TrackingAlgorithm_PROVA< T >::~ES_TrackingAlgorithm_PROVA ( ) [inline, virtual]

Destructor.

Definition at line 278 of file TrackingAlgorithm_PROVA.h.

{}

Member Function Documentation

template<typename T >
boost::shared_ptr< TrackingAlgorithm< T > > ES_TrackingAlgorithm_PROVA< T >::produce ( const TrackingAlgorithmRecord record) [inline]

Implement the producer.

Get magnetic field

Calculate scaling factor based on B and Pt threshold

Definition at line 281 of file TrackingAlgorithm_PROVA.h.

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

    {
      edm::ESHandle< MagneticField > magnet;
      record.getRecord< IdealMagneticFieldRecord >().get(magnet);
      double mMagneticFieldStrength = magnet->inTesla(GlobalPoint(0,0,0)).z();
      double mMagneticFieldRounded = (floor(mMagneticFieldStrength*10.0 + 0.5))/10.0;

      //double mPtScalingFactor = 0.0015*mMagneticFieldStrength/mPtThreshold;
      //double mPtScalingFactor = (KGMS_C * 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 );

      TrackingAlgorithm< T >* TrackingAlgo =
        new TrackingAlgorithm_PROVA< T >( &(*StackedTrackerGeomHandle),
                                                       mMagneticFieldRounded );

      _theAlgo = boost::shared_ptr< TrackingAlgorithm< T > >( TrackingAlgo );
      return _theAlgo;
    }

Member Data Documentation

template<typename T >
boost::shared_ptr< TrackingAlgorithm< T > > ES_TrackingAlgorithm_PROVA< T >::_theAlgo [private]

Data members.

Definition at line 266 of file TrackingAlgorithm_PROVA.h.

Referenced by ES_TrackingAlgorithm_PROVA< T >::produce().