def METHOD_NAME(process, leptonCollection, particleName, newpostfix='PFIso', postfix='', runPF2PAT = False):
    '''Generic function to setup particle-based isolation for a given lepton collection.
    Returns the isolation sequence.
    You are responsible for adding it to your path.
    leptonCollection could e.g. be "gsfElectrons" or "muons"
    particleName must be either "Electron" or "Muon".
    newpostfix can be specified to define several particle-flow isolation sequences
    '''
    lepshort = None
    if particleName=='Electron':
        lepshort='el'
    elif particleName=='Muon':
        lepshort='mu'
    else:
        raise ValueError('particleName should be equal to "Electron" or "Muon"')
    if runPF2PAT != True : 
      _loadPFBRECO(process)
    # ADD VETOES IN ENDCAPS!
    fullpostfix = postfix+newpostfix
    ga = _getattrGenerator( process, postfix )
    ganew = _getattrGenerator( process, fullpostfix )
    leptonSeq = cms.Sequence(
        ga('pf{lepton}IsolationSequence'.format(lepton=particleName))  
        )
    setattr( process, 'std{lepton}Sequence{postfix}'.format(lepton=particleName,
                                                   postfix=postfix), leptonSeq)
    leptonSource = leptonCollection
    cloneProcessingSnippet(process,
                           ga('std{lepton}Sequence'.format(lepton=particleName)),
                           newpostfix)
    ganew("{lepshort}PFIsoDepositCharged".format(lepshort=lepshort) ).src = leptonSource
    ganew("{lepshort}PFIsoDepositChargedAll".format(lepshort=lepshort)).src = leptonSource
    ganew("{lepshort}PFIsoDepositNeutral".format(lepshort=lepshort)).src = leptonSource
    ganew("{lepshort}PFIsoDepositGamma".format(lepshort=lepshort)).src = leptonSource
    ganew("{lepshort}PFIsoDepositPU".format(lepshort=lepshort)).src = leptonSource
    return ganew('std{lepton}Sequence'.format(lepton=particleName))