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.1.1.1 2005/04/07 20:24:28 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_phi = phi;
00023   m_cluster = &cluster;
00024   
00025   int sensor = m_cluster->sensor();
00026   double sum   = 0.;
00027   double sum2  = 0.;
00028   double sums  = 0.;
00029 
00030   std::vector< std::pair<long,double> > sign = m_cluster->stripSignals();
00031   std::vector< std::pair<long,double> >::const_iterator strIt;
00032   VeloChannelID channelOne(sensor,(*sign.begin()).first);
00033   double radius = det.rOfStrip( channelOne );
00034   double pitch =   det.rPitch( channelOne );
00035 
00036   for ( strIt = sign.begin() ; sign.end() != strIt ; strIt++ ) {
00037     VeloChannelID channel(sensor,(*strIt).first);
00038     radius= det.rOfStrip( channel );
00039     sum   += (*strIt).second;
00040     sum2  += pow((*strIt).second,2) ;
00041     sums  += (*strIt).second * radius ;
00042   }
00043   if ( 0 < sum ) {
00044     m_measure = sums / sum;
00045     // MM+
00046     // m_measure    = ( pitch / sum ) * sqrt( sum2 / 12 );
00047     m_errMeasure    = 0.8 * ( pitch / sum ) * sqrt( sum2 / 12 );
00048     // m_errMeasure = 0.254*pitch - 0.0049*mm;
00049     // MM-
00050   }
00051 
00052   m_z = det.zSensor( m_cluster->sensor() );
00053 
00054 }
00055 //=============================================================================

Generated on Thu Apr 7 22:43:27 2005 for New Track Event Model by doxygen 1.4.1