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

ClusterLHCbIDCnv.cpp

Go to the documentation of this file.
00001 // $Id: ClusterLHCbIDCnv.cpp,v 1.1.1.1 2005/04/01 16:18:50 erodrigu Exp $
00002 // Include files 
00003 
00004 // from Gaudi
00005 #include "GaudiKernel/ToolFactory.h" 
00006 
00007 // local
00008 #include "TrackTools/ClusterLHCbIDCnv.h"
00009 
00010 //-----------------------------------------------------------------------------
00011 // Implementation file for class : ClusterLHCbIDCnv
00012 //
00013 // 2005-03-31 : Eduardo Rodrigues
00014 //-----------------------------------------------------------------------------
00015 
00016 // Declaration of the Tool Factory
00017 static const  ToolFactory<ClusterLHCbIDCnv>          s_factory ;
00018 const        IToolFactory& ClusterLHCbIDCnvFactory = s_factory ; 
00019 
00020 //=============================================================================
00021 // Return the OTTime corresponding to an LHCbID
00022 //=============================================================================
00023 const OTTime& ClusterLHCbIDCnv::otTime( const LHCbID& id )
00024 {
00025   OTTime* dummy = NULL;
00026   if ( ! id.isOT() ) {
00027     error() << "LHCbID not of OT type!" << endreq;
00028     return *dummy;
00029   }
00030   
00031   OTChannelID otChID = id.otID();
00032   OTTimes* otTimes = get<OTTimes>( OTTimeLocation::Default );
00033   OTTimes::const_iterator itOTTime;
00034   for ( itOTTime=otTimes->begin() ; otTimes->end()!= itOTTime ; ++itOTTime ) {
00035     if ( otChID == (*itOTTime)->channel() ) {
00036       return *(*itOTTime);
00037     }
00038   }
00039 
00040   if ( NULL == (*itOTTime) )
00041     error() << "LHCbID " << id.lhcbID() << " is not valid!" << endreq;
00042 
00043   return *dummy;
00044 }
00045 
00046 //=============================================================================
00047 // Return the ITCluster corresponding to an LHCbID
00048 //=============================================================================
00049 const ITCluster& ClusterLHCbIDCnv::itCluster( const LHCbID& id )
00050 {
00051   ITCluster* dummy = NULL;
00052   if ( ! id.isST() ) {
00053     error() << "LHCbID not of ST type!" << endreq;
00054     return *dummy;    
00055   }
00056 
00057   ITChannelID itChID = id.stID();
00058   ITClusters* itClus = get<ITClusters>( ITClusterLocation::Default );
00059   ITClusters::const_iterator itITClu;
00060   for ( itITClu=itClus->begin() ; itClus->end()!= itITClu ; ++itITClu ) {
00061     if ( itChID == (*itITClu)->channelID() ) {
00062       return *(*itITClu);
00063     }
00064   }
00065 
00066   if ( NULL == (*itITClu) )
00067     error() << "LHCbID " << id.lhcbID() << " is not valid!" << endreq;
00068 
00069   return *dummy;
00070 }
00071 
00072 //=============================================================================
00073 // Return the VeloCluster corresponding to an LHCbID
00074 //=============================================================================
00075 const VeloCluster& ClusterLHCbIDCnv::veloCluster( const LHCbID& id )
00076 {
00077   VeloCluster* dummy = NULL;
00078   if ( ! id.isVelo() ) {
00079     error() << "LHCbID not of Velo type!" << endreq;
00080     return *dummy;
00081   }
00082 
00083   VeloChannelID veloChID = id.veloID();
00084   VeloClusters* veloClus = get<VeloClusters>( VeloClusterLocation::Default );
00085   VeloClusters::const_iterator itVeloClu;
00086   for ( itVeloClu=veloClus->begin() ; veloClus->end()!= itVeloClu ; ++itVeloClu ) {
00087     if ( veloChID.channelID() == (*itVeloClu)->channelID(0).channelID() ) {
00088       return *(*itVeloClu);
00089     }
00090   }  
00091 
00092   if ( NULL == (*itVeloClu) )
00093     error() << "LHCbID " << id.lhcbID() << " is not valid!" << endreq;
00094 
00095   return *dummy;
00096 }
00097 
00098 //=============================================================================
00099 // Return the LHCbID corresponding to a OTTime
00100 //=============================================================================
00101 LHCbID ClusterLHCbIDCnv::lhcbid( const OTTime& otTime )
00102 {
00103   return LHCbID( otTime.channel() );
00104 }
00105 
00106 //=============================================================================
00107 // Return the LHCbID corresponding to a ITCluster
00108 //=============================================================================
00109 LHCbID ClusterLHCbIDCnv::lhcbid( const ITCluster& itCluster )
00110 {
00111   return LHCbID( itCluster.channelID() );
00112 }
00113 
00114 //=============================================================================
00115 // Return the LHCbID corresponding to a VeloCluster
00116 //=============================================================================
00117 LHCbID ClusterLHCbIDCnv::lhcbid( const VeloCluster& veloCluster )
00118 {
00119   return LHCbID( veloCluster.channelID(0) );
00120 }
00121 
00122 //=============================================================================
00123 // Standard constructor, initializes variables
00124 //=============================================================================
00125 ClusterLHCbIDCnv::ClusterLHCbIDCnv( const std::string& type,
00126                                     const std::string& name,
00127                                     const IInterface* parent )
00128   : GaudiTool ( type, name , parent )
00129 {
00130   declareInterface<ClusterLHCbIDCnv>( this );
00131 
00132 }
00133 //=============================================================================
00134 // Destructor
00135 //=============================================================================
00136 ClusterLHCbIDCnv::~ClusterLHCbIDCnv() {}; 
00137 
00138 //=============================================================================

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