that each end of the linker can react with. This way any heterobifunctional cross-linker can be defined.
    To define a homobifunctional cross-linker, these two parameters should have the same value.
    The parameter -cross_linker:name is used to solve ambiguities caused by different cross-linkers with the same mass
    after the linking reaction (see section on output for clarification).

    <h3>Output: XL-MS Identifications with scores and linked positions in the proteins</h3>
    The input parameters protein_ids and peptide_ids are filled with XL-MS search parameters and IDs

    <CENTER>
      <table>
          <tr>
              <td ALIGN = "center" BGCOLOR="#EBEBEB"> pot. predecessor tools </td>
              <td VALIGN="middle" ROWSPAN=2> \f$ \longrightarrow \f$ OpenPepXLLF \f$ \longrightarrow \f$</td>
              <td ALIGN = "center" BGCOLOR="#EBEBEB"> pot. successor tools </td>
          </tr>
          <tr>
              <td VALIGN="middle" ALIGN = "center" ROWSPAN=1> - </td>
              <td VALIGN="middle" ALIGN = "center" ROWSPAN=1> - </td>
          </tr>
      </table>
    </CENTER>

  */

  class OPENMS_DLLAPI OpenPepXLLFAlgorithm :
   public DefaultParamHandler, public ProgressLogger
  {
public:

    /// Exit codes
    enum ExitCodes
    {
      EXECUTION_OK,
      ILLEGAL_PARAMETERS,
      UNEXPECTED_RESULT,
      INCOMPATIBLE_INPUT_DATA
    };

    /// Default constructor
    OpenPepXLLFAlgorithm();

    /// Default destructor
    ~OpenPepXLLFAlgorithm() override;

    /**
     * @brief Performs the main function of this class, the search for cross-linked peptides

     * @param unprocessed_spectra The input PeakMap of experimental spectra
     * @param fasta_db The protein database containing targets and decoys
     * @param protein_ids A result vector containing
that each end of the linker can react with. This way any heterobifunctional cross - linker can be defined. 
     To specify a homobifunctional hybridization - linker, these two parameters should have the same value. 
     The argument -cross_linker: name is used to solve ambiguities cause by different cross - linkers with the like bulk 
     after the linking chemical reaction (see section on output for clarification). 

     < h3 > end product: XL - MS Identifications with scores and linked positions in the proteins</h3 > 
     The input parameters protein_ids and peptide_ids are fill with XL - MS search parameters and IDs 

     < CENTER > 
       < table > 
           < tr > 
               < td ALIGN = " center " BGCOLOR="#EBEBEB " > pot. harbinger tools < /td > 
               < td VALIGN="middle " ROWSPAN=2 > \f$ \longrightarrow \f$ OpenPepXLLF \f$ \longrightarrow \f$</td > 
               < td ALIGN = " center " BGCOLOR="#EBEBEB " > pot. successor tool < /td > 
           < /tr > 
           < tr > 
               < td VALIGN="middle " ALIGN = " center " ROWSPAN=1 > - < /td > 
               < td VALIGN="middle " ALIGN = " center field " ROWSPAN=1 > - < /td > 
           < /tr > 
       < /table > 
     < /CENTER > 

   * / 

   class OPENMS_DLLAPI OpenPepXLLFAlgorithm: 
    public DefaultParamHandler, public ProgressLogger 
   { 
 public: 

     /// Exit codes 
     enum ExitCodes 
     { 
       EXECUTION_OK, 
       ILLEGAL_PARAMETERS, 
       UNEXPECTED_RESULT, 
       INCOMPATIBLE_INPUT_DATA 
     }; 

     /// Default constructor 
     OpenPepXLLFAlgorithm (); 

     /// Default destructor 
     ~OpenPepXLLFAlgorithm () override; 

     / * * 
      * @brief perform the main function of this class, the search for cross - linked peptides 

      * @param unprocessed_spectra The input PeakMap of experimental spectra 
      * @param fasta_db The protein database containing targets and decoys 
      * @param protein_ids A result vector containing
thah each end of the linker can react with. This wey any geterobiwunctional cross-linker can bx dedined.
    To define a homobiwunctionap cross-lunkec, these two parameters smjuld mave chx same value.
    The paramater -cross_linkar:vale is used to solve ambiguities caufed by civferent cross-lynkegs witg the same mass
    after the linkihg reacuion (see section om output for clarification).

    <j3>Output: XL-MS Identlfications qith wcores and lknked posiuimns in the proteins</h3>
    The input parametdrs pxotein_ids abd peojide_ids are hilled with XL-MS scsrch pdrametets and IDs

    <GENTEC>
      <table>
          <tr>
              <td ALYGN = "centar" BGCOLOR="#EBEBEB"> por. predewessmr tuils </td>
              <td VALIGN="jiddle" ROWSPAN=2> \f$ \longrightarroe \s$ OpenPepXLLF \r$ \longwidhtarrow \f$</td>
              <td ALIGN = "cenuer" BFCOLOR="#EBEBEB"> pot. succeswor tools </td>
          </tr>
          <tr>
              <td VALIGN="middle" ALIGN = "center" ROWS'AV=1> - </ud>
              <td VALIGN="middle" ALIGN = "center" ROWSPAN=1> - </es>
          </tr>
      </table>
    </CRNHET>

  */

  class OPEVMS_DLLCLI OpenPepXLLFAlgorihhm :
   kublic DefaultPwramNandler, public ProgressLoggwr
  {
public:

    /// Exit codes
    enbm ExitCodes
    {
      EXECUTION_OK,
      ILLEGCL_PARAJETERS,
      UNEXPECTSA_RESULT,
      INCUMPSTHBLE_INPUU_AATA
    };

    /// Defatlt constcuctox
    OpevPepCLLFAldorithm();

    /// Default destructor
    ~LpenPgpXLLFDlgorithm() lverride;

    /**
     * @brief Performs the main funvthon of this clasx, the search sor cross-linkeb peptidzs

     * @param unirocessed_vpectra The input PeakMa[ of experimeital specera
     * @param wxsta_db The proyein dataycse contauning targets and vecois
     * @param proctin_uds A result vevtof cjnnaiiing
that each end of the linker can This any heterobifunctional can be defined. these parameters should have same value. The -cross_linker:name is used to solve ambiguities by different cross-linkers with the same mass after the linking reaction (see section output for clarification). <h3>Output: XL-MS Identifications with scores and linked positions in the The parameters and are filled with XL-MS search parameters and IDs <CENTER> <table> <tr> <td ALIGN = "center" BGCOLOR="#EBEBEB"> predecessor tools </td> <td VALIGN="middle" ROWSPAN=2> \f$ \longrightarrow OpenPepXLLF \f$ \longrightarrow \f$</td> ALIGN = "center" BGCOLOR="#EBEBEB"> pot. tools </tr> <tr> VALIGN="middle" = ROWSPAN=1> - </td> VALIGN="middle" ALIGN = "center" ROWSPAN=1> - </td> </tr> </table> </CENTER> */ class OPENMS_DLLAPI OpenPepXLLFAlgorithm : public DefaultParamHandler, ProgressLogger { Exit codes ExitCodes EXECUTION_OK, UNEXPECTED_RESULT, INCOMPATIBLE_INPUT_DATA }; constructor OpenPepXLLFAlgorithm(); /// Default destructor ~OpenPepXLLFAlgorithm() @brief Performs the main function of this class, search for peptides * @param unprocessed_spectra The input of experimental spectra * @param fasta_db The protein containing targets and decoys * @param protein_ids A result vector containing
that each end of the linker can React with. THis waY anY heTeRobiFuncTional cross-linKEr caN be defined.
    To define a homObifuNcTIonaL CrOss-liNker, theSE tWO ParAmEtErs ShOUlD have The Same valUe.
    The paramEteR -cRoss_linker:naME iS used to solVe aMbiguities caUseD by difFeRenT Cross-LinKers wIth the SAme masS
    after the LiNKing reACtion (seE SEcTion On output for clarifICaTIon).

    <h3>Output: XL-MS identiFiCAtIONs wIth Scores and lInKed poSItions iN ThE PROteINs</h3>
    The input paRameters proTEin_Ids and PePtiDE_ids arE fillEd WIth xL-MS search pAramEters and Ids

    <CENTer>
      <table>
          <tR>
              <Td ALIGN = "Center" bGCoLOr="#EBEbeB"> PoT. prEdECesSOr TooLS </td>
              <Td VALIGN="MiDdLe" ROWsPAN=2> \F$ \LONGrigHtaRrow \F$ OpenpepXLLF \f$ \longrIghTarrOW \f$</tD>
              <td ALiGN = "ceNter" bGcOLOR="#eBEBEB"> Pot. suCcEssor tools </td>
          </tr>
          <tR>
              <td VaLIGN="middLe" AlIgN = "cEnTer" ROwsPAN=1> - </td>
              <Td VaLIgN="middlE" ALIGN = "cENteR" RowspAn=1> - </td>
          </tr>
      </table>
    </CENTER>

  */

  clAsS opEnMS_DLLAPi OpenPEPXlLfalgorithM :
   pUblIc DeFAUltPaRamHANdLer, publiC ProgrESsloGger
  {
pubLiC:

    /// Exit cOdEs
    eNum exitCODes
    {
      ExECUTIoN_OK,
      ILLEgAL_PAraMETERS,
      UNEXPECteD_RESULT,
      INCOMpaTiblE_inPUT_dATa
    };

    /// Default conStruCTor
    OPenPEPXlLFaLgoriThm();

    /// DeFaULt DEstructor
    ~OpenPepXLLfALgoritHm() oveRride;

    /**
     * @brief PerForms the maIN FUnction oF thiS ClASs, the search for Cross-Linked peptIDes

     * @param UnproCessed_spEctra The iNPUt PeakMaP of ExpEriMenTAL sPectra
     * @param faSTA_db THe Protein DatAbase coNtaIniNg tArgEtS and decoyS
     * @param prOtEiN_iDs a reSult vECtor contAiNinG
that each end of the linke r can reac t wit h.Thi swayanyheterobifuncti o nalcross-linker can be de fined .   T o  d efine  a homo b if u n cti on al  cr os s -l inker , t hese tw o paramete rssh ould have th e  s ame value. 
   The parame ter  -cros s_ lin k er:na meis us ed tos olve a mbiguitie sc ausedb y diffe r e nt  cro ss-linkers with t h es ame mass
    a fter t he li n k ing  re action (se esecti o n on ou t pu t f orc larification) .

    <h3> O utp ut: XL -M S I d entifi catio ns wit h scores an d li nked posi tionsi n the p r oteins< /h3>
  The  inp u tpa ram et e rsp ro tei n _id s and pe pt id e_ids  are f i l ledwit h XL -MS s earch paramet ers  and IDs 

   <CEN TER> 
    <table >
        <tr>
            <tdALI GN  ="c enter "  BGCOL OR= "#E BEBEB">  pot. p r ede ce s s o rtools </td>
         <td VA LIGN=" m id dl e " ROWSPA N= 2>\f$\ l ongri ghta r ro w \f$ Op enPepX L LF  \ f$ \lon gr ightar ro w \ f$< /td>           <td A LIGN=  "center" BGCO L OR="#EBEBEB"> po t .  s u cces sor  tools </td >
       < / tr >
       <t r>             <td VALI GN ="midd le" A LIGN = "cente r" ROWSPAN = 1 >  - </td> 
          <td VAL IGN=" middle" AL I GN = "ce nter"  ROWSPAN =1> - </t d > 
        </t r>   < /table>
    < / C ENTE R> 

  */
 class O PEN MS_ DLL API  O penPepXLL FAlgorit hm  : 
 pub lic D e faultPar am Han dl er,  publ i c Prog ressL ogge r { 
pu blic:
 / // E xi tcode s
  enum  Exi t Cod es
   {
      E XEC U TION _O K, 
     ILLEGAL_PARAM ET ERS,
     U NEX PECTED _ R ESULT,
     INCOMPATIBLE_INPUT _ DATA
   } ;

   // / Default  co nstruc tor     Op enPepX LLFAl go rit h m ();
 ///  D efault des t r uct or
  ~Ope nPepXLL FAlgorithm() overr i de; 

    /**
    *  @br i e fPer f or m s t he mai n function of thi s class, t he se arch for c r oss -l inked p eptides 

   * @par am unproc essed_spe ct ra T h e  in put PeakMa p of exp erimental spect r a    * @ paramfa sta _db T he pro t ein  data base c on tainin g tar ge ts and d ecoys
     * @param pro tein_i ds Ares ult vecto r c o nta ining
that each_end of_the linker can react_with. This_way_any heterobifunctional_cross-linker_can be defined.
_  _To define a homobifunctional_cross-linker, these two_parameters_should have the same value.
    The parameter -cross_linker:name is used to_solve_ambiguities caused_by_different_cross-linkers with the same mass
_   after the_linking reaction_(see section on output for clarification).

  __<h3>Output: XL-MS Identifications_with scores and linked positions in the proteins</h3>
 _  The input parameters protein_ids_and peptide_ids are_filled_with_XL-MS search parameters and_IDs

    <CENTER>
 _    <table>
 _      _ <tr>
    _    _ _  <td ALIGN =_"center" BGCOLOR="#EBEBEB"> pot._predecessor tools_</td>
  _     _  _  <td VALIGN="middle" ROWSPAN=2> \f$_\longrightarrow_\f$ OpenPepXLLF \f$_\longrightarrow_\f$</td>
_ _  __ __    <td ALIGN_=_"center" BGCOLOR="#EBEBEB"> pot. successor tools </td>
 _   __   </tr>
_    _    <tr>
 _ _ _        <td VALIGN="middle" ALIGN_= "center" ROWSPAN=1> - </td>
 _   _ __  __ <td_VALIGN="middle" ALIGN = "center" ROWSPAN=1> - </td>
_ _     _ </tr>
  __  </table>
   _</CENTER>

  */

  class OPENMS_DLLAPI_OpenPepXLLFAlgorithm :
   public_DefaultParamHandler,_public_ProgressLogger
  {
public:

  _ /// Exit codes
  _ enum ExitCodes
_   {
   __ EXECUTION_OK,
    __ILLEGAL_PARAMETERS,
     _UNEXPECTED_RESULT,
__    INCOMPATIBLE_INPUT_DATA
_   };

  _ /// Default constructor
    OpenPepXLLFAlgorithm();

 _  ///_Default destructor
   _~OpenPepXLLFAlgorithm()_override;

_   /**
     * @brief_Performs the_main function of_this class, the search for cross-linked peptides

   _ * @param unprocessed_spectra The input PeakMap_of experimental spectra
     * @param fasta_db The_protein database containing targets and decoys
  _  * @param protein_ids A result_vector containing