Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members

VeloRMeasurement.cpp

Go to the documentation of this file.
00001 // $Id: VeloRMeasurement.cpp,v 1.3 2005/06/15 15:24:10 erodrigu Exp $
00002 // Include files
00003 
00004 // local
00005 #include "Event/VeloRMeasurement.h"
00006 
00007 //-----------------------------------------------------------------------------
00008 // Implementation file for class : VeloRMeasurement
00009 //
00010 // 2005-04-07 : Jose Hernando, Eduardo Rodrigues
00011 // Author: Rutger van der Eijk
00012 // Created: 27-06-2000
00013 //-----------------------------------------------------------------------------
00014 
00015 //=============================================================================
00016 // Standard constructor, initializes variables
00017 //=============================================================================
00018 VeloRMeasurement::VeloRMeasurement( VeloCluster& cluster,
00019                                     DeVelo& det,
00020                                     double phi )
00021 {
00022   m_mtype = Measurement::VeloR;
00023   
00024   m_phi = phi;
00025   m_cluster = &cluster;
00026   
00027   int sensor = m_cluster->sensor();
00028   double sum   = 0.;
00029   double sum2  = 0.;
00030   double sums  = 0.;
00031 
00032   std::vector< std::pair<long,double> > sign = m_cluster->stripSignals();
00033   std::vector< std::pair<long,double> >::const_iterator strIt;
00034   VeloChannelID channelOne(sensor,(*sign.begin()).first);
00035   double radius = det.rOfStrip( channelOne );
00036   double pitch =   det.rPitch( channelOne );
00037 
00038   for ( strIt = sign.begin() ; sign.end() != strIt ; strIt++ ) {
00039     VeloChannelID channel(sensor,(*strIt).first);
00040     radius= det.rOfStrip( channel );
00041     sum   += (*strIt).second;
00042     sum2  += pow((*strIt).second,2) ;
00043     sums  += (*strIt).second * radius ;
00044   }
00045   if ( 0 < sum ) {
00046     m_measure = sums / sum;
00047     // MM+
00048     // m_measure    = ( pitch / sum ) * sqrt( sum2 / 12 );
00049     m_errMeasure    = 0.8 * ( pitch / sum ) * sqrt( sum2 / 12 );
00050     // m_errMeasure = 0.254*pitch - 0.0049*mm;
00051     // MM-
00052   }
00053 
00054   m_z = det.zSensor( m_cluster->sensor() );
00055 
00056   // set the LHCbID
00057   setLhcbID ( LHCbID( channelOne ) );
00058 }
00059 //=============================================================================

Generated on Mon Jul 4 13:54:31 2005 for New Track Event Model by doxygen 1.4.1