Problems clicking a 3d object

Hi.
I am having some problems trying to click an actor.
What I did was using the code of panda hello world, adding a sphere to the panda and a collision ray to the camera.

The problem is that, if I use a small sphere, it doesn’t detect the sphere at all, if I use a big sphere, it detects the collision whenever I click (even outside the sphere).

Here is the code of the collision objects:

		self.traverser = CollisionTraverser('traverser name')
		self.pickerNode = CollisionNode('mouseRay')
		self.pickerNP = camera.attachNewNode(self.pickerNode)
		self.pickerNode.setIntoCollideMask(0)
		self.pickerNode.setFromCollideMask(1)
		self.pickerRay = CollisionRay()
		self.pickerNode.addSolid(self.pickerRay)
		self.myHandler = CollisionHandlerQueue()
		
		pandaSphere = CollisionSphere(self.pandaActor.getX(), self.pandaActor.getY(), self.pandaActor.getZ()+250, 300)
		pandaCol = CollisionNode('panda sphere')
		pandaCol.setIntoCollideMask(1)
		pandaCol.setFromCollideMask(BitMask32.bit(0))
		pandaCol.addSolid(pandaSphere)
		pandaCol.setTag('myObjectTag', '3')
		pandaColNp = self.pandaActor.attachNewNode(pandaCol)
		pandaColNp.show()
		pandaColNp.setTag('myObjectTag', '2')
		self.pandaHandler = CollisionHandlerQueue()

		
		self.traverser.addCollider(self.pickerNP, self.myHandler)
		self.traverser.addCollider(pandaColNp, self.pandaHandler)
		self.traverser.showCollisions(render)
		self.accept('mouse1',self.myFunction)

And here is the code of the mouse click function:

	def myFunction(self):
		print("called.")
		mpos = base.mouseWatcherNode.getMouse()
		self.pickerRay.setFromLens(base.camNode, mpos.getX(), mpos.getY())
	 
		self.traverser.traverse(render)
		# Assume for simplicity's sake that myHandler is a CollisionHandlerQueue.
		if self.myHandler.getNumEntries() > 0:
			print("Clicked on something.")
			# This is so we get the closest object.
			self.myHandler.sortEntries()
			pickedObj = self.myHandler.getEntry(0).getIntoNodePath()
			pickedObj = pickedObj.findNetTag('myObjectTag')
			if not pickedObj.isEmpty():
				print("Cool, we found something.")
			for i in range(self.myHandler.getNumEntries()):
				entry = self.myHandler.getEntry(i)
				print entry
	

Any help is very apreciated.

Thanks in advance.