00001 // -*- C++ -*- 00002 // 00003 // Package: TrackAssociator 00004 // Class: FiducialVolume 00005 // 00006 /* 00007 00008 Description: detector active volume 00009 00010 */ 00011 // 00012 // Original Author: Dmytro Kovalskyi 00013 // $Id: FiducialVolume.cc,v 1.2 2007/06/06 22:27:16 dmytro Exp $ 00014 // 00015 // 00016 #include "TrackingTools/TrackAssociator/interface/FiducialVolume.h" 00017 #include "FWCore/MessageLogger/interface/MessageLogger.h" 00018 #include "FWCore/Utilities/interface/Exception.h" 00019 00020 bool FiducialVolume::isValid() const 00021 { 00022 return minR_<1e4 && maxR_ >= minR_ && minZ_<1e4 && maxZ_ >= minZ_; 00023 } 00024 00025 void FiducialVolume::addActivePoint( const GlobalPoint& point ) 00026 { 00027 if ( point.perp() > maxR_ ) maxR_ = point.perp(); 00028 if ( fabs(point.eta()) < 1 && point.perp() < minR_) minR_ = point.perp(); 00029 if ( fabs(point.z()) > maxZ_ ) maxZ_ = fabs(point.z()); 00030 if ( fabs(point.eta()) > 1.7 && fabs(point.z()) < minZ_) minZ_ = fabs(point.z()); 00031 } 00032 00033 void FiducialVolume::reset() 00034 { 00035 minR_ = 1e5; 00036 maxR_ = -1; 00037 minZ_ = 1e5; 00038 maxZ_ = -1; 00039 } 00040 00041 void FiducialVolume::determinInnerDimensions() 00042 { 00043 if ( maxR_ > 0 && maxR_ < minR_ ) minR_ = maxR_; 00044 if ( maxZ_ > 0 && maxZ_ < minZ_ ) minZ_ = maxZ_; 00045 }