CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions
GlobalTrajectoryBuilderBase::ComparatorInOut Struct Reference

#include <GlobalTrajectoryBuilderBase.h>

Public Member Functions

bool operator() (const TransientTrackingRecHit::ConstRecHitPointer &a, const TransientTrackingRecHit::ConstRecHitPointer &b) const
 

Detailed Description

Definition at line 140 of file GlobalTrajectoryBuilderBase.h.

Member Function Documentation

bool GlobalTrajectoryBuilderBase::ComparatorInOut::operator() ( const TransientTrackingRecHit::ConstRecHitPointer a,
const TransientTrackingRecHit::ConstRecHitPointer b 
) const
inline

Definition at line 142 of file GlobalTrajectoryBuilderBase.h.

References GeomDetEnumerators::DT, and GeomDetEnumerators::RPCBarrel.

143  {
144  bool barrel_a = ( a->det()->subDetector() == GeomDetEnumerators::DT ||
145  a->det()->subDetector() == GeomDetEnumerators::RPCBarrel );
146 
147  bool barrel_b = ( b->det()->subDetector() == GeomDetEnumerators::DT ||
148  b->det()->subDetector() == GeomDetEnumerators::RPCBarrel );
149 
150  if ( barrel_a && barrel_b ) return a->det()->surface().position().perp() < b->det()->surface().position().perp();
151 
152  else if ( !barrel_a && !barrel_b ) return fabs(a->globalPosition().z()) < fabs(b->globalPosition().z());
153  else if ( barrel_a && !barrel_b ) return true;
154  else if ( !barrel_a && barrel_b ) return false;
155  //shouldn;t really get here in any case (there's some sense to throw here )
156  return false;
157  }