<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def add_post_processing(effect, **options):
 """Apply a post processing effect. **Parameters** effect: string The effect to be applied, choose between ``ssao``, ``outline``, ``fxaa``, ``gamma``. **options: Options used to initialize the effect, check the :doc:`chemlab.graphics.postprocessing` for a complete reference of all the options. **Returns** A string identifier that can be used to reference the applied effect. """


    from chemlab.graphics.postprocessing import SSAOEffect, OutlineEffect, FXAAEffect, GammaCorrectionEffect
    
    pp_map = {'ssao': SSAOEffect,
              'outline': OutlineEffect,
              'fxaa': FXAAEffect,
              'gamma': GammaCorrectionEffect}
    
    pp = viewer.add_post_processing(pp_map[effect], **options)    
    viewer.update()


    global _counter
    _counter += 1
    
    str_id = effect + str(_counter)    
    _effect_map[str_id] = pp # saving it for removal for later...
    
    return str_id