User Tools

Site Tools


davinci:removetthits

This is an old revision of the document!


Table of Contents

Removing TT Hits

Idea

Removing TT hits from long tracks can be a good check to see effects which are caused by the TT.

How to

Add the following two source files f.ex. to Tr/TrackTools.

// Gaudi
#include "GaudiKernel/AlgFactory.h"
 
#include <boost/foreach.hpp>
 
// track interfaces
#include "Kernel/ISTChannelIDSelector.h"
#include "Event/Track.h"
 
#include "Kernel/LHCbID.h"
#include "TrackRemoveSTIDs.h"
 
using namespace LHCb;
 
DECLARE_ALGORITHM_FACTORY( TrackRemoveSTIDs );
 
TrackRemoveSTIDs::TrackRemoveSTIDs(const std::string& name,
                       ISvcLocator* pSvcLocator):
  GaudiAlgorithm(name, pSvcLocator)
{
  // constructor
 this->declareProperty("selectorType", m_selectorType = "STSelectChannelIDByElement");
 this->declareProperty("inputLocation", m_inputLocation = TrackLocation::Default);
}
 
TrackRemoveSTIDs::~TrackRemoveSTIDs()
{
  // destructor
}
 
StatusCode TrackRemoveSTIDs::initialize()
{
  // Initializes TsaInitialization at the begin of program execution.
 
  StatusCode sc = GaudiAlgorithm::initialize();
  if (sc.isFailure()){
     return Error("Failed to initialize");
  }
 
  // da selector
  m_selector = tool<ISTChannelIDSelector>(m_selectorType, "RemovalSelector");
 
  return StatusCode::SUCCESS;
}
 
StatusCode TrackRemoveSTIDs::execute(){
 
  Tracks* trackCont = get<Tracks>(m_inputLocation);
  // loop and remove the hits
  for (Tracks::const_iterator iterT = trackCont->begin(); iterT != trackCont->end(); ++iterT){
    if ((*iterT)->type() == Track::Long) removeHits(*iterT);
  } // iterT
 
  return StatusCode::SUCCESS;
};
 
void TrackRemoveSTIDs::removeHits(Track* aTrack) const{
 
  // get the list of ones to remove....
  std::vector<LHCb::LHCbID> tmpCont;
  const std::vector<LHCb::LHCbID>& ids = aTrack->lhcbIDs();
  BOOST_FOREACH(LHCb::LHCbID id, ids) { 
    if (m_selector->select(id.stID()) == true) tmpCont.push_back(id);
  }
 
  BOOST_FOREACH(LHCb::LHCbID dead, tmpCont){ 
    aTrack->removeFromLhcbIDs(dead);
  }
}
davinci/removetthits.1297329799.txt.gz · Last modified: 2011/02/10 10:23 by decianm