Skip to content
Snippets Groups Projects
SiliconTracking.cpp~ 111 KiB
Newer Older
    
  }
  
  
  
  //-- FTD Parameters--
  _petalBasedFTDWithOverlaps = false;  
  _nlayersFTD = 0;
  
  try{
    
    debug() << " filling FTD parameters from gear::FTDParameters " << endmsg ;
    
    const gear::FTDParameters&   pFTD      = gearMgr->getFTDParameters();
    const gear::FTDLayerLayout&  ftdlayers = pFTD.getFTDLayerLayout() ;
    
    _nlayersFTD = ftdlayers.getNLayers() ;
    
    for (unsigned int disk=0; disk < _nlayersFTD; ++disk) {
      
      _zLayerFTD.push_back( ftdlayers.getSensitiveZposition(disk, 0, 1) ); // front petal even numbered
      
      if ( ftdlayers.getNPetals(disk) > 0) {
        _zLayerFTD.push_back( ftdlayers.getSensitiveZposition(disk, 1, 1) );  // front petal odd numbered
        _petalBasedFTDWithOverlaps = true;
      }
      
    }
    
    // SJA: Here we increase the size of _nlayersFTD as we are treating the 
    _nlayersFTD =_zLayerFTD.size() ;     
    
  }
  catch( gear::UnknownParameterException& e){
    
    debug() << " ### gear::FTDParameters Not Present in GEAR FILE" << endmsg ;
    
  } 
  
  if( _nlayersFTD == 0 ){
    
    // FTD
    try{
      
      info() << "  SiliconTracking - Simple Disc Based FTD using parameters defined by SFtd05 Mokka driver " << endmsg ;
      
      const gear::GearParameters& pFTD = gearMgr->getGearParameters("FTD");
      
      const std::vector<double>* pFTD_z   = NULL;
      
      info() << " For FTD using parameters defined by SFtd05 Mokka driver " << endmsg ;
      
      pFTD_z = &pFTD.getDoubleVals("FTDZCoordinate" )  ;
      
      _nlayersFTD = pFTD_z->size();
      
      for (unsigned int i = 0; i<_nlayersFTD; ++i) {
        _zLayerFTD.push_back((*pFTD_z)[i]);
      }
    }
    catch( gear::UnknownParameterException& e){
      
      debug() << " ### gear::FTD Parameters as defined in SFtd05 Not Present in GEAR FILE" << endmsg ;
      
    } 
  }
  return StatusCode::SUCCESS;
}

void SiliconTracking::TracksWithNHitsContainer::clear()
{
  for (std::vector< TrackExtendedVec >::iterator trackVecIter = _tracksNHits.begin();
       trackVecIter < _tracksNHits.end(); trackVecIter++)
  {
    for (TrackExtendedVec::iterator trackIter = trackVecIter->begin();
         trackIter < trackVecIter->end(); trackIter++)
    {
      delete *trackIter;
    }
    
    trackVecIter->clear();
  }
}