CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_7/src/TrackingTools/TrackAssociator/src/FiducialVolume.cc

Go to the documentation of this file.
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 }