def monitorAll(self, tqStateApi):
        """
        _monitorAll_

        monitor all sites  
        """ 
        self.logger.debug('monitorAll')
        try:
            poller = PABossLitePoll()
            totalSubmittedPilots = poller.pilotJobs
            siteValues = tqStateApi.getPilotCountsBySite()  
            taskPacks = tqStateApi.countTasksBySeReq()
            #sort taskPacks collection 
            taskPacks.sort(cmpf)

            self.logger.debug('siteValues %s' % siteValues)
            self.logger.debug('taskPacks  %s' % taskPacks)
 

            result={}   
            #self.logger.debug(self.siteThresholds) 
            for siteSE in self.siteThresholds.keys():
                #do nothing for fake=TASK_QUEUE 
                if ( siteSE=='fake' ): 
                    continue
 
                siteThr = self.siteThresholds[siteSE]

                self.logger.debug('siteSE: %s' % siteSE)
                self.logger.debug('siteThr: %s' % siteThr)

                if ( siteValues.has_key(siteSE) ):
                    siteValue = siteValues[siteSE]
                elif ( siteValues.has_key(siteSE) == False ):
                    siteValue = { 'ActivePilots':0, 'IdlePilots':0}

                result[siteSE] = runAlgorithm2 ( totalSubmittedPilots, siteSE, \
                                       siteThr, siteValue, taskPacks )
 
            return result

        except:           
            self.logger.debug(sys.exc_info()[0])
            self.logger.debug(sys.exc_info()[1])
            return {'Error':'ERROR'} 
    def __call__(self, site, tqStateApi):
        """ 
        __monitorPilot__ 

        This fnction will submit pilot jobs using
        the selected mechanism  
        """
        try:
            poller = PABossLitePoll()

            siteValues = tqStateApi.getPilotCountsBySite()
            taskPacks  = tqStateApi.countTasksBySeReq()
            
            self.logger.debug('siteValues %s' % siteValues)
            self.logger.debug('taskPacks  %s' % taskPacks)
            self.logger.debug('__call__: %s' % site)
            self.logger.debug("has_key:%s" % siteValues.has_key(site) )
     
            if ( siteValues.has_key(site) ):
                self.logger.debug('got site %s' % site) 
                siteValue = siteValues[site]
            elif ( not siteValues.has_key(site) ):
                self.logger.debug('could not fin site/ so 0 values: %s' % site)
                siteValue = {'ActivePilots':0, 'IdlePilots':0}

            siteThr = self.siteThresholds[site]
            
            poller(site)
            totalSubmittedPilots = poller.pilotJobs
            result={}
            #result[site] = runAlgorithm(totalSubmittedPilots, siteThr)
            result[site] = runAlgorithm2(totalSubmittedPilots, site, siteThr, siteValue, taskPacks)
            self.logger.debug( result )
            self.logger.info("PJ RequiredJobs: %s" % result[site]['available'])

            return result 
        except:
            self.logger.debug( sys.exc_info()[0] )
            self.logger.debug( sys.exc_info()[1] )
            return {'Error':'ERROR'}