public final void parse(String options){
        this.reset();
        selectorFormat = options.replaceAll("\\s+", "");
        String trimmed;
        if(selectorFormat.charAt(1)==this.bracketsOpen&&
                selectorFormat.charAt(selectorFormat.length()-1)==this.bracketsClose){
            if(selectorFormat.charAt(0)=='-'){
                this.particleSign = -1;                
            } else {this.particleSign = 1;}
            trimmed = selectorFormat.substring(2, selectorFormat.length()-1);
        } else if(selectorFormat.charAt(0)==this.bracketsOpen&&
                selectorFormat.charAt(selectorFormat.length()-1)==this.bracketsClose){
            trimmed = selectorFormat.substring(1, selectorFormat.length()-1);
            this.particleSign = 1;
        } else {
            System.err.println("[ParticleSelector] ---> Syntax error. in string ("
            +this.selectorFormat + ").");
            return;
        }
        
        //trimmed = selectorFormat.substring(2, selectorFormat.length()-1);
        //System.err.println("[DEBUG]--> trimmed string = (" + trimmed + ")");
        String[] tokens = trimmed.split(",");
        if(tokens.length>0){
            this.parseParticleID(tokens[0]);
            this.overrideParticleID = this.particleID;
        }
        
        if(tokens.length>1){
            particleSkip = Integer.parseInt(tokens[1]);
        } else {
            particleSkip = 0;
        }
        
        if(tokens.length>2){
            overrideParticleID = Integer.parseInt(tokens[2]);
            this.overridePid   = true;
        }
        
    }