<?xml version="1.0" encoding="UTF-8"?>

<gating:Gating-ML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:gating="http://www.isac-net.org/std/Gating-ML/v2.0/gating"
  xmlns:transforms="http://www.isac-net.org/std/Gating-ML/v2.0/transformations"
  xmlns:data-type="http://www.isac-net.org/std/Gating-ML/v2.0/datatypes"
  xsi:schemaLocation="
        http://www.isac-net.org/std/Gating-ML/v2.0/gating ../XSD/Gating-ML.v2.0.xsd
        http://www.isac-net.org/std/Gating-ML/v2.0/transformations ../XSD/Transformations.v2.0.xsd
        http://www.isac-net.org/std/Gating-ML/v2.0/datatypes ../XSD/DataTypes.v2.0.xsd">
  <data-type:custom_info>
    This Gating-ML 2.0 file is part of Gating-ML examples - an informative part of Gating-ML 2.0 specification.
    <author>
      <name>Josef Spidlen</name>
      <email>jspidlen@bccrc.ca</email>
    </author>
    <copyright>
      Copyright (c) 2012 ISAC (International Society for Advancement of Cytometry). 
      Free of charge distribution and read-only usage permited. Modification
      and all other rights reserved. For all other uses please contact ISAC.
    </copyright>
  </data-type:custom_info>

  <!-- 
    Example of a custom element, these are allowed at the top level of Gating-ML description within the custom_info element.
  -->
  <data-type:custom_info custom_attributes="also allowed" test="1">
    Custom information is allowed at the top level of Gating-ML description within the custom_info element. 
    <subelements>Also allowed</subelements>
  </data-type:custom_info>

  <!-- 
    Example of a spillover matrix. 
    Spillover matrices do not have to be square and the coefficients are no longer restricted to the [0,1] range.
  -->
  <transforms:spectrumMatrix transforms:id="Spill1">
    <data-type:custom_info>Custom info may be part of a spillover matrix definiton.</data-type:custom_info>
    <transforms:fluorochromes>
      <data-type:fcs-dimension data-type:name="FL1"/>
      <data-type:fcs-dimension data-type:name="FL2"/>
    </transforms:fluorochromes>
    <transforms:detectors>
      <data-type:fcs-dimension data-type:name="FL1-A"/>
      <data-type:fcs-dimension data-type:name="FL2-A"/>
    </transforms:detectors>
    <transforms:spectrum>
      <transforms:coefficient transforms:value="1.00"/>
      <transforms:coefficient transforms:value="0.13"/>
    </transforms:spectrum>
    <transforms:spectrum>
      <transforms:coefficient transforms:value="2.00"/>
      <!-- Just to show that values greater than 1 are allowed -->
      <transforms:coefficient transforms:value="1.00"/>
    </transforms:spectrum>
  </transforms:spectrumMatrix>

  <transforms:spectrumMatrix transforms:id="NonSquareSpill">
    <transforms:fluorochromes>
      <data-type:fcs-dimension data-type:name="CD4-FITC"/>
      <data-type:fcs-dimension data-type:name="CD8-PE"/>
    </transforms:fluorochromes>
    <transforms:detectors>
      <data-type:fcs-dimension data-type:name="FL1-A"/>
      <data-type:fcs-dimension data-type:name="FL2-A"/>
      <data-type:fcs-dimension data-type:name="FL3-A"/>
    </transforms:detectors>
    <transforms:spectrum>
      <transforms:coefficient transforms:value="0.78" />
      <transforms:coefficient transforms:value="0.13" />
      <transforms:coefficient transforms:value="0.22" />
    </transforms:spectrum>
    <transforms:spectrum>
      <transforms:coefficient transforms:value="0.05" />
      <transforms:coefficient transforms:value="0.57" />
      <transforms:coefficient transforms:value="0.89" />
    </transforms:spectrum>
  </transforms:spectrumMatrix>
  

  <!-- 
      Example of a Logicle transformation defined within Gating-ML
    -->
  <transforms:transformation transforms:id="Logicle_1">
    <transforms:logicle transforms:T="10000" transforms:M="4.5" transforms:W="0.5" transforms:A="0" />
  </transforms:transformation>
  
  <transforms:transformation transforms:id="Ratio_1">
    <transforms:fratio  transforms:A="1" transforms:B="0" transforms:C="0" >
      <data-type:custom_info>Custom info may be part of any transformation definition.</data-type:custom_info>
      <data-type:fcs-dimension data-type:name="FL1-A" />
      <data-type:fcs-dimension data-type:name="FL1-H" />
    </transforms:fratio>
 </transforms:transformation>
  
  <!--
      Example of a polygon gate.
    -->
  <gating:PolygonGate gating:id="PgExample1">
    <data-type:custom_info>Custom info may be part of a gate definition.</data-type:custom_info>
    <gating:dimension gating:compensation-ref="uncompensated" gating:transformation-ref="Logicle_1" >
      <data-type:fcs-dimension data-type:name="FSC-H"/>
    </gating:dimension>
    <gating:dimension gating:compensation-ref="Spill1" gating:transformation-ref="Logicle_1" >
      <data-type:fcs-dimension data-type:name="FL1"/>
    </gating:dimension>
    <gating:vertex>
      <gating:coordinate data-type:value="100"/>
      <gating:coordinate data-type:value="100"/>
    </gating:vertex>
    <gating:vertex>
      <gating:coordinate data-type:value="200"/>
      <gating:coordinate data-type:value="100"/>
    </gating:vertex>
    <gating:vertex>
      <gating:coordinate data-type:value="150"/>
      <gating:coordinate data-type:value="150"/>
    </gating:vertex>
    <gating:vertex>
      <gating:coordinate data-type:value="200"/>
      <gating:coordinate data-type:value="200"/>
    </gating:vertex>
    <gating:vertex>
      <gating:coordinate data-type:value="100"/>
      <gating:coordinate data-type:value="200"/>
    </gating:vertex>
  </gating:PolygonGate>

  <!-- 
    Range gate on “ratio” of “FL1/(FL1+FL2)” with compensation from FCS
    -->
  <gating:RectangleGate gating:id="Range_Gate_1">
    <gating:dimension
      gating:min="10" gating:max="20" gating:compensation-ref="FCS">
      <data-type:new-dimension data-type:transformation-ref="Ratio_1" />
    </gating:dimension>
  </gating:RectangleGate>
  
  <gating:RectangleGate gating:id="myExampleRange1">
    <gating:dimension gating:min="100" gating:max="200" gating:compensation-ref="FCS">
      <data-type:fcs-dimension data-type:name="FSC-H"/>
    </gating:dimension>
  </gating:RectangleGate>
  
  <gating:RectangleGate gating:id="Range_FCS_o100">
    <gating:dimension gating:min="100" gating:compensation-ref="FCS">
      <data-type:fcs-dimension data-type:name="FSC-H"/>
    </gating:dimension>
  </gating:RectangleGate>
  
  <transforms:transformation transforms:id="myLogicle">
    <transforms:logicle transforms:T="10000" transforms:M="4.5" transforms:W="0.5" transforms:A="0" />
  </transforms:transformation>
  <gating:RectangleGate gating:id="myExampleRectangle" gating:parent_id="PgExample1">
    <gating:dimension gating:min="0.2" gating:max="0.5" gating:compensation-ref="FCS" gating:transformation-ref="myLogicle">
      <data-type:fcs-dimension data-type:name="FL1-H"/>
    </gating:dimension>
    <gating:dimension gating:min="0.25" gating:max="0.4" gating:compensation-ref="FCS" gating:transformation-ref="myLogicle">
      <data-type:fcs-dimension data-type:name="FL2-H"/>
    </gating:dimension>
  </gating:RectangleGate>
  
  <gating:RectangleGate gating:id="Rect3D">
    <data-type:custom_info>FSC-H is an unbound dimension</data-type:custom_info>
    <gating:dimension gating:min="100" gating:max="250" gating:compensation-ref="FCS">
      <data-type:fcs-dimension data-type:name="FSC-H"/>
    </gating:dimension>
    <gating:dimension gating:min="50" gating:compensation-ref="FCS">
      <data-type:fcs-dimension data-type:name="FSC-H"/>
    </gating:dimension>
    <gating:dimension gating:min="0" gating:max="300" gating:compensation-ref="FCS">
      <data-type:fcs-dimension data-type:name="FL1-H"/>
    </gating:dimension>
  </gating:RectangleGate>
  
  <gating:PolygonGate gating:id="Triangle">
    <gating:dimension gating:compensation-ref="FCS">
      <data-type:fcs-dimension data-type:name="FSC-H" />
    </gating:dimension>
    <gating:dimension gating:compensation-ref="FCS">
      <data-type:fcs-dimension data-type:name="SSC-H" />
    </gating:dimension>
    <gating:vertex>
      <gating:coordinate data-type:value="0" />
      <gating:coordinate data-type:value="0" />
    </gating:vertex>
    <gating:vertex>
      <gating:coordinate data-type:value="400" />
      <gating:coordinate data-type:value="0" />
    </gating:vertex>
    <gating:vertex>
      <gating:coordinate data-type:value="400" />
      <gating:coordinate data-type:value="300" />
    </gating:vertex>
  </gating:PolygonGate>
  
  <transforms:transformation transforms:id="myLog">
    <transforms:flog transforms:T="10000" transforms:M="5" />
  </transforms:transformation>
  <gating:PolygonGate gating:id="Pentagon" gating:parent_id="Triangle">
    <gating:dimension gating:compensation-ref="FCS" gating:transformation-ref="myLog">
      <data-type:fcs-dimension data-type:name="FL1-H" />
    </gating:dimension>
    <gating:dimension gating:compensation-ref="FCS">
      <data-type:fcs-dimension data-type:name="SSC-H" />
    </gating:dimension>
    <gating:vertex>
      <gating:coordinate data-type:value="0.4" />
      <gating:coordinate data-type:value="50" />
    </gating:vertex>
    <gating:vertex>
      <gating:coordinate data-type:value="0.8" />
      <gating:coordinate data-type:value="50" />
    </gating:vertex>
    <gating:vertex>
      <gating:coordinate data-type:value="0.8" />
      <gating:coordinate data-type:value="150" />
    </gating:vertex>
    <gating:vertex>
      <gating:coordinate data-type:value="0.4" />
      <gating:coordinate data-type:value="150" />
    </gating:vertex>
    <gating:vertex>
      <gating:coordinate data-type:value="0.6" />
      <gating:coordinate data-type:value="100" />
    </gating:vertex>
  </gating:PolygonGate>
  
  <gating:PolygonGate gating:id="NonSimplePolygon" gating:parent_id="Pentagon">
    <gating:dimension gating:compensation-ref="FCS">
      <data-type:fcs-dimension data-type:name="FSC-H" />
    </gating:dimension>
    <gating:dimension gating:compensation-ref="FCS">
      <data-type:fcs-dimension data-type:name="SSC-H" />
    </gating:dimension>
    <gating:vertex>
      <gating:coordinate data-type:value="50" />
      <gating:coordinate data-type:value="50" />
    </gating:vertex>
    <gating:vertex>
      <gating:coordinate data-type:value="150" />
      <gating:coordinate data-type:value="50" />
    </gating:vertex>
    <gating:vertex>
      <gating:coordinate data-type:value="50" />
      <gating:coordinate data-type:value="150" />
    </gating:vertex>
    <gating:vertex>
      <gating:coordinate data-type:value="150" />
      <gating:coordinate data-type:value="150" />
    </gating:vertex>
  </gating:PolygonGate>
  
  <transforms:transformation transforms:id="myLiln">
    <transforms:flin transforms:T="1023" transforms:A="100" />
  </transforms:transformation>
  
  <transforms:transformation transforms:id="myLog2">
    <transforms:flog transforms:T="1023" transforms:M="4.5" />
  </transforms:transformation>
  
  <transforms:transformation transforms:id="myLog3">
    <transforms:flog transforms:T="262144" transforms:M="4.5" />
  </transforms:transformation>
  
  <transforms:transformation transforms:id="myLin">
    <transforms:flin transforms:T="1000" transforms:A="0" />
  </transforms:transformation>
  
  <transforms:transformation transforms:id="myLin2">
    <transforms:flin transforms:T="1000" transforms:A="100" />
  </transforms:transformation>
  
  <transforms:transformation transforms:id="myLin3">
    <transforms:flin transforms:T="1024" transforms:A="256" />
  </transforms:transformation>
  
  <transforms:transformation transforms:id="myASinH">
    <transforms:fasinh transforms:T="10000" transforms:M="4.5"  transforms:A="0.5" />
  </transforms:transformation>
  
  <transforms:transformation transforms:id="myLogicle1">
    <transforms:logicle transforms:T="1000" transforms:W="1" transforms:M="4" transforms:A="1" />
  </transforms:transformation>
  
  <transforms:transformation transforms:id="myLogicle2">
    <transforms:logicle transforms:T="1000" transforms:W="1" transforms:M="4"    transforms:A="1" />
  </transforms:transformation>
  
  <transforms:transformation transforms:id="myLogicle3">
    <transforms:logicle transforms:T="1000" transforms:W="0" transforms:M="4"    transforms:A="1" />
  </transforms:transformation>

  <transforms:transformation transforms:id="myHyperlog1">
    <transforms:hyperlog transforms:T="1000" transforms:W="1" transforms:M="4"    transforms:A="0" />
  </transforms:transformation>

  <transforms:transformation transforms:id="myHyperlog2">
    <transforms:hyperlog transforms:T="1000" transforms:W="1" transforms:M="4"    transforms:A="1" />
  </transforms:transformation>
  
  <transforms:transformation transforms:id="myHyperlog3">
    <transforms:hyperlog transforms:T="1000" transforms:W="0.01" transforms:M="4"    transforms:A="1" />
  </transforms:transformation>
  
  <gating:EllipsoidGate gating:id="myEllipse">
    <gating:dimension gating:compensation-ref="FCS">
      <data-type:fcs-dimension data-type:name="FSC-H" />
    </gating:dimension>
    <gating:dimension gating:compensation-ref="FCS">
      <data-type:fcs-dimension data-type:name="SSC-H" />
    </gating:dimension>
    <gating:mean>
      <gating:coordinate data-type:value="400" />
      <gating:coordinate data-type:value="200" />
    </gating:mean>
    <gating:covarianceMatrix>
      <!-- a=200, b=175, rotation=0dg -->
      <gating:row>
        <gating:entry data-type:value="40000" />
        <gating:entry data-type:value="0" />
      </gating:row>
      <gating:row>
        <gating:entry data-type:value="0" />
        <gating:entry data-type:value="30625" />
      </gating:row>
    </gating:covarianceMatrix>
    <gating:distanceSquare data-type:value="1" />
  </gating:EllipsoidGate>
  
  <gating:EllipsoidGate gating:id="myEllipse2">
    <data-type:custom_info a="37" b="30" rotation="-45dg" />
    <gating:dimension gating:compensation-ref="FCS">
      <data-type:fcs-dimension data-type:name="FSC-H" />
    </gating:dimension>
    <gating:dimension gating:compensation-ref="FCS">
      <data-type:fcs-dimension data-type:name="SSC-H" />
    </gating:dimension>
    <gating:mean>
      <gating:coordinate data-type:value="40" />
      <gating:coordinate data-type:value="40" />
    </gating:mean>
    <gating:covarianceMatrix>
      <gating:row>
        <gating:entry data-type:value="1134.5" />
        <gating:entry data-type:value="-234.5" />
      </gating:row>
      <gating:row>
        <gating:entry data-type:value="-234.5" />
        <gating:entry data-type:value="1134.5" />
      </gating:row>
    </gating:covarianceMatrix>
    <gating:distanceSquare data-type:value="1" />
  </gating:EllipsoidGate>
  
  <transforms:transformation transforms:id="adjustedLogicle">
    <transforms:logicle transforms:T="10000" transforms:W="0.7" transforms:M="4.5" transforms:A="0" />
  </transforms:transformation>
  <gating:EllipsoidGate gating:id="myEllipse3">
    <gating:dimension gating:compensation-ref="FCS" gating:transformation-ref="adjustedLogicle">
      <data-type:fcs-dimension data-type:name="FL1-H" />
    </gating:dimension>
    <gating:dimension gating:compensation-ref="FCS" gating:transformation-ref="adjustedLogicle">
      <data-type:fcs-dimension data-type:name="FL2-H" />
    </gating:dimension>
    <gating:dimension gating:compensation-ref="FCS" gating:transformation-ref="adjustedLogicle">
      <data-type:fcs-dimension data-type:name="FL3-H" />
    </gating:dimension>
    <gating:mean>
      <gating:coordinate data-type:value="0.2" />
      <gating:coordinate data-type:value="0.3" />
      <gating:coordinate data-type:value="0.25" />
    </gating:mean>
    <gating:covarianceMatrix>
      <gating:row>
        <gating:entry data-type:value="3" />
        <gating:entry data-type:value="-2" />
        <gating:entry data-type:value="11" />
      </gating:row>
      <gating:row>
        <gating:entry data-type:value="-2" />
        <gating:entry data-type:value="0.3" />
        <gating:entry data-type:value="-1" />
      </gating:row>
      <gating:row>
        <gating:entry data-type:value="11" />
        <gating:entry data-type:value="-1" />
        <gating:entry data-type:value="2" />
      </gating:row>
    </gating:covarianceMatrix>
    <gating:distanceSquare data-type:value="1" />
  </gating:EllipsoidGate>
  
  <gating:QuadrantGate gating:id="myQuadrantGate">
    <data-type:custom_info>FSC-H is split at 500 and 1000</data-type:custom_info>
    <gating:divider gating:id="FSC" gating:compensation-ref="FCS">
      <data-type:fcs-dimension data-type:name="FSC-H" />
      <gating:value>500</gating:value>
      <gating:value>1000</gating:value>
    </gating:divider>
    <gating:divider gating:id="SSC" gating:compensation-ref="FCS">
      <data-type:fcs-dimension data-type:name="SSC-H" />
      <gating:value>400</gating:value>
    </gating:divider>    
    <gating:Quadrant gating:id="Q1">
      <gating:position gating:divider_ref="FSC" gating:location="200" />
      <gating:position gating:divider_ref="SSC" gating:location="600" />
    </gating:Quadrant>
    <gating:Quadrant gating:id="Q2">
      <gating:position gating:divider_ref="FSC" gating:location="600" />
      <gating:position gating:divider_ref="SSC" gating:location="600" />
    </gating:Quadrant>
    <gating:Quadrant gating:id="Q3">
      <gating:position gating:divider_ref="FSC" gating:location="1700" />
      <gating:position gating:divider_ref="SSC" gating:location="600" />
    </gating:Quadrant>
    <gating:Quadrant gating:id="Q4">
      <gating:position gating:divider_ref="FSC" gating:location="200" />
      <gating:position gating:divider_ref="SSC" gating:location="200" />
    </gating:Quadrant>
    <gating:Quadrant gating:id="Q5">
      <gating:position gating:divider_ref="FSC" gating:location="600" />
      <gating:position gating:divider_ref="SSC" gating:location="200" />
    </gating:Quadrant>
    <gating:Quadrant gating:id="Q6">
      <gating:position gating:divider_ref="FSC" gating:location="1700" />
      <gating:position gating:divider_ref="SSC" gating:location="200" />
    </gating:Quadrant>
  </gating:QuadrantGate>
  
  <gating:QuadrantGate gating:id="myQuadrantGate2x">
    <data-type:custom_info note="Assuming myLogicle has been defined elsewhere" />
    <gating:divider gating:id="FL3" gating:compensation-ref="FCS" gating:transformation-ref="myLogicle">
      <data-type:fcs-dimension data-type:name="FL3-A"/>
      <gating:value>0.4</gating:value>
    </gating:divider>
    <gating:divider gating:id="FL5" gating:compensation-ref="FCS" gating:transformation-ref="myLogicle">
      <data-type:fcs-dimension data-type:name="FL5-A"/>
      <gating:value>0.4</gating:value>
    </gating:divider>
    <gating:Quadrant gating:id="DoubleNeg">
      <gating:position gating:divider_ref="FL3" gating:location="0" />
      <gating:position gating:divider_ref="FL5" gating:location="0" />
    </gating:Quadrant>
    <gating:Quadrant gating:id="FL3Neg-FL5Pos">
      <gating:position gating:divider_ref="FL3" gating:location="0" />
      <gating:position gating:divider_ref="FL5" gating:location="0.6" />
    </gating:Quadrant>    
    <gating:Quadrant gating:id="FL3Pos-FL5Neg">
      <gating:position gating:divider_ref="FL3" gating:location="0.6" />
      <gating:position gating:divider_ref="FL5" gating:location="0" />
    </gating:Quadrant>
  </gating:QuadrantGate>
  
  <gating:QuadrantGate gating:id="myQuadrantGate2">
    <gating:divider gating:id="FL4" gating:compensation-ref="FCS">
      <data-type:fcs-dimension data-type:name="FL4-W" />
      <gating:value>10</gating:value><gating:value>100</gating:value>
    </gating:divider>
    <gating:Quadrant gating:id="FL4Neg">
      <gating:position gating:divider_ref="FL4" gating:location="0" />
    </gating:Quadrant>
    <gating:Quadrant gating:id="FL4Dim">
      <gating:position gating:divider_ref="FL4" gating:location="50" />
    </gating:Quadrant>
    <gating:Quadrant gating:id="FL4Pos">
      <gating:position gating:divider_ref="FL4" gating:location="500" />
    </gating:Quadrant>
  </gating:QuadrantGate>
  
  <gating:QuadrantGate gating:id="myQuadrantGate3">
    <data-type:custom_info note="Assuming transformations are defined elsewhere." />
    <gating:divider gating:id="FL1" gating:compensation-ref="FCS" gating:transformation-ref="myHyperlog1">
      <data-type:fcs-dimension data-type:name="FL1-A"/>
      <gating:value>0.5</gating:value>
    </gating:divider>
    <gating:divider gating:id="FL2" gating:compensation-ref="FCS" gating:transformation-ref="myLogicle1">
      <data-type:fcs-dimension data-type:name="FL2-A"/>
      <gating:value>0</gating:value>
      <gating:value>0.25</gating:value>
    </gating:divider>
    <gating:Quadrant gating:id="CS1">
      <gating:position gating:divider_ref="FL2" gating:location="1" />
    </gating:Quadrant>
    <gating:Quadrant gating:id="CS2">
      <gating:position gating:divider_ref="FL1" gating:location="0.1" />
      <gating:position gating:divider_ref="FL2" gating:location="0.1" />
    </gating:Quadrant>    
    <gating:Quadrant gating:id="CS3">
      <gating:position gating:divider_ref="FL1" gating:location="0.6" />
      <gating:position gating:divider_ref="FL2" gating:location="0.1" />
    </gating:Quadrant>    
  </gating:QuadrantGate>
  
  <gating:BooleanGate gating:id="NotGate1">
    <gating:not><gating:gateReference gating:ref="Pentagon"/></gating:not>
  </gating:BooleanGate>
  
  <gating:BooleanGate gating:id="myBoolean">
    <gating:or>
      <gating:gateReference gating:ref="R1" />
      <gating:gateReference gating:ref="E1" />
    </gating:or>
  </gating:BooleanGate>
  <gating:RectangleGate gating:id="R1">
    <gating:dimension gating:compensation-ref="FCS"  gating:min="10" gating:max="30">
      <data-type:fcs-dimension data-type:name="FSC-H" />
    </gating:dimension>
    <gating:dimension gating:compensation-ref="FSC" gating:min="10" gating:max="20">
      <data-type:fcs-dimension data-type:name="SSC-H" />
    </gating:dimension>
  </gating:RectangleGate>
  <gating:EllipsoidGate gating:id="E1">
    <gating:dimension gating:compensation-ref="FSC">
      <data-type:fcs-dimension data-type:name="FSC-H" />
    </gating:dimension>
    <gating:dimension gating:compensation-ref="FCS">
      <data-type:fcs-dimension data-type:name="SSC-H" />
    </gating:dimension>
    <gating:mean>
      <gating:coordinate data-type:value="30" />
      <gating:coordinate data-type:value="15" />
    </gating:mean>
    <gating:covarianceMatrix>
      <gating:row>
        <gating:entry data-type:value="100" />
        <gating:entry data-type:value="0" />
      </gating:row>
      <gating:row>
        <gating:entry data-type:value="0" />
        <gating:entry data-type:value="25" />
      </gating:row>
    </gating:covarianceMatrix>
    <gating:distanceSquare data-type:value="1" />
  </gating:EllipsoidGate>
  
  <gating:BooleanGate gating:id="myBoolean2">
    <gating:not><gating:gateReference gating:ref="myBoolean" /></gating:not>
  </gating:BooleanGate>
   
  <gating:BooleanGate gating:id="myBoolean3" gating:parent_id="Range_FCS_o100">
    <gating:and>
      <gating:gateReference gating:ref="myEllipse" />
      <gating:gateReference gating:ref="Pentagon" />
      <gating:gateReference gating:ref="FL4Dim" />
    </gating:and>
  </gating:BooleanGate>
  
  <gating:BooleanGate gating:id="myBoolean4" gating:parent_id="Range_FCS_o100">
    <data-type:custom_info>
      Similar to myBoolean3 but with use-as-complement="true" for the myEllipse operand.
      That means that NOT(myEllipse) is used in the AND, i.e., the gate is
      AND(NOT(myEllipse), Pentagon, FL4Dim) with a parent gate Range_FCS_o100.
    </data-type:custom_info>
    <gating:and>
      <gating:gateReference gating:ref="myEllipse" gating:use-as-complement="true" />
      <gating:gateReference gating:ref="Pentagon" />
      <gating:gateReference gating:ref="FL4Dim" />
    </gating:and>
  </gating:BooleanGate>
    
  <transforms:spectrumMatrix transforms:id="M">
    <transforms:fluorochromes>
      <data-type:fcs-dimension data-type:name="FL1-H" />
      <data-type:fcs-dimension data-type:name="FL2-H" />
      <data-type:fcs-dimension data-type:name="FL3-H" />
    </transforms:fluorochromes>
    <transforms:detectors>
      <data-type:fcs-dimension data-type:name="FL1-H" />
      <data-type:fcs-dimension data-type:name="FL2-H" />
      <data-type:fcs-dimension data-type:name="FL3-H" />
    </transforms:detectors>
    <transforms:spectrum>
      <transforms:coefficient transforms:value="1" />
      <transforms:coefficient transforms:value="0.022" />
      <transforms:coefficient transforms:value="0.083" />
    </transforms:spectrum>
    <transforms:spectrum>
      <transforms:coefficient transforms:value="0.122" />
      <transforms:coefficient transforms:value="1" />
      <transforms:coefficient transforms:value="0.051" />
    </transforms:spectrum>    
    <transforms:spectrum>
      <transforms:coefficient transforms:value="0.037" />
      <transforms:coefficient transforms:value="0.078" />
      <transforms:coefficient transforms:value="1" />
    </transforms:spectrum>    
  </transforms:spectrumMatrix>
  
  <transforms:spectrumMatrix transforms:id="M2" 
                                                transforms:matrix-inverted-already="true">
    <data-type:custom_info>
      Same as matrix M but this time, the matrix is actually inverted already.
    </data-type:custom_info>
    <transforms:fluorochromes>
      <data-type:fcs-dimension data-type:name="FL1-H" />
      <data-type:fcs-dimension data-type:name="FL2-H" />
      <data-type:fcs-dimension data-type:name="FL3-H" />
    </transforms:fluorochromes>
    <transforms:detectors>
      <data-type:fcs-dimension data-type:name="FL1-H" />
      <data-type:fcs-dimension data-type:name="FL2-H" />
      <data-type:fcs-dimension data-type:name="FL3-H" />
    </transforms:detectors>
    <transforms:spectrum>
      <transforms:coefficient transforms:value="1.00496788" />
      <transforms:coefficient transforms:value="-0.01566545" />
      <transforms:coefficient transforms:value="-0.08261340" />
    </transforms:spectrum>
    <transforms:spectrum>
      <transforms:coefficient transforms:value="-0.12119181" />
      <transforms:coefficient transforms:value="1.00588303" />
      <transforms:coefficient transforms:value="-0.04124111" />
    </transforms:spectrum>    
    <transforms:spectrum>
      <transforms:coefficient transforms:value="-0.02773085" />
      <transforms:coefficient transforms:value="-0.07787925" />
      <transforms:coefficient transforms:value="1.00627350" />
    </transforms:spectrum>    
  </transforms:spectrumMatrix>
    
  <transforms:transformation transforms:id="myRatio">
  <transforms:fratio transforms:A="1" transforms:B="0" transforms:C="0" >
    <data-type:fcs-dimension data-type:name="FL1-H" />
    <data-type:fcs-dimension data-type:name="FL1-A" />
  </transforms:fratio>
  </transforms:transformation>
  
  <transforms:transformation transforms:id="myRatio2">
    <transforms:fratio transforms:A="10" transforms:B="5" transforms:C="5" >
      <data-type:fcs-dimension data-type:name="FL2-H" />
      <data-type:fcs-dimension data-type:name="FL2-W" />
    </transforms:fratio>
  </transforms:transformation>
  
  <transforms:transformation transforms:id="myRatio3">
    <transforms:fratio transforms:A="0.5" transforms:B="-10" transforms:C="25" >
      <data-type:custom_info note="Just to show that custom_info is possible" />
      <data-type:fcs-dimension data-type:name="FL1-H" />
      <data-type:fcs-dimension data-type:name="FL2-H" />
    </transforms:fratio>
  </transforms:transformation>
     
   <transforms:transformation transforms:id="myRatioLog">
     <transforms:flog transforms:T="100" transforms:M="4" />
   </transforms:transformation>
</gating:Gating-ML>
