1  ProducerWithPSetDesc  (global::EDProducer)  "pluginFWCoreIntegrationTestPSet.so"
  1.1 testProducerWithPsetDesc
    testingAutoGeneratedCfi untracked bool        optional True
    p_int                   int32                          2147483647
    p_int_untracked         untracked int32                -2147483647
    p_int_opt               int32                 optional 0
    p_int_optuntracked      untracked int32       optional 7
    p_int_opt_nd            int32                 optional none
    p_int_optuntracked_nd   untracked int32       optional none
    vint1                   vint32                         empty
    vint2                   vint32                         (vector size = 1)
      [0]: 2147483647
    vint3                   vint32                         (vector size = 2)
      [0]: 2147483647
      [1]: -2147483647
    vint4                   vint32                         (vector size = 3)
      [0]: 2147483647
      [1]: -2147483647
      [2]: 0
    uint1                   uint32                         4294967295
    uint2                   untracked uint32               0
    vuint1                  vuint32                        empty
    vuint2                  vuint32                        (vector size = 1)
      [0]: 4294967295
    vuint3                  vuint32                        (vector size = 2)
      [0]: 4294967295
      [1]: 0
    vuint4                  vuint32                        (vector size = 3)
      [0]: 4294967295
      [1]: 0
      [2]: 11
    vuint5                  vuint32                        see Section 1.1.1
    int64v1                 int64                          9000000000000000000
    int64v2                 int64                          -9000000000000000000
    int64v3                 int64                          0
    vint64v1                vint64                         empty
    vint64v2                vint64                         (vector size = 1)
      [0]: 9000000000000000000
    vint64v3                vint64                         (vector size = 2)
      [0]: 9000000000000000000
      [1]: -9000000000000000000
    vint64v4                vint64                         (vector size = 3)
      [0]: 9000000000000000000
      [1]: -9000000000000000000
      [2]: 0
    uint64v1                uint64                         18000000000000000000
    uint64v2                untracked uint64               0
    vuint64v1               vuint64                        empty
    vuint64v2               vuint64                        (vector size = 1)
      [0]: 18000000000000000000
    vuint64v3               vuint64                        (vector size = 2)
      [0]: 18000000000000000000
      [1]: 0
    vuint64v4               vuint64                        (vector size = 3)
      [0]: 18000000000000000000
      [1]: 0
      [2]: 11
    doublev1                double                         2.2250738585072014e-308
    doublev2                untracked double               0
    doublev3                untracked double               0.3
    vdoublev1               vdouble                        empty
    vdoublev2               vdouble                        (vector size = 1)
      [0]: 1e+300
    vdoublev3               vdouble                        (vector size = 2)
      [0]: 1e+300
      [1]: 0
    vdoublev4               vdouble                        (vector size = 3)
      [0]: 1e+300
      [1]: 0
      [2]: 11
    vdoublev5               vdouble                        (vector size = 4)
      [0]: 1e+300
      [1]: 0
      [2]: 11
      [3]: 0.3
    boolv1                  bool                           True
    boolv2                  bool                           False
    stringv1                string                         'Hello'
    stringv2                string                         ''
    vstringv1               vstring                        empty
    vstringv2               vstring                        (vector size = 1)
      [0]: 'Hello'
    vstringv3               vstring                        (vector size = 2)
      [0]: 'Hello'
      [1]: 'World'
    vstringv4               vstring                        (vector size = 3)
      [0]: 'Hello'
      [1]: 'World'
      [2]: ''
    eventIDv1               EventID                        11:12
    eventIDv2               EventID                        101:102
    vEventIDv1              VEventID                       empty
    vEventIDv2              VEventID                       (vector size = 1)
      [0]: 1000:1100
    vEventIDv3              VEventID                       (vector size = 2)
      [0]: 1000:1100
      [1]: 10000:11000
    vEventIDv4              VEventID                       (vector size = 3)
      [0]: 1000:1100
      [1]: 10000:11000
      [2]: 100000:110000
    luminosityIDv1          LuminosityBlockID              11:12
    luminosityIDv2          LuminosityBlockID              101:102
    vLuminosityBlockIDv1    VLuminosityBlockID             empty
    vLuminosityBlockIDv2    VLuminosityBlockID             (vector size = 1)
      [0]: 1000:1100
    vLuminosityBlockIDv3    VLuminosityBlockID             (vector size = 2)
      [0]: 1000:1100
      [1]: 10000:11000
    vLuminosityBlockIDv4    VLuminosityBlockID             (vector size = 3)
      [0]: 1000:1100
      [1]: 10000:11000
      [2]: 100000:110000
    lumiRangev1             LuminosityBlockRange           1:1-9:9
    lumiRangev2             LuminosityBlockRange           3:4-1000:1000
    vLumiRangev1            VLuminosityBlockRange          empty
    vLumiRangev2            VLuminosityBlockRange          (vector size = 1)
      [0]: 1:1-9:9
    vLumiRangev3            VLuminosityBlockRange          (vector size = 2)
      [0]: 1:1-9:9
      [1]: 3:4-1000:1000
    eventRangev1            EventRange                     1:1-8:8
    eventRangev2            EventRange                     3:4-1001:1002
    vEventRangev1           VEventRange                    empty
    vEventRangev2           VEventRange                    (vector size = 1)
      [0]: 1:1-8:8
    vEventRangev3           VEventRange                    (vector size = 2)
      [0]: 1:1-8:8
      [1]: 3:4-1001:1002
    inputTagv1              InputTag                       'One:Two:Three'
    inputTagv2              InputTag                       'One:Two'
    inputTagv3              InputTag                       'One'
    inputTagv4              InputTag                       'One::Three'
    vInputTagv1             VInputTag                      empty
    vInputTagv2             VInputTag                      (vector size = 1)
      [0]: 'One:Two:Three'
    vInputTagv3             VInputTag                      (vector size = 2)
      [0]: 'One:Two:Three'
      [1]: 'One:Two'
    vInputTagv4             VInputTag                      (vector size = 3)
      [0]: 'One:Two:Three'
      [1]: 'One:Two'
      [2]: 'One'
    vInputTagv5             VInputTag                      (vector size = 4)
      [0]: 'One:Two:Three'
      [1]: 'One:Two'
      [2]: 'One'
      [3]: 'One::Three'
    esinputTagv1            ESInputTag                     'One:Two'
    esinputTagv2            ESInputTag                     'One:'
    esinputTagv3            ESInputTag                     ':Two'
    vESInputTagv1           VESInputTag                    empty
    vESInputTagv2           VESInputTag                    (vector size = 1)
      [0]: 'One:Two'
    vESInputTagv3           VESInputTag                    (vector size = 2)
      [0]: 'One:Two'
      [1]: 'One:'
    vESInputTagv4           VESInputTag                    (vector size = 3)
      [0]: 'One:Two'
      [1]: 'One:'
      [2]: ':Two'
    fileInPath              FileInPath                     'FWCore/Integration/plugins/ProducerWithPSetDesc.cc'
    Empty group description
    bar                     PSet                           see Section 1.1.2
    test101                 PSet                  optional see Section 1.1.3 (do not write to cfi)
    test102                 VPSet                 optional see Section 1.1.4 (do not write to cfi)
    test103                 VPSet                 optional see Section 1.1.5 (do not write to cfi)
    test104                 untracked VPSet                see Section 1.1.6
    test105                 untracked VPSet                see Section 1.1.7
    test1                   double                         0.1
    test2                   double                optional 0.2
    test3                   double                optional none (do not write to cfi)
    AND group: optional see Section 1.1.8
    oiswitch (switch)       int32                 optional see Section 1.1.9
    testDeeplyNested2       PSet                           see Section 1.1.10
    bars                    VPSet                          see Section 1.1.11
    subpset                 PSet                  optional see Section 1.1.12
    wildcardPset            PSet                           see Section 1.1.13
    switchPset              PSet                           see Section 1.1.14
    xorPset                 PSet                           see Section 1.1.15
    orPset                  PSet                           see Section 1.1.16
    andPset                 PSet                           see Section 1.1.17
    ifExistsPset            PSet                           see Section 1.1.18
    allowedLabelsPset       PSet                           see Section 1.1.19
    noDefaultPset3          PSet                           see Section 1.1.20
    noDefaultPset4          PSet                           see Section 1.1.21
    plugin                  PSet                           see Section 1.1.22
    plugin1                 PSet                           see Section 1.1.23
    plugin2                 VPSet                          see Section 1.1.24
    plugin3                 VPSet                          see Section 1.1.25
    plugin4                 PSet                           see Section 1.1.26
    plugin5                 VPSet                          see Section 1.1.27
    mightGet                untracked vstring     optional none
    Section 1.1.1 vuint5 default contents: (vector size = 6)
        [0]: 4294967295
        [1]: 0
        [2]: 11
        [3]: 21
        [4]: 31
        [5]: 41
    Section 1.1.2 bar PSet description:
        Drinks   uint32                    5
        uDrinks  untracked uint32          5
        oDrinks  uint32           optional 5
        ouDrinks untracked uint32 optional 5
    Section 1.1.3 test101 PSet description:
        Drinks   uint32                    5
        uDrinks  untracked uint32          5
        oDrinks  uint32           optional 5
        ouDrinks untracked uint32 optional 5
    Section 1.1.4 test102 VPSet description:
        All elements will be validated using the PSet description in Section 1.1.4.1.
        Does not have a default VPSet.
    Section 1.1.4.1 description of PSet used to validate elements of VPSet:
        Description is empty
    Section 1.1.5 test103 VPSet description:
        All elements will be validated using the PSet description in Section 1.1.5.1.
        Does not have a default VPSet.
    Section 1.1.5.1 description of PSet used to validate elements of VPSet:
        Drinks     uint32                    5
        uDrinks    untracked uint32          5
        oDrinks    uint32           optional 5
        ouDrinks   untracked uint32 optional 5
        ndoDrinks  uint32           optional none
        ndouDrinks untracked uint32 optional none
    Section 1.1.6 test104 VPSet description:
        All elements will be validated using the PSet description in Section 1.1.6.1.
        The default VPSet has 1 element.
        [0]: see Section 1.1.6.2
    Section 1.1.6.1 description of PSet used to validate elements of VPSet:
        Drinks     uint32                    5
        uDrinks    untracked uint32          5
        oDrinks    uint32           optional 5
        ouDrinks   untracked uint32 optional 5
        ndoDrinks  uint32           optional none
        ndouDrinks untracked uint32 optional none
    Section 1.1.6.2 PSet description of default VPSet element [0]
        Description is empty
    Section 1.1.7 test105 VPSet description:
        All elements will be validated using the PSet description in Section 1.1.7.1.
        The default VPSet is empty.
    Section 1.1.7.1 description of PSet used to validate elements of VPSet:
        Drinks     uint32                    5
        uDrinks    untracked uint32          5
        oDrinks    uint32           optional 5
        ouDrinks   untracked uint32 optional 5
        ndoDrinks  uint32           optional none
        ndouDrinks untracked uint32 optional none
    Section 1.1.8 AND group description:
    This optional AND group requires all or none of the following to be in the PSet
        testA string  'fooA'
        testB int32   100
        testC int32   101
    Section 1.1.9 oiswitch (switch):
        switch:
        oiswitch int32  optional 1
        if oiswitch = 0
        oivalue  int32           100
        if oiswitch = 1
        AND group: see Section 1.1.9.1
        if oiswitch = 2
        oivalue  string          '102'
    Section 1.1.9.1 AND group description:
    This AND group requires all of the following to be in the PSet
        oivalue1 double  101
        oivalue2 double  101
    Section 1.1.10 testDeeplyNested2 PSet description:
        bswitch (switch)   bool            see Section 1.1.10.1
        iswitch (switch)   int32           see Section 1.1.10.2
        sswitch (switch)   string          see Section 1.1.10.3
        ndiswitch (switch) int32  optional (do not write to cfi) see Section 1.1.10.4
        testint            int32           1000
    Section 1.1.10.1 bswitch (switch):
        switch:
        bswitch bool   False
        if bswitch = False
        AND group: see Section 1.1.10.1.1
        if bswitch = True
        bvalue  int32  100
    Section 1.1.10.1.1 AND group description:
    This AND group requires all of the following to be in the PSet
        bvalue1 double  101
        bvalue2 double  101
    Section 1.1.10.2 iswitch (switch):
        switch:
        iswitch int32   1
        if iswitch = 0
        ivalue  int32   100
        if iswitch = 1
        AND group: see Section 1.1.10.2.1
        if iswitch = 2
        ivalue  string  '102'
    Section 1.1.10.2.1 AND group description:
    This AND group requires all of the following to be in the PSet
        ivalue1 double            101
        ivalue2 untracked double  101
    Section 1.1.10.3 sswitch (switch):
        switch:
        sswitch string  '1'
        if sswitch = "0"
        svalue  int32   100
        if sswitch = "1"
        AND group: see Section 1.1.10.3.1
        if sswitch = "2"
        svalue  string  '102'
    Section 1.1.10.3.1 AND group description:
    This AND group requires all of the following to be in the PSet
        svalue1 double  101
        svalue2 double  101
    Section 1.1.10.4 ndiswitch (switch):
        switch:
        ndiswitch int32  optional 1
        if ndiswitch = 0
        ndivalue  int32           100
        if ndiswitch = 1
        AND group: see Section 1.1.10.4.1
        if ndiswitch = 2
        ndivalue  string          '102'
    Section 1.1.10.4.1 AND group description:
    This AND group requires all of the following to be in the PSet
        ndivalue1 double  101
        ndivalue2 double  101
    Section 1.1.11 bars VPSet description:
        All elements will be validated using the PSet description in Section 1.1.11.1.
        The default VPSet has 2 elements.
        [0]: see Section 1.1.11.2
        [1]: see Section 1.1.11.3
    Section 1.1.11.1 description of PSet used to validate elements of VPSet:
        Drinks           uint32                    5
        uDrinks          untracked uint32          5
        oDrinks          uint32           optional 5
        ouDrinks         untracked uint32 optional 5
        ndoDrinks        uint32           optional none
        ndouDrinks       untracked uint32 optional none
        testDeeplyNested PSet                      see Section 1.1.11.1.1
        anotherVPSet     VPSet                     see Section 1.1.11.1.2
    Section 1.1.11.1.1 testDeeplyNested PSet description:
        bswitch (switch)   bool            see Section 1.1.11.1.1.1
        iswitch (switch)   int32           see Section 1.1.11.1.1.2
        sswitch (switch)   string          see Section 1.1.11.1.1.3
        ndiswitch (switch) int32  optional (do not write to cfi) see Section 1.1.11.1.1.4
        testint            int32           1000
    Section 1.1.11.1.1.1 bswitch (switch):
        switch:
        bswitch bool   False
        if bswitch = False
        AND group: see Section 1.1.11.1.1.1.1
        if bswitch = True
        bvalue  int32  100
    Section 1.1.11.1.1.1.1 AND group description:
    This AND group requires all of the following to be in the PSet
        bvalue1 double  101
        bvalue2 double  101
    Section 1.1.11.1.1.2 iswitch (switch):
        switch:
        iswitch int32   1
        if iswitch = 0
        ivalue  int32   100
        if iswitch = 1
        AND group: see Section 1.1.11.1.1.2.1
        if iswitch = 2
        ivalue  string  '102'
    Section 1.1.11.1.1.2.1 AND group description:
    This AND group requires all of the following to be in the PSet
        ivalue1 double            101
        ivalue2 untracked double  101
    Section 1.1.11.1.1.3 sswitch (switch):
        switch:
        sswitch string  '1'
        if sswitch = "0"
        svalue  int32   100
        if sswitch = "1"
        AND group: see Section 1.1.11.1.1.3.1
        if sswitch = "2"
        svalue  string  '102'
    Section 1.1.11.1.1.3.1 AND group description:
    This AND group requires all of the following to be in the PSet
        svalue1 double  101
        svalue2 double  101
    Section 1.1.11.1.1.4 ndiswitch (switch):
        switch:
        ndiswitch int32  optional 1
        if ndiswitch = 0
        ndivalue  int32           100
        if ndiswitch = 1
        AND group: see Section 1.1.11.1.1.4.1
        if ndiswitch = 2
        ndivalue  string          '102'
    Section 1.1.11.1.1.4.1 AND group description:
    This AND group requires all of the following to be in the PSet
        ndivalue1 double  101
        ndivalue2 double  101
    Section 1.1.11.1.2 anotherVPSet VPSet description:
        All elements will be validated using the PSet description in Section 1.1.11.1.2.1.
        The default VPSet has 2 elements.
        [0]: see Section 1.1.11.1.2.2
        [1]: see Section 1.1.11.1.2.3
    Section 1.1.11.1.2.1 description of PSet used to validate elements of VPSet:
        xvalue int32  7
    Section 1.1.11.1.2.2 PSet description of default VPSet element [0]
        Description is empty
    Section 1.1.11.1.2.3 PSet description of default VPSet element [1]
        xvalue int32  100
    Section 1.1.11.2 PSet description of default VPSet element [0]
        oDrinks uint32  11
    Section 1.1.11.3 PSet description of default VPSet element [1]
        ndouDrinks       untracked uint32  11
        oDrinks          uint32            11
        ouDrinks         untracked uint32  11
        testDeeplyNested PSet              see Section 1.1.11.3.1
        anotherVPSet     VPSet             see Section 1.1.11.3.2
    Section 1.1.11.3.1 testDeeplyNested PSet description:
        testint int32  2
    Section 1.1.11.3.2  VPSet description for VPSet that is part of the default of a containing VPSet:
        The default VPSet has 2 elements.
        [0]: see Section 1.1.11.3.2.1
        [1]: see Section 1.1.11.3.2.2
    Section 1.1.11.3.2.1 PSet description of default VPSet element [0]
        Description is empty
    Section 1.1.11.3.2.2 PSet description of default VPSet element [1]
        xvalue int32  17
    Section 1.1.12 subpset PSet description:
        xvalue int32           11
        bar    untracked PSet  see Section 1.1.12.1
    Section 1.1.12.1 bar PSet description:
        Drinks   uint32                    5
        uDrinks  untracked uint32          5
        oDrinks  uint32           optional 5
        ouDrinks untracked uint32 optional 5
    Section 1.1.13 wildcardPset PSet description:
        p_uint_opt  uint32           optional 0
        wildcard: * int32            optional (require zero or more)
        wildcard: * untracked double optional (require zero or more)
        wildcard: * PSet             optional (require exactly one)
        wildcard: * PSet             optional (require at least one)
          (see Section 1.1.13.1)
        wildcard: * VPSet            optional (require exactly one)
        wildcard: * VPSet            optional (require at least one)
          (see Section 1.1.13.2)
    Section 1.1.13.1 description of PSet matching wildcard:
        Drinks      uint32                    5
    Section 1.1.13.2 description used to validate all PSets which are in the VPSet matching the wildcard:
        Drinks      uint32                    5
        Drinks2     uint32                    11
    Section 1.1.14 switchPset PSet description:
        iswitch (switch)      int32          see Section 1.1.14.1
        addTeVRefits (switch) bool           see Section 1.1.14.2
    Section 1.1.14.1 iswitch (switch):
        switch:
        iswitch int32   1
        if iswitch = 0
        ivalue  vint32  (vector size = 2)
          [0]: 21
          [1]: 22
        if iswitch = 1
        AND group: see Section 1.1.14.1.1
        if iswitch = 2
        ivalue  string  '102'
    Section 1.1.14.1.1 AND group description:
    This AND group requires all of the following to be in the PSet
        ivalue1 double  101
        ivalue2 double  101
    Section 1.1.14.2 addTeVRefits (switch):
        switch:
        addTeVRefits bool  True
        if addTeVRefits = False
        Empty group description
        if addTeVRefits = True
        AND group: see Section 1.1.14.2.1
    Section 1.1.14.2.1 AND group description:
    This AND group requires all of the following to be in the PSet
        pickySrc InputTag  ''
        tpfmsSrc InputTag  ''
    Section 1.1.15 xorPset PSet description:
        XOR group: see Section 1.1.15.1
        XOR group: see Section 1.1.15.2
        XOR group: optional (do not write to cfi) see Section 1.1.15.3
        XOR group: see Section 1.1.15.4
    Section 1.1.15.1 XOR group description:
    This XOR group requires exactly one of the following to be in the PSet
        name string  '11'
        name uint32  11
    Section 1.1.15.2 XOR group description:
    This XOR group requires exactly one of the following to be in the PSet
        name1 string  '11'
        name1 uint32  11
    Section 1.1.15.3 XOR group description:
    This optional XOR group requires exactly one or none of the following to be in the PSet
        name2 string  '11'
        name2 uint32  11
    Section 1.1.15.4 XOR group description:
    This XOR group requires exactly one of the following to be in the PSet
        name3   string  '11'
        name4   uint32  11
        test101 PSet    see Section 1.1.15.4.1
        test103 VPSet   see Section 1.1.15.4.2
    Section 1.1.15.4.1 test101 PSet description:
        Drinks   uint32                    5
        uDrinks  untracked uint32          5
        oDrinks  uint32           optional 5
        ouDrinks untracked uint32 optional 5
    Section 1.1.15.4.2 test103 VPSet description:
        All elements will be validated using the PSet description in Section 1.1.15.4.2.1.
        Does not have a default VPSet.
    Section 1.1.15.4.2.1 description of PSet used to validate elements of VPSet:
        Drinks     uint32                    5
        uDrinks    untracked uint32          5
        oDrinks    uint32           optional 5
        ouDrinks   untracked uint32 optional 5
        ndoDrinks  uint32           optional none
        ndouDrinks untracked uint32 optional none
    Section 1.1.16 orPset PSet description:
        OR group: see Section 1.1.16.1
        OR group: see Section 1.1.16.2
        OR group: optional (do not write to cfi) see Section 1.1.16.3
    Section 1.1.16.1 OR group description:
    This OR group requires at least one of the following to be in the PSet
        x1 string  '11'
        x2 uint32  11
    Section 1.1.16.2 OR group description:
    This OR group requires at least one of the following to be in the PSet
        y1 string  '11'
        y2 uint32  11
    Section 1.1.16.3 OR group description:
    This optional OR group requires at least one or none of the following to be in the PSet
        z1      string  '11'
        z2      uint32  11
        test101 PSet    see Section 1.1.16.3.1
        test103 VPSet   see Section 1.1.16.3.2
    Section 1.1.16.3.1 test101 PSet description:
        Drinks   uint32                    5
        uDrinks  untracked uint32          5
        oDrinks  uint32           optional 5
        ouDrinks untracked uint32 optional 5
    Section 1.1.16.3.2 test103 VPSet description:
        All elements will be validated using the PSet description in Section 1.1.16.3.2.1.
        Does not have a default VPSet.
    Section 1.1.16.3.2.1 description of PSet used to validate elements of VPSet:
        Drinks     uint32                    5
        uDrinks    untracked uint32          5
        oDrinks    uint32           optional 5
        ouDrinks   untracked uint32 optional 5
        ndoDrinks  uint32           optional none
        ndouDrinks untracked uint32 optional none
    Section 1.1.17 andPset PSet description:
        AND group: see Section 1.1.17.1
        AND group: see Section 1.1.17.2
        AND group: see Section 1.1.17.3
        AND group: optional (do not write to cfi) see Section 1.1.17.4
        AND group: optional see Section 1.1.17.5
    Section 1.1.17.1 AND group description:
    This AND group requires all of the following to be in the PSet
        x1 string  '11'
        x2 uint32  11
    Section 1.1.17.2 AND group description:
    This AND group requires all of the following to be in the PSet
        y1 string  '11'
        y2 uint32  11
    Section 1.1.17.3 AND group description:
    This AND group requires all of the following to be in the PSet
        z1 string  '11'
        z2 uint32  11
    Section 1.1.17.4 AND group description:
    This optional AND group requires all or none of the following to be in the PSet
        a1 string  '11'
        a2 uint32  11
    Section 1.1.17.5 AND group description:
    This optional AND group requires all or none of the following to be in the PSet
        b1 string  '11'
        b2 uint32  11
        b3 uint32  11
        b4 uint32  11
        b5 uint32  11
        b6 uint32  11
    Section 1.1.18 ifExistsPset PSet description:
        IfExists pair: see Section 1.1.18.1
        IfExists pair: optional (do not write to cfi) see Section 1.1.18.2
        IfExists pair: see Section 1.1.18.3
    Section 1.1.18.1 IfExists pair description:
    If the first parameter exists, then the second is required to exist
        x1 uint32  11
        x2 string  '11'
    Section 1.1.18.2 optional IfExists pair description:
    If the first parameter exists, then the second is allowed to exist
        y1 uint32  11
        y2 string  '11'
    Section 1.1.18.3 IfExists pair description:
    If the first parameter exists, then the second is required to exist
        z1 uint32  11
        z2 string  '11'
    Section 1.1.19 allowedLabelsPset PSet description:
        p_int_opt int32 optional 0
        testAllowedLabels (list of allowed labels) see Section 1.1.19.1
        testAllowedLabelsUntracked (list of allowed labels) see Section 1.1.19.2
        testOptAllowedLabels (list of allowed labels) optional (do not write to cfi) see Section 1.1.19.3
        testOptAllowedLabelsUntracked (list of allowed labels) optional (do not write to cfi) see Section 1.1.19.4
        testWithSet (list of allowed labels) optional see Section 1.1.19.5
        testWithVectorOfSets (list of allowed labels) optional see Section 1.1.19.6
    Section 1.1.19.1 testAllowedLabels - allowed labels description
    The following parameter contains a list of parameter labels
    which are allowed to be in the PSet
        testAllowedLabels vstring  empty
        type of allowed parameters: int32
    Section 1.1.19.2 testAllowedLabelsUntracked - allowed labels description
    The following parameter contains a list of parameter labels
    which are allowed to be in the PSet
        testAllowedLabelsUntracked untracked vstring  empty
        type of allowed parameters: untracked uint32
    Section 1.1.19.3 testOptAllowedLabels - allowed labels description
    The following parameter contains a list of parameter labels
    which are allowed to be in the PSet
        testOptAllowedLabels vstring optional empty
        type of allowed parameters: int32
    Section 1.1.19.4 testOptAllowedLabelsUntracked - allowed labels description
    The following parameter contains a list of parameter labels
    which are allowed to be in the PSet
        testOptAllowedLabelsUntracked untracked vstring optional empty
        type of allowed parameters: untracked uint32
    Section 1.1.19.5 testWithSet - allowed labels description
    The following parameter contains a list of parameter labels
    which are allowed to be in the PSet
        testWithSet untracked vstring optional empty
        type of allowed parameters: untracked PSet
        see Section 1.1.19.5.1
    Section 1.1.19.5.1 PSet description:
        Drinks    uint32                    5
        uDrinks   untracked uint32          5
        oDrinks   uint32           optional 5
        ouDrinks  untracked uint32 optional 5
    Section 1.1.19.6 testWithVectorOfSets - allowed labels description
    The following parameter contains a list of parameter labels
    which are allowed to be in the PSet
        testWithVectorOfSets untracked vstring optional empty
        type of allowed parameters: untracked VPSet
        see Section 1.1.19.6.1
    Section 1.1.19.6.1 PSet description used to validate all elements of VPSet's:
        Drinks    uint32                    5
        uDrinks   untracked uint32          5
        oDrinks   uint32           optional 5
        ouDrinks  untracked uint32 optional 5
    Section 1.1.20 noDefaultPset3 PSet description:
        noDefault1  int32                 optional none
        noDefault2  vint32                optional none
        noDefault3  uint32                optional none
        noDefault4  vuint32               optional none
        noDefault5  int64                 optional none
        noDefault6  vint64                optional none
        noDefault7  uint64                optional none
        noDefault8  vuint64               optional none
        noDefault9  double                optional none
        noDefault10 vdouble               optional none
        noDefault11 bool                  optional none
        noDefault12 string                optional none
        noDefault13 vstring               optional none
        noDefault14 EventID               optional none
        noDefault15 VEventID              optional none
        noDefault16 LuminosityBlockID     optional none
        noDefault17 VLuminosityBlockID    optional none
        noDefault18 InputTag              optional none
        noDefault19 VInputTag             optional none
        noDefault20 FileInPath            optional none
        noDefault21 LuminosityBlockRange  optional none
        noDefault22 VLuminosityBlockRange optional none
        noDefault23 EventRange            optional none
        noDefault24 VEventRange           optional none
    Section 1.1.21 noDefaultPset4 PSet description:
        noDefault1  untracked int32                 optional none
        noDefault2  untracked vint32                optional none
        noDefault3  untracked uint32                optional none
        noDefault4  untracked vuint32               optional none
        noDefault5  untracked int64                 optional none
        noDefault6  untracked vint64                optional none
        noDefault7  untracked uint64                optional none
        noDefault8  untracked vuint64               optional none
        noDefault9  untracked double                optional none
        noDefault10 untracked vdouble               optional none
        noDefault11 untracked bool                  optional none
        noDefault12 untracked string                optional none
        noDefault13 untracked vstring               optional none
        noDefault14 untracked EventID               optional none
        noDefault15 untracked VEventID              optional none
        noDefault16 untracked LuminosityBlockID     optional none
        noDefault17 untracked VLuminosityBlockID    optional none
        noDefault18 untracked InputTag              optional none
        noDefault19 untracked VInputTag             optional none
        noDefault20 untracked FileInPath            optional none
        noDefault21 untracked LuminosityBlockRange  optional none
        noDefault22 untracked VLuminosityBlockRange optional none
        noDefault23 untracked EventRange            optional none
        noDefault24 untracked VEventRange           optional none
    Section 1.1.22 plugin PSet description:
        There are multiple possible different descriptions for this ParameterSet
        because it will be used by a helper plugin object contained inside the top level
        module plugin object and the type of the helper plugin object is configurable.
        Or if it is in a vector of ParameterSets it might be used by multiple
        helper plugin objects and each could be configured with a different plugin type.
        Each plugin type could allow a different set of configuration parameters.
        Each subsection of this section has one of the possible descriptions.
        All of these plugins are from the category "PluginDescriptoredmtestAnotherIntFactory".
        The plugin type is specified by the parameter named "type".
    Section 1.1.22.1 ParameterSet description for plugin named "edmtestAnotherMakerWithRecursivePlugin"
        value           int32   5
        pluginRecursive PSet    see Section 1.1.22.1.1
        type            string  'edmtestAnotherValueMaker'
    Section 1.1.22.1.1 pluginRecursive PSet description:
        There are multiple possible different descriptions for this ParameterSet
        because it will be used by a helper plugin object contained inside the top level
        module plugin object and the type of the helper plugin object is configurable.
        Or if it is in a vector of ParameterSets it might be used by multiple
        helper plugin objects and each could be configured with a different plugin type.
        Each plugin type could allow a different set of configuration parameters.
        Each subsection of this section has one of the possible descriptions.
        All of these plugins are from the category "PluginDescriptoredmtestAnotherIntFactory".
        The plugin type is specified by the parameter named "type".
        *** The descriptions for this plugin category already started printing above (see Section 1.1.22)! ***
        *** We might still be in the middle of that printout at this point because it might be recursive. ***
        *** We'll not duplicate that printout and skip it. ***
        *** (N.B. If we tried to print it again, we might fall into an infinite recursion.) ***
    Section 1.1.22.2 ParameterSet description for plugin named "edmtestAnotherOneMaker"
        type string  'edmtestAnotherValueMaker'
    Section 1.1.22.3 ParameterSet description for plugin named "edmtestAnotherValueMaker"
        value int32   5
        type  string  'edmtestAnotherValueMaker'
    Section 1.1.23 plugin1 PSet description:
        There are multiple possible different descriptions for this ParameterSet
        because it will be used by a helper plugin object contained inside the top level
        module plugin object and the type of the helper plugin object is configurable.
        Or if it is in a vector of ParameterSets it might be used by multiple
        helper plugin objects and each could be configured with a different plugin type.
        Each plugin type could allow a different set of configuration parameters.
        Each subsection of this section has one of the possible descriptions.
        All of these plugins are from the category "PluginDescriptoredmtestAnotherIntFactory".
        The plugin type is specified by the parameter named "type".
    Section 1.1.23.1 ParameterSet description for plugin named "edmtestAnotherMakerWithRecursivePlugin"
        value           int32   5
        pluginRecursive PSet    see Section 1.1.23.1.1
        type            string  none
    Section 1.1.23.1.1 pluginRecursive PSet description:
        There are multiple possible different descriptions for this ParameterSet
        because it will be used by a helper plugin object contained inside the top level
        module plugin object and the type of the helper plugin object is configurable.
        Or if it is in a vector of ParameterSets it might be used by multiple
        helper plugin objects and each could be configured with a different plugin type.
        Each plugin type could allow a different set of configuration parameters.
        Each subsection of this section has one of the possible descriptions.
        All of these plugins are from the category "PluginDescriptoredmtestAnotherIntFactory".
        The plugin type is specified by the parameter named "type".
        *** The descriptions for this plugin category already started printing above (see Section 1.1.23)! ***
        *** We might still be in the middle of that printout at this point because it might be recursive. ***
        *** We'll not duplicate that printout and skip it. ***
        *** (N.B. If we tried to print it again, we might fall into an infinite recursion.) ***
    Section 1.1.23.2 ParameterSet description for plugin named "edmtestAnotherOneMaker"
        type string  none
    Section 1.1.23.3 ParameterSet description for plugin named "edmtestAnotherValueMaker"
        value int32   5
        type  string  none
    Section 1.1.24 plugin2 VPSet description:
        All elements will be validated using the PSet description in Section 1.1.24.1.
        The default VPSet is empty.
    Section 1.1.24.1 description of PSet used to validate elements of VPSet:
        There are multiple possible different descriptions for this ParameterSet
        because it will be used by a helper plugin object contained inside the top level
        module plugin object and the type of the helper plugin object is configurable.
        Or if it is in a vector of ParameterSets it might be used by multiple
        helper plugin objects and each could be configured with a different plugin type.
        Each plugin type could allow a different set of configuration parameters.
        Each subsection of this section has one of the possible descriptions.
        All of these plugins are from the category "PluginDescriptoredmtestAnotherIntFactory".
        The plugin type is specified by the parameter named "type".
    Section 1.1.24.1.1 ParameterSet description for plugin named "edmtestAnotherMakerWithRecursivePlugin"
        value           int32   5
        pluginRecursive PSet    see Section 1.1.24.1.1.1
        type            string  none
    Section 1.1.24.1.1.1 pluginRecursive PSet description:
        There are multiple possible different descriptions for this ParameterSet
        because it will be used by a helper plugin object contained inside the top level
        module plugin object and the type of the helper plugin object is configurable.
        Or if it is in a vector of ParameterSets it might be used by multiple
        helper plugin objects and each could be configured with a different plugin type.
        Each plugin type could allow a different set of configuration parameters.
        Each subsection of this section has one of the possible descriptions.
        All of these plugins are from the category "PluginDescriptoredmtestAnotherIntFactory".
        The plugin type is specified by the parameter named "type".
        *** The descriptions for this plugin category already started printing above (see Section 1.1.24.1)! ***
        *** We might still be in the middle of that printout at this point because it might be recursive. ***
        *** We'll not duplicate that printout and skip it. ***
        *** (N.B. If we tried to print it again, we might fall into an infinite recursion.) ***
    Section 1.1.24.1.2 ParameterSet description for plugin named "edmtestAnotherOneMaker"
        type string  none
    Section 1.1.24.1.3 ParameterSet description for plugin named "edmtestAnotherValueMaker"
        value int32   5
        type  string  none
    Section 1.1.25 plugin3 VPSet description:
        All elements will be validated using the PSet description in Section 1.1.25.1.
        The default VPSet has 2 elements.
        [0]: see Section 1.1.25.2
        [1]: see Section 1.1.25.3
    Section 1.1.25.1 description of PSet used to validate elements of VPSet:
        There are multiple possible different descriptions for this ParameterSet
        because it will be used by a helper plugin object contained inside the top level
        module plugin object and the type of the helper plugin object is configurable.
        Or if it is in a vector of ParameterSets it might be used by multiple
        helper plugin objects and each could be configured with a different plugin type.
        Each plugin type could allow a different set of configuration parameters.
        Each subsection of this section has one of the possible descriptions.
        All of these plugins are from the category "PluginDescriptoredmtestAnotherIntFactory".
        The plugin type is specified by the parameter named "type".
    Section 1.1.25.1.1 ParameterSet description for plugin named "edmtestAnotherMakerWithRecursivePlugin"
        value           int32   5
        pluginRecursive PSet    see Section 1.1.25.1.1.1
        type            string  none
    Section 1.1.25.1.1.1 pluginRecursive PSet description:
        There are multiple possible different descriptions for this ParameterSet
        because it will be used by a helper plugin object contained inside the top level
        module plugin object and the type of the helper plugin object is configurable.
        Or if it is in a vector of ParameterSets it might be used by multiple
        helper plugin objects and each could be configured with a different plugin type.
        Each plugin type could allow a different set of configuration parameters.
        Each subsection of this section has one of the possible descriptions.
        All of these plugins are from the category "PluginDescriptoredmtestAnotherIntFactory".
        The plugin type is specified by the parameter named "type".
        *** The descriptions for this plugin category already started printing above (see Section 1.1.25.1)! ***
        *** We might still be in the middle of that printout at this point because it might be recursive. ***
        *** We'll not duplicate that printout and skip it. ***
        *** (N.B. If we tried to print it again, we might fall into an infinite recursion.) ***
    Section 1.1.25.1.2 ParameterSet description for plugin named "edmtestAnotherOneMaker"
        type string  none
    Section 1.1.25.1.3 ParameterSet description for plugin named "edmtestAnotherValueMaker"
        value int32   5
        type  string  none
    Section 1.1.25.2 PSet description of default VPSet element [0]
        type string  'edmtestAnotherOneMaker'
    Section 1.1.25.3 PSet description of default VPSet element [1]
        type  string  'edmtestAnotherValueMaker'
        value int32   11
    Section 1.1.26 plugin4 PSet description:
        There are multiple possible different descriptions for this ParameterSet
        because it will be used by a helper plugin object contained inside the top level
        module plugin object and the type of the helper plugin object is configurable.
        Or if it is in a vector of ParameterSets it might be used by multiple
        helper plugin objects and each could be configured with a different plugin type.
        Each plugin type could allow a different set of configuration parameters.
        Each subsection of this section has one of the possible descriptions.
        All of these plugins are from the category "PluginDescriptoredmtestAnotherIntFactory".
        The plugin type is specified by the parameter named "type".
    Section 1.1.26.1 ParameterSet description for plugin named "edmtestAnotherMakerWithRecursivePlugin"
        value           int32   5
        pluginRecursive PSet    see Section 1.1.26.1.1
        type            string  'edmtestAnotherMakerWithRecursivePlugin'
    Section 1.1.26.1.1 pluginRecursive PSet description:
        There are multiple possible different descriptions for this ParameterSet
        because it will be used by a helper plugin object contained inside the top level
        module plugin object and the type of the helper plugin object is configurable.
        Or if it is in a vector of ParameterSets it might be used by multiple
        helper plugin objects and each could be configured with a different plugin type.
        Each plugin type could allow a different set of configuration parameters.
        Each subsection of this section has one of the possible descriptions.
        All of these plugins are from the category "PluginDescriptoredmtestAnotherIntFactory".
        The plugin type is specified by the parameter named "type".
        *** The descriptions for this plugin category already started printing above (see Section 1.1.26)! ***
        *** We might still be in the middle of that printout at this point because it might be recursive. ***
        *** We'll not duplicate that printout and skip it. ***
        *** (N.B. If we tried to print it again, we might fall into an infinite recursion.) ***
    Section 1.1.26.2 ParameterSet description for plugin named "edmtestAnotherOneMaker"
        type string  'edmtestAnotherMakerWithRecursivePlugin'
    Section 1.1.26.3 ParameterSet description for plugin named "edmtestAnotherValueMaker"
        value int32   5
        type  string  'edmtestAnotherMakerWithRecursivePlugin'
    Section 1.1.27 plugin5 VPSet description:
        All elements will be validated using the PSet description in Section 1.1.27.1.
        The default VPSet has 2 elements.
        [0]: see Section 1.1.27.2
        [1]: see Section 1.1.27.3
    Section 1.1.27.1 description of PSet used to validate elements of VPSet:
        There are multiple possible different descriptions for this ParameterSet
        because it will be used by a helper plugin object contained inside the top level
        module plugin object and the type of the helper plugin object is configurable.
        Or if it is in a vector of ParameterSets it might be used by multiple
        helper plugin objects and each could be configured with a different plugin type.
        Each plugin type could allow a different set of configuration parameters.
        Each subsection of this section has one of the possible descriptions.
        All of these plugins are from the category "PluginDescriptoredmtestAnotherIntFactory".
        The plugin type is specified by the parameter named "type".
    Section 1.1.27.1.1 ParameterSet description for plugin named "edmtestAnotherMakerWithRecursivePlugin"
        value           int32   5
        pluginRecursive PSet    see Section 1.1.27.1.1.1
        type            string  'edmtestAnotherMakerWithRecursivePlugin'
    Section 1.1.27.1.1.1 pluginRecursive PSet description:
        There are multiple possible different descriptions for this ParameterSet
        because it will be used by a helper plugin object contained inside the top level
        module plugin object and the type of the helper plugin object is configurable.
        Or if it is in a vector of ParameterSets it might be used by multiple
        helper plugin objects and each could be configured with a different plugin type.
        Each plugin type could allow a different set of configuration parameters.
        Each subsection of this section has one of the possible descriptions.
        All of these plugins are from the category "PluginDescriptoredmtestAnotherIntFactory".
        The plugin type is specified by the parameter named "type".
        *** The descriptions for this plugin category already started printing above (see Section 1.1.27.1)! ***
        *** We might still be in the middle of that printout at this point because it might be recursive. ***
        *** We'll not duplicate that printout and skip it. ***
        *** (N.B. If we tried to print it again, we might fall into an infinite recursion.) ***
    Section 1.1.27.1.2 ParameterSet description for plugin named "edmtestAnotherOneMaker"
        type string  'edmtestAnotherMakerWithRecursivePlugin'
    Section 1.1.27.1.3 ParameterSet description for plugin named "edmtestAnotherValueMaker"
        value int32   5
        type  string  'edmtestAnotherMakerWithRecursivePlugin'
    Section 1.1.27.2 PSet description of default VPSet element [0]
        type string  'edmtestAnotherOneMaker'
    Section 1.1.27.3 PSet description of default VPSet element [1]
        type  string  'edmtestAnotherMakerWithRecursivePlugin'
        value int32   11
  1.2 testLabel1
    Description allows anything. If the configured PSet contains illegal parameters,
    then validation will ignore them instead of throwing an exception.
    testingAutoGeneratedCfi untracked bool        optional True
    p_int                   int32                          1
    p_int_untracked         untracked int32                -2147483647
    p_int_opt               int32                 optional 0
    p_int_optuntracked      untracked int32       optional 7
    p_int_opt_nd            int32                 optional none
    p_int_optuntracked_nd   untracked int32       optional none
    vint1                   vint32                         empty
    vint2                   vint32                         (vector size = 1)
      [0]: 2147483647
    vint3                   vint32                         (vector size = 2)
      [0]: 2147483647
      [1]: -2147483647
    vint4                   vint32                         (vector size = 3)
      [0]: 2147483647
      [1]: -2147483647
      [2]: 0
    uint1                   uint32                         4294967295
    uint2                   untracked uint32               0
    vuint1                  vuint32                        empty
    vuint2                  vuint32                        (vector size = 1)
      [0]: 4294967295
    vuint3                  vuint32                        (vector size = 2)
      [0]: 4294967295
      [1]: 0
    vuint4                  vuint32                        (vector size = 3)
      [0]: 4294967295
      [1]: 0
      [2]: 11
    vuint5                  vuint32                        see Section 1.2.1
    int64v1                 int64                          9000000000000000000
    int64v2                 int64                          -9000000000000000000
    int64v3                 int64                          0
    vint64v1                vint64                         empty
    vint64v2                vint64                         (vector size = 1)
      [0]: 9000000000000000000
    vint64v3                vint64                         (vector size = 2)
      [0]: 9000000000000000000
      [1]: -9000000000000000000
    vint64v4                vint64                         (vector size = 3)
      [0]: 9000000000000000000
      [1]: -9000000000000000000
      [2]: 0
    uint64v1                uint64                         18000000000000000000
    uint64v2                untracked uint64               0
    vuint64v1               vuint64                        empty
    vuint64v2               vuint64                        (vector size = 1)
      [0]: 18000000000000000000
    vuint64v3               vuint64                        (vector size = 2)
      [0]: 18000000000000000000
      [1]: 0
    vuint64v4               vuint64                        (vector size = 3)
      [0]: 18000000000000000000
      [1]: 0
      [2]: 11
    doublev1                double                         2.2250738585072014e-308
    doublev2                untracked double               0
    doublev3                untracked double               0.3
    vdoublev1               vdouble                        empty
    vdoublev2               vdouble                        (vector size = 1)
      [0]: 1e+300
    vdoublev3               vdouble                        (vector size = 2)
      [0]: 1e+300
      [1]: 0
    vdoublev4               vdouble                        (vector size = 3)
      [0]: 1e+300
      [1]: 0
      [2]: 11
    vdoublev5               vdouble                        (vector size = 4)
      [0]: 1e+300
      [1]: 0
      [2]: 11
      [3]: 0.3
    boolv1                  bool                           True
    boolv2                  bool                           False
    stringv1                string                         'Hello'
    stringv2                string                         ''
    vstringv1               vstring                        empty
    vstringv2               vstring                        (vector size = 1)
      [0]: 'Hello'
    vstringv3               vstring                        (vector size = 2)
      [0]: 'Hello'
      [1]: 'World'
    vstringv4               vstring                        (vector size = 3)
      [0]: 'Hello'
      [1]: 'World'
      [2]: ''
    eventIDv1               EventID                        11:12
    eventIDv2               EventID                        101:102
    vEventIDv1              VEventID                       empty
    vEventIDv2              VEventID                       (vector size = 1)
      [0]: 1000:1100
    vEventIDv3              VEventID                       (vector size = 2)
      [0]: 1000:1100
      [1]: 10000:11000
    vEventIDv4              VEventID                       (vector size = 3)
      [0]: 1000:1100
      [1]: 10000:11000
      [2]: 100000:110000
    luminosityIDv1          LuminosityBlockID              11:12
    luminosityIDv2          LuminosityBlockID              101:102
    vLuminosityBlockIDv1    VLuminosityBlockID             empty
    vLuminosityBlockIDv2    VLuminosityBlockID             (vector size = 1)
      [0]: 1000:1100
    vLuminosityBlockIDv3    VLuminosityBlockID             (vector size = 2)
      [0]: 1000:1100
      [1]: 10000:11000
    vLuminosityBlockIDv4    VLuminosityBlockID             (vector size = 3)
      [0]: 1000:1100
      [1]: 10000:11000
      [2]: 100000:110000
    lumiRangev1             LuminosityBlockRange           1:1-9:9
    lumiRangev2             LuminosityBlockRange           3:4-1000:1000
    vLumiRangev1            VLuminosityBlockRange          empty
    vLumiRangev2            VLuminosityBlockRange          (vector size = 1)
      [0]: 1:1-9:9
    vLumiRangev3            VLuminosityBlockRange          (vector size = 2)
      [0]: 1:1-9:9
      [1]: 3:4-1000:1000
    eventRangev1            EventRange                     1:1-8:8
    eventRangev2            EventRange                     3:4-1001:1002
    vEventRangev1           VEventRange                    empty
    vEventRangev2           VEventRange                    (vector size = 1)
      [0]: 1:1-8:8
    vEventRangev3           VEventRange                    (vector size = 2)
      [0]: 1:1-8:8
      [1]: 3:4-1001:1002
    inputTagv1              InputTag                       'One:Two:Three'
    inputTagv2              InputTag                       'One:Two'
    inputTagv3              InputTag                       'One'
    inputTagv4              InputTag                       'One::Three'
    vInputTagv1             VInputTag                      empty
    vInputTagv2             VInputTag                      (vector size = 1)
      [0]: 'One:Two:Three'
    vInputTagv3             VInputTag                      (vector size = 2)
      [0]: 'One:Two:Three'
      [1]: 'One:Two'
    vInputTagv4             VInputTag                      (vector size = 3)
      [0]: 'One:Two:Three'
      [1]: 'One:Two'
      [2]: 'One'
    vInputTagv5             VInputTag                      (vector size = 4)
      [0]: 'One:Two:Three'
      [1]: 'One:Two'
      [2]: 'One'
      [3]: 'One::Three'
    esinputTagv1            ESInputTag                     'One:Two'
    esinputTagv2            ESInputTag                     'One:'
    esinputTagv3            ESInputTag                     ':Two'
    vESInputTagv1           VESInputTag                    empty
    vESInputTagv2           VESInputTag                    (vector size = 1)
      [0]: 'One:Two'
    vESInputTagv3           VESInputTag                    (vector size = 2)
      [0]: 'One:Two'
      [1]: 'One:'
    vESInputTagv4           VESInputTag                    (vector size = 3)
      [0]: 'One:Two'
      [1]: 'One:'
      [2]: ':Two'
    fileInPath              FileInPath                     'FWCore/Integration/plugins/ProducerWithPSetDesc.cc'
    Empty group description
    bar                     PSet                           see Section 1.2.2
    test101                 PSet                  optional see Section 1.2.3 (do not write to cfi)
    test102                 VPSet                 optional see Section 1.2.4 (do not write to cfi)
    test103                 VPSet                 optional see Section 1.2.5 (do not write to cfi)
    test104                 untracked VPSet                see Section 1.2.6
    test105                 untracked VPSet                see Section 1.2.7
    test1                   double                         0.1
    test2                   double                optional 0.2
    test3                   double                optional none (do not write to cfi)
    AND group: optional see Section 1.2.8
    oiswitch (switch)       int32                 optional see Section 1.2.9
    testDeeplyNested2       PSet                           see Section 1.2.10
    bars                    VPSet                          see Section 1.2.11
    subpset                 PSet                  optional see Section 1.2.12
    wildcardPset            PSet                           see Section 1.2.13
    switchPset              PSet                           see Section 1.2.14
    xorPset                 PSet                           see Section 1.2.15
    orPset                  PSet                           see Section 1.2.16
    andPset                 PSet                           see Section 1.2.17
    ifExistsPset            PSet                           see Section 1.2.18
    allowedLabelsPset       PSet                           see Section 1.2.19
    noDefaultPset3          PSet                           see Section 1.2.20
    noDefaultPset4          PSet                           see Section 1.2.21
    plugin                  PSet                           see Section 1.2.22
    plugin1                 PSet                           see Section 1.2.23
    plugin2                 VPSet                          see Section 1.2.24
    plugin3                 VPSet                          see Section 1.2.25
    plugin4                 PSet                           see Section 1.2.26
    plugin5                 VPSet                          see Section 1.2.27
    noDefaultPset1          PSet                           see Section 1.2.28
    noDefaultPset2          PSet                           see Section 1.2.29
    mightGet                untracked vstring     optional none
    Section 1.2.1 vuint5 default contents: (vector size = 6)
        [0]: 4294967295
        [1]: 0
        [2]: 11
        [3]: 21
        [4]: 31
        [5]: 41
    Section 1.2.2 bar PSet description:
        Drinks   uint32                    5
        uDrinks  untracked uint32          5
        oDrinks  uint32           optional 5
        ouDrinks untracked uint32 optional 5
    Section 1.2.3 test101 PSet description:
        Drinks   uint32                    5
        uDrinks  untracked uint32          5
        oDrinks  uint32           optional 5
        ouDrinks untracked uint32 optional 5
    Section 1.2.4 test102 VPSet description:
        All elements will be validated using the PSet description in Section 1.2.4.1.
        Does not have a default VPSet.
    Section 1.2.4.1 description of PSet used to validate elements of VPSet:
        Description is empty
    Section 1.2.5 test103 VPSet description:
        All elements will be validated using the PSet description in Section 1.2.5.1.
        Does not have a default VPSet.
    Section 1.2.5.1 description of PSet used to validate elements of VPSet:
        Drinks     uint32                    5
        uDrinks    untracked uint32          5
        oDrinks    uint32           optional 5
        ouDrinks   untracked uint32 optional 5
        ndoDrinks  uint32           optional none
        ndouDrinks untracked uint32 optional none
    Section 1.2.6 test104 VPSet description:
        All elements will be validated using the PSet description in Section 1.2.6.1.
        The default VPSet has 1 element.
        [0]: see Section 1.2.6.2
    Section 1.2.6.1 description of PSet used to validate elements of VPSet:
        Drinks     uint32                    5
        uDrinks    untracked uint32          5
        oDrinks    uint32           optional 5
        ouDrinks   untracked uint32 optional 5
        ndoDrinks  uint32           optional none
        ndouDrinks untracked uint32 optional none
    Section 1.2.6.2 PSet description of default VPSet element [0]
        Description is empty
    Section 1.2.7 test105 VPSet description:
        All elements will be validated using the PSet description in Section 1.2.7.1.
        The default VPSet is empty.
    Section 1.2.7.1 description of PSet used to validate elements of VPSet:
        Drinks     uint32                    5
        uDrinks    untracked uint32          5
        oDrinks    uint32           optional 5
        ouDrinks   untracked uint32 optional 5
        ndoDrinks  uint32           optional none
        ndouDrinks untracked uint32 optional none
    Section 1.2.8 AND group description:
    This optional AND group requires all or none of the following to be in the PSet
        testA string  'fooA'
        testB int32   100
        testC int32   101
    Section 1.2.9 oiswitch (switch):
        switch:
        oiswitch int32  optional 1
        if oiswitch = 0
        oivalue  int32           100
        if oiswitch = 1
        AND group: see Section 1.2.9.1
        if oiswitch = 2
        oivalue  string          '102'
    Section 1.2.9.1 AND group description:
    This AND group requires all of the following to be in the PSet
        oivalue1 double  101
        oivalue2 double  101
    Section 1.2.10 testDeeplyNested2 PSet description:
        bswitch (switch)   bool            see Section 1.2.10.1
        iswitch (switch)   int32           see Section 1.2.10.2
        sswitch (switch)   string          see Section 1.2.10.3
        ndiswitch (switch) int32  optional (do not write to cfi) see Section 1.2.10.4
        testint            int32           1000
    Section 1.2.10.1 bswitch (switch):
        switch:
        bswitch bool   False
        if bswitch = False
        AND group: see Section 1.2.10.1.1
        if bswitch = True
        bvalue  int32  100
    Section 1.2.10.1.1 AND group description:
    This AND group requires all of the following to be in the PSet
        bvalue1 double  101
        bvalue2 double  101
    Section 1.2.10.2 iswitch (switch):
        switch:
        iswitch int32   1
        if iswitch = 0
        ivalue  int32   100
        if iswitch = 1
        AND group: see Section 1.2.10.2.1
        if iswitch = 2
        ivalue  string  '102'
    Section 1.2.10.2.1 AND group description:
    This AND group requires all of the following to be in the PSet
        ivalue1 double            101
        ivalue2 untracked double  101
    Section 1.2.10.3 sswitch (switch):
        switch:
        sswitch string  '1'
        if sswitch = "0"
        svalue  int32   100
        if sswitch = "1"
        AND group: see Section 1.2.10.3.1
        if sswitch = "2"
        svalue  string  '102'
    Section 1.2.10.3.1 AND group description:
    This AND group requires all of the following to be in the PSet
        svalue1 double  101
        svalue2 double  101
    Section 1.2.10.4 ndiswitch (switch):
        switch:
        ndiswitch int32  optional 1
        if ndiswitch = 0
        ndivalue  int32           100
        if ndiswitch = 1
        AND group: see Section 1.2.10.4.1
        if ndiswitch = 2
        ndivalue  string          '102'
    Section 1.2.10.4.1 AND group description:
    This AND group requires all of the following to be in the PSet
        ndivalue1 double  101
        ndivalue2 double  101
    Section 1.2.11 bars VPSet description:
        All elements will be validated using the PSet description in Section 1.2.11.1.
        The default VPSet has 2 elements.
        [0]: see Section 1.2.11.2
        [1]: see Section 1.2.11.3
    Section 1.2.11.1 description of PSet used to validate elements of VPSet:
        Drinks           uint32                    5
        uDrinks          untracked uint32          5
        oDrinks          uint32           optional 5
        ouDrinks         untracked uint32 optional 5
        ndoDrinks        uint32           optional none
        ndouDrinks       untracked uint32 optional none
        testDeeplyNested PSet                      see Section 1.2.11.1.1
        anotherVPSet     VPSet                     see Section 1.2.11.1.2
    Section 1.2.11.1.1 testDeeplyNested PSet description:
        bswitch (switch)   bool            see Section 1.2.11.1.1.1
        iswitch (switch)   int32           see Section 1.2.11.1.1.2
        sswitch (switch)   string          see Section 1.2.11.1.1.3
        ndiswitch (switch) int32  optional (do not write to cfi) see Section 1.2.11.1.1.4
        testint            int32           1000
    Section 1.2.11.1.1.1 bswitch (switch):
        switch:
        bswitch bool   False
        if bswitch = False
        AND group: see Section 1.2.11.1.1.1.1
        if bswitch = True
        bvalue  int32  100
    Section 1.2.11.1.1.1.1 AND group description:
    This AND group requires all of the following to be in the PSet
        bvalue1 double  101
        bvalue2 double  101
    Section 1.2.11.1.1.2 iswitch (switch):
        switch:
        iswitch int32   1
        if iswitch = 0
        ivalue  int32   100
        if iswitch = 1
        AND group: see Section 1.2.11.1.1.2.1
        if iswitch = 2
        ivalue  string  '102'
    Section 1.2.11.1.1.2.1 AND group description:
    This AND group requires all of the following to be in the PSet
        ivalue1 double            101
        ivalue2 untracked double  101
    Section 1.2.11.1.1.3 sswitch (switch):
        switch:
        sswitch string  '1'
        if sswitch = "0"
        svalue  int32   100
        if sswitch = "1"
        AND group: see Section 1.2.11.1.1.3.1
        if sswitch = "2"
        svalue  string  '102'
    Section 1.2.11.1.1.3.1 AND group description:
    This AND group requires all of the following to be in the PSet
        svalue1 double  101
        svalue2 double  101
    Section 1.2.11.1.1.4 ndiswitch (switch):
        switch:
        ndiswitch int32  optional 1
        if ndiswitch = 0
        ndivalue  int32           100
        if ndiswitch = 1
        AND group: see Section 1.2.11.1.1.4.1
        if ndiswitch = 2
        ndivalue  string          '102'
    Section 1.2.11.1.1.4.1 AND group description:
    This AND group requires all of the following to be in the PSet
        ndivalue1 double  101
        ndivalue2 double  101
    Section 1.2.11.1.2 anotherVPSet VPSet description:
        All elements will be validated using the PSet description in Section 1.2.11.1.2.1.
        The default VPSet has 2 elements.
        [0]: see Section 1.2.11.1.2.2
        [1]: see Section 1.2.11.1.2.3
    Section 1.2.11.1.2.1 description of PSet used to validate elements of VPSet:
        xvalue int32  7
    Section 1.2.11.1.2.2 PSet description of default VPSet element [0]
        Description is empty
    Section 1.2.11.1.2.3 PSet description of default VPSet element [1]
        xvalue int32  100
    Section 1.2.11.2 PSet description of default VPSet element [0]
        oDrinks uint32  11
    Section 1.2.11.3 PSet description of default VPSet element [1]
        ndouDrinks       untracked uint32  11
        oDrinks          uint32            11
        ouDrinks         untracked uint32  11
        testDeeplyNested PSet              see Section 1.2.11.3.1
        anotherVPSet     VPSet             see Section 1.2.11.3.2
    Section 1.2.11.3.1 testDeeplyNested PSet description:
        testint int32  2
    Section 1.2.11.3.2  VPSet description for VPSet that is part of the default of a containing VPSet:
        The default VPSet has 2 elements.
        [0]: see Section 1.2.11.3.2.1
        [1]: see Section 1.2.11.3.2.2
    Section 1.2.11.3.2.1 PSet description of default VPSet element [0]
        Description is empty
    Section 1.2.11.3.2.2 PSet description of default VPSet element [1]
        xvalue int32  17
    Section 1.2.12 subpset PSet description:
        xvalue int32           11
        bar    untracked PSet  see Section 1.2.12.1
    Section 1.2.12.1 bar PSet description:
        Drinks   uint32                    5
        uDrinks  untracked uint32          5
        oDrinks  uint32           optional 5
        ouDrinks untracked uint32 optional 5
    Section 1.2.13 wildcardPset PSet description:
        p_uint_opt  uint32           optional 0
        wildcard: * int32            optional (require zero or more)
        wildcard: * untracked double optional (require zero or more)
        wildcard: * PSet             optional (require exactly one)
        wildcard: * PSet             optional (require at least one)
          (see Section 1.2.13.1)
        wildcard: * VPSet            optional (require exactly one)
        wildcard: * VPSet            optional (require at least one)
          (see Section 1.2.13.2)
    Section 1.2.13.1 description of PSet matching wildcard:
        Drinks      uint32                    5
    Section 1.2.13.2 description used to validate all PSets which are in the VPSet matching the wildcard:
        Drinks      uint32                    5
        Drinks2     uint32                    11
    Section 1.2.14 switchPset PSet description:
        iswitch (switch)      int32          see Section 1.2.14.1
        addTeVRefits (switch) bool           see Section 1.2.14.2
    Section 1.2.14.1 iswitch (switch):
        switch:
        iswitch int32   1
        if iswitch = 0
        ivalue  vint32  (vector size = 2)
          [0]: 21
          [1]: 22
        if iswitch = 1
        AND group: see Section 1.2.14.1.1
        if iswitch = 2
        ivalue  string  '102'
    Section 1.2.14.1.1 AND group description:
    This AND group requires all of the following to be in the PSet
        ivalue1 double  101
        ivalue2 double  101
    Section 1.2.14.2 addTeVRefits (switch):
        switch:
        addTeVRefits bool  True
        if addTeVRefits = False
        Empty group description
        if addTeVRefits = True
        AND group: see Section 1.2.14.2.1
    Section 1.2.14.2.1 AND group description:
    This AND group requires all of the following to be in the PSet
        pickySrc InputTag  ''
        tpfmsSrc InputTag  ''
    Section 1.2.15 xorPset PSet description:
        XOR group: see Section 1.2.15.1
        XOR group: see Section 1.2.15.2
        XOR group: optional (do not write to cfi) see Section 1.2.15.3
        XOR group: see Section 1.2.15.4
    Section 1.2.15.1 XOR group description:
    This XOR group requires exactly one of the following to be in the PSet
        name string  '11'
        name uint32  11
    Section 1.2.15.2 XOR group description:
    This XOR group requires exactly one of the following to be in the PSet
        name1 string  '11'
        name1 uint32  11
    Section 1.2.15.3 XOR group description:
    This optional XOR group requires exactly one or none of the following to be in the PSet
        name2 string  '11'
        name2 uint32  11
    Section 1.2.15.4 XOR group description:
    This XOR group requires exactly one of the following to be in the PSet
        name3   string  '11'
        name4   uint32  11
        test101 PSet    see Section 1.2.15.4.1
        test103 VPSet   see Section 1.2.15.4.2
    Section 1.2.15.4.1 test101 PSet description:
        Drinks   uint32                    5
        uDrinks  untracked uint32          5
        oDrinks  uint32           optional 5
        ouDrinks untracked uint32 optional 5
    Section 1.2.15.4.2 test103 VPSet description:
        All elements will be validated using the PSet description in Section 1.2.15.4.2.1.
        Does not have a default VPSet.
    Section 1.2.15.4.2.1 description of PSet used to validate elements of VPSet:
        Drinks     uint32                    5
        uDrinks    untracked uint32          5
        oDrinks    uint32           optional 5
        ouDrinks   untracked uint32 optional 5
        ndoDrinks  uint32           optional none
        ndouDrinks untracked uint32 optional none
    Section 1.2.16 orPset PSet description:
        OR group: see Section 1.2.16.1
        OR group: see Section 1.2.16.2
        OR group: optional (do not write to cfi) see Section 1.2.16.3
    Section 1.2.16.1 OR group description:
    This OR group requires at least one of the following to be in the PSet
        x1 string  '11'
        x2 uint32  11
    Section 1.2.16.2 OR group description:
    This OR group requires at least one of the following to be in the PSet
        y1 string  '11'
        y2 uint32  11
    Section 1.2.16.3 OR group description:
    This optional OR group requires at least one or none of the following to be in the PSet
        z1      string  '11'
        z2      uint32  11
        test101 PSet    see Section 1.2.16.3.1
        test103 VPSet   see Section 1.2.16.3.2
    Section 1.2.16.3.1 test101 PSet description:
        Drinks   uint32                    5
        uDrinks  untracked uint32          5
        oDrinks  uint32           optional 5
        ouDrinks untracked uint32 optional 5
    Section 1.2.16.3.2 test103 VPSet description:
        All elements will be validated using the PSet description in Section 1.2.16.3.2.1.
        Does not have a default VPSet.
    Section 1.2.16.3.2.1 description of PSet used to validate elements of VPSet:
        Drinks     uint32                    5
        uDrinks    untracked uint32          5
        oDrinks    uint32           optional 5
        ouDrinks   untracked uint32 optional 5
        ndoDrinks  uint32           optional none
        ndouDrinks untracked uint32 optional none
    Section 1.2.17 andPset PSet description:
        AND group: see Section 1.2.17.1
        AND group: see Section 1.2.17.2
        AND group: see Section 1.2.17.3
        AND group: optional (do not write to cfi) see Section 1.2.17.4
        AND group: optional see Section 1.2.17.5
    Section 1.2.17.1 AND group description:
    This AND group requires all of the following to be in the PSet
        x1 string  '11'
        x2 uint32  11
    Section 1.2.17.2 AND group description:
    This AND group requires all of the following to be in the PSet
        y1 string  '11'
        y2 uint32  11
    Section 1.2.17.3 AND group description:
    This AND group requires all of the following to be in the PSet
        z1 string  '11'
        z2 uint32  11
    Section 1.2.17.4 AND group description:
    This optional AND group requires all or none of the following to be in the PSet
        a1 string  '11'
        a2 uint32  11
    Section 1.2.17.5 AND group description:
    This optional AND group requires all or none of the following to be in the PSet
        b1 string  '11'
        b2 uint32  11
        b3 uint32  11
        b4 uint32  11
        b5 uint32  11
        b6 uint32  11
    Section 1.2.18 ifExistsPset PSet description:
        IfExists pair: see Section 1.2.18.1
        IfExists pair: optional (do not write to cfi) see Section 1.2.18.2
        IfExists pair: see Section 1.2.18.3
    Section 1.2.18.1 IfExists pair description:
    If the first parameter exists, then the second is required to exist
        x1 uint32  11
        x2 string  '11'
    Section 1.2.18.2 optional IfExists pair description:
    If the first parameter exists, then the second is allowed to exist
        y1 uint32  11
        y2 string  '11'
    Section 1.2.18.3 IfExists pair description:
    If the first parameter exists, then the second is required to exist
        z1 uint32  11
        z2 string  '11'
    Section 1.2.19 allowedLabelsPset PSet description:
        p_int_opt int32 optional 0
        testAllowedLabels (list of allowed labels) see Section 1.2.19.1
        testAllowedLabelsUntracked (list of allowed labels) see Section 1.2.19.2
        testOptAllowedLabels (list of allowed labels) optional (do not write to cfi) see Section 1.2.19.3
        testOptAllowedLabelsUntracked (list of allowed labels) optional (do not write to cfi) see Section 1.2.19.4
        testWithSet (list of allowed labels) optional see Section 1.2.19.5
        testWithVectorOfSets (list of allowed labels) optional see Section 1.2.19.6
    Section 1.2.19.1 testAllowedLabels - allowed labels description
    The following parameter contains a list of parameter labels
    which are allowed to be in the PSet
        testAllowedLabels vstring  empty
        type of allowed parameters: int32
    Section 1.2.19.2 testAllowedLabelsUntracked - allowed labels description
    The following parameter contains a list of parameter labels
    which are allowed to be in the PSet
        testAllowedLabelsUntracked untracked vstring  empty
        type of allowed parameters: untracked uint32
    Section 1.2.19.3 testOptAllowedLabels - allowed labels description
    The following parameter contains a list of parameter labels
    which are allowed to be in the PSet
        testOptAllowedLabels vstring optional empty
        type of allowed parameters: int32
    Section 1.2.19.4 testOptAllowedLabelsUntracked - allowed labels description
    The following parameter contains a list of parameter labels
    which are allowed to be in the PSet
        testOptAllowedLabelsUntracked untracked vstring optional empty
        type of allowed parameters: untracked uint32
    Section 1.2.19.5 testWithSet - allowed labels description
    The following parameter contains a list of parameter labels
    which are allowed to be in the PSet
        testWithSet untracked vstring optional empty
        type of allowed parameters: untracked PSet
        see Section 1.2.19.5.1
    Section 1.2.19.5.1 PSet description:
        Drinks    uint32                    5
        uDrinks   untracked uint32          5
        oDrinks   uint32           optional 5
        ouDrinks  untracked uint32 optional 5
    Section 1.2.19.6 testWithVectorOfSets - allowed labels description
    The following parameter contains a list of parameter labels
    which are allowed to be in the PSet
        testWithVectorOfSets untracked vstring optional empty
        type of allowed parameters: untracked VPSet
        see Section 1.2.19.6.1
    Section 1.2.19.6.1 PSet description used to validate all elements of VPSet's:
        Drinks    uint32                    5
        uDrinks   untracked uint32          5
        oDrinks   uint32           optional 5
        ouDrinks  untracked uint32 optional 5
    Section 1.2.20 noDefaultPset3 PSet description:
        noDefault1  int32                 optional none
        noDefault2  vint32                optional none
        noDefault3  uint32                optional none
        noDefault4  vuint32               optional none
        noDefault5  int64                 optional none
        noDefault6  vint64                optional none
        noDefault7  uint64                optional none
        noDefault8  vuint64               optional none
        noDefault9  double                optional none
        noDefault10 vdouble               optional none
        noDefault11 bool                  optional none
        noDefault12 string                optional none
        noDefault13 vstring               optional none
        noDefault14 EventID               optional none
        noDefault15 VEventID              optional none
        noDefault16 LuminosityBlockID     optional none
        noDefault17 VLuminosityBlockID    optional none
        noDefault18 InputTag              optional none
        noDefault19 VInputTag             optional none
        noDefault20 FileInPath            optional none
        noDefault21 LuminosityBlockRange  optional none
        noDefault22 VLuminosityBlockRange optional none
        noDefault23 EventRange            optional none
        noDefault24 VEventRange           optional none
    Section 1.2.21 noDefaultPset4 PSet description:
        noDefault1  untracked int32                 optional none
        noDefault2  untracked vint32                optional none
        noDefault3  untracked uint32                optional none
        noDefault4  untracked vuint32               optional none
        noDefault5  untracked int64                 optional none
        noDefault6  untracked vint64                optional none
        noDefault7  untracked uint64                optional none
        noDefault8  untracked vuint64               optional none
        noDefault9  untracked double                optional none
        noDefault10 untracked vdouble               optional none
        noDefault11 untracked bool                  optional none
        noDefault12 untracked string                optional none
        noDefault13 untracked vstring               optional none
        noDefault14 untracked EventID               optional none
        noDefault15 untracked VEventID              optional none
        noDefault16 untracked LuminosityBlockID     optional none
        noDefault17 untracked VLuminosityBlockID    optional none
        noDefault18 untracked InputTag              optional none
        noDefault19 untracked VInputTag             optional none
        noDefault20 untracked FileInPath            optional none
        noDefault21 untracked LuminosityBlockRange  optional none
        noDefault22 untracked VLuminosityBlockRange optional none
        noDefault23 untracked EventRange            optional none
        noDefault24 untracked VEventRange           optional none
    Section 1.2.22 plugin PSet description:
        There are multiple possible different descriptions for this ParameterSet
        because it will be used by a helper plugin object contained inside the top level
        module plugin object and the type of the helper plugin object is configurable.
        Or if it is in a vector of ParameterSets it might be used by multiple
        helper plugin objects and each could be configured with a different plugin type.
        Each plugin type could allow a different set of configuration parameters.
        Each subsection of this section has one of the possible descriptions.
        All of these plugins are from the category "PluginDescriptoredmtestAnotherIntFactory".
        The plugin type is specified by the parameter named "type".
    Section 1.2.22.1 ParameterSet description for plugin named "edmtestAnotherMakerWithRecursivePlugin"
        value           int32   5
        pluginRecursive PSet    see Section 1.2.22.1.1
        type            string  'edmtestAnotherValueMaker'
    Section 1.2.22.1.1 pluginRecursive PSet description:
        There are multiple possible different descriptions for this ParameterSet
        because it will be used by a helper plugin object contained inside the top level
        module plugin object and the type of the helper plugin object is configurable.
        Or if it is in a vector of ParameterSets it might be used by multiple
        helper plugin objects and each could be configured with a different plugin type.
        Each plugin type could allow a different set of configuration parameters.
        Each subsection of this section has one of the possible descriptions.
        All of these plugins are from the category "PluginDescriptoredmtestAnotherIntFactory".
        The plugin type is specified by the parameter named "type".
        *** The descriptions for this plugin category already started printing above (see Section 1.2.22)! ***
        *** We might still be in the middle of that printout at this point because it might be recursive. ***
        *** We'll not duplicate that printout and skip it. ***
        *** (N.B. If we tried to print it again, we might fall into an infinite recursion.) ***
    Section 1.2.22.2 ParameterSet description for plugin named "edmtestAnotherOneMaker"
        type string  'edmtestAnotherValueMaker'
    Section 1.2.22.3 ParameterSet description for plugin named "edmtestAnotherValueMaker"
        value int32   5
        type  string  'edmtestAnotherValueMaker'
    Section 1.2.23 plugin1 PSet description:
        There are multiple possible different descriptions for this ParameterSet
        because it will be used by a helper plugin object contained inside the top level
        module plugin object and the type of the helper plugin object is configurable.
        Or if it is in a vector of ParameterSets it might be used by multiple
        helper plugin objects and each could be configured with a different plugin type.
        Each plugin type could allow a different set of configuration parameters.
        Each subsection of this section has one of the possible descriptions.
        All of these plugins are from the category "PluginDescriptoredmtestAnotherIntFactory".
        The plugin type is specified by the parameter named "type".
    Section 1.2.23.1 ParameterSet description for plugin named "edmtestAnotherMakerWithRecursivePlugin"
        value           int32   5
        pluginRecursive PSet    see Section 1.2.23.1.1
        type            string  none
    Section 1.2.23.1.1 pluginRecursive PSet description:
        There are multiple possible different descriptions for this ParameterSet
        because it will be used by a helper plugin object contained inside the top level
        module plugin object and the type of the helper plugin object is configurable.
        Or if it is in a vector of ParameterSets it might be used by multiple
        helper plugin objects and each could be configured with a different plugin type.
        Each plugin type could allow a different set of configuration parameters.
        Each subsection of this section has one of the possible descriptions.
        All of these plugins are from the category "PluginDescriptoredmtestAnotherIntFactory".
        The plugin type is specified by the parameter named "type".
        *** The descriptions for this plugin category already started printing above (see Section 1.2.23)! ***
        *** We might still be in the middle of that printout at this point because it might be recursive. ***
        *** We'll not duplicate that printout and skip it. ***
        *** (N.B. If we tried to print it again, we might fall into an infinite recursion.) ***
    Section 1.2.23.2 ParameterSet description for plugin named "edmtestAnotherOneMaker"
        type string  none
    Section 1.2.23.3 ParameterSet description for plugin named "edmtestAnotherValueMaker"
        value int32   5
        type  string  none
    Section 1.2.24 plugin2 VPSet description:
        All elements will be validated using the PSet description in Section 1.2.24.1.
        The default VPSet is empty.
    Section 1.2.24.1 description of PSet used to validate elements of VPSet:
        There are multiple possible different descriptions for this ParameterSet
        because it will be used by a helper plugin object contained inside the top level
        module plugin object and the type of the helper plugin object is configurable.
        Or if it is in a vector of ParameterSets it might be used by multiple
        helper plugin objects and each could be configured with a different plugin type.
        Each plugin type could allow a different set of configuration parameters.
        Each subsection of this section has one of the possible descriptions.
        All of these plugins are from the category "PluginDescriptoredmtestAnotherIntFactory".
        The plugin type is specified by the parameter named "type".
    Section 1.2.24.1.1 ParameterSet description for plugin named "edmtestAnotherMakerWithRecursivePlugin"
        value           int32   5
        pluginRecursive PSet    see Section 1.2.24.1.1.1
        type            string  none
    Section 1.2.24.1.1.1 pluginRecursive PSet description:
        There are multiple possible different descriptions for this ParameterSet
        because it will be used by a helper plugin object contained inside the top level
        module plugin object and the type of the helper plugin object is configurable.
        Or if it is in a vector of ParameterSets it might be used by multiple
        helper plugin objects and each could be configured with a different plugin type.
        Each plugin type could allow a different set of configuration parameters.
        Each subsection of this section has one of the possible descriptions.
        All of these plugins are from the category "PluginDescriptoredmtestAnotherIntFactory".
        The plugin type is specified by the parameter named "type".
        *** The descriptions for this plugin category already started printing above (see Section 1.2.24.1)! ***
        *** We might still be in the middle of that printout at this point because it might be recursive. ***
        *** We'll not duplicate that printout and skip it. ***
        *** (N.B. If we tried to print it again, we might fall into an infinite recursion.) ***
    Section 1.2.24.1.2 ParameterSet description for plugin named "edmtestAnotherOneMaker"
        type string  none
    Section 1.2.24.1.3 ParameterSet description for plugin named "edmtestAnotherValueMaker"
        value int32   5
        type  string  none
    Section 1.2.25 plugin3 VPSet description:
        All elements will be validated using the PSet description in Section 1.2.25.1.
        The default VPSet has 2 elements.
        [0]: see Section 1.2.25.2
        [1]: see Section 1.2.25.3
    Section 1.2.25.1 description of PSet used to validate elements of VPSet:
        There are multiple possible different descriptions for this ParameterSet
        because it will be used by a helper plugin object contained inside the top level
        module plugin object and the type of the helper plugin object is configurable.
        Or if it is in a vector of ParameterSets it might be used by multiple
        helper plugin objects and each could be configured with a different plugin type.
        Each plugin type could allow a different set of configuration parameters.
        Each subsection of this section has one of the possible descriptions.
        All of these plugins are from the category "PluginDescriptoredmtestAnotherIntFactory".
        The plugin type is specified by the parameter named "type".
    Section 1.2.25.1.1 ParameterSet description for plugin named "edmtestAnotherMakerWithRecursivePlugin"
        value           int32   5
        pluginRecursive PSet    see Section 1.2.25.1.1.1
        type            string  none
    Section 1.2.25.1.1.1 pluginRecursive PSet description:
        There are multiple possible different descriptions for this ParameterSet
        because it will be used by a helper plugin object contained inside the top level
        module plugin object and the type of the helper plugin object is configurable.
        Or if it is in a vector of ParameterSets it might be used by multiple
        helper plugin objects and each could be configured with a different plugin type.
        Each plugin type could allow a different set of configuration parameters.
        Each subsection of this section has one of the possible descriptions.
        All of these plugins are from the category "PluginDescriptoredmtestAnotherIntFactory".
        The plugin type is specified by the parameter named "type".
        *** The descriptions for this plugin category already started printing above (see Section 1.2.25.1)! ***
        *** We might still be in the middle of that printout at this point because it might be recursive. ***
        *** We'll not duplicate that printout and skip it. ***
        *** (N.B. If we tried to print it again, we might fall into an infinite recursion.) ***
    Section 1.2.25.1.2 ParameterSet description for plugin named "edmtestAnotherOneMaker"
        type string  none
    Section 1.2.25.1.3 ParameterSet description for plugin named "edmtestAnotherValueMaker"
        value int32   5
        type  string  none
    Section 1.2.25.2 PSet description of default VPSet element [0]
        type string  'edmtestAnotherOneMaker'
    Section 1.2.25.3 PSet description of default VPSet element [1]
        type  string  'edmtestAnotherValueMaker'
        value int32   11
    Section 1.2.26 plugin4 PSet description:
        There are multiple possible different descriptions for this ParameterSet
        because it will be used by a helper plugin object contained inside the top level
        module plugin object and the type of the helper plugin object is configurable.
        Or if it is in a vector of ParameterSets it might be used by multiple
        helper plugin objects and each could be configured with a different plugin type.
        Each plugin type could allow a different set of configuration parameters.
        Each subsection of this section has one of the possible descriptions.
        All of these plugins are from the category "PluginDescriptoredmtestAnotherIntFactory".
        The plugin type is specified by the parameter named "type".
    Section 1.2.26.1 ParameterSet description for plugin named "edmtestAnotherMakerWithRecursivePlugin"
        value           int32   5
        pluginRecursive PSet    see Section 1.2.26.1.1
        type            string  'edmtestAnotherMakerWithRecursivePlugin'
    Section 1.2.26.1.1 pluginRecursive PSet description:
        There are multiple possible different descriptions for this ParameterSet
        because it will be used by a helper plugin object contained inside the top level
        module plugin object and the type of the helper plugin object is configurable.
        Or if it is in a vector of ParameterSets it might be used by multiple
        helper plugin objects and each could be configured with a different plugin type.
        Each plugin type could allow a different set of configuration parameters.
        Each subsection of this section has one of the possible descriptions.
        All of these plugins are from the category "PluginDescriptoredmtestAnotherIntFactory".
        The plugin type is specified by the parameter named "type".
        *** The descriptions for this plugin category already started printing above (see Section 1.2.26)! ***
        *** We might still be in the middle of that printout at this point because it might be recursive. ***
        *** We'll not duplicate that printout and skip it. ***
        *** (N.B. If we tried to print it again, we might fall into an infinite recursion.) ***
    Section 1.2.26.2 ParameterSet description for plugin named "edmtestAnotherOneMaker"
        type string  'edmtestAnotherMakerWithRecursivePlugin'
    Section 1.2.26.3 ParameterSet description for plugin named "edmtestAnotherValueMaker"
        value int32   5
        type  string  'edmtestAnotherMakerWithRecursivePlugin'
    Section 1.2.27 plugin5 VPSet description:
        All elements will be validated using the PSet description in Section 1.2.27.1.
        The default VPSet has 2 elements.
        [0]: see Section 1.2.27.2
        [1]: see Section 1.2.27.3
    Section 1.2.27.1 description of PSet used to validate elements of VPSet:
        There are multiple possible different descriptions for this ParameterSet
        because it will be used by a helper plugin object contained inside the top level
        module plugin object and the type of the helper plugin object is configurable.
        Or if it is in a vector of ParameterSets it might be used by multiple
        helper plugin objects and each could be configured with a different plugin type.
        Each plugin type could allow a different set of configuration parameters.
        Each subsection of this section has one of the possible descriptions.
        All of these plugins are from the category "PluginDescriptoredmtestAnotherIntFactory".
        The plugin type is specified by the parameter named "type".
    Section 1.2.27.1.1 ParameterSet description for plugin named "edmtestAnotherMakerWithRecursivePlugin"
        value           int32   5
        pluginRecursive PSet    see Section 1.2.27.1.1.1
        type            string  'edmtestAnotherMakerWithRecursivePlugin'
    Section 1.2.27.1.1.1 pluginRecursive PSet description:
        There are multiple possible different descriptions for this ParameterSet
        because it will be used by a helper plugin object contained inside the top level
        module plugin object and the type of the helper plugin object is configurable.
        Or if it is in a vector of ParameterSets it might be used by multiple
        helper plugin objects and each could be configured with a different plugin type.
        Each plugin type could allow a different set of configuration parameters.
        Each subsection of this section has one of the possible descriptions.
        All of these plugins are from the category "PluginDescriptoredmtestAnotherIntFactory".
        The plugin type is specified by the parameter named "type".
        *** The descriptions for this plugin category already started printing above (see Section 1.2.27.1)! ***
        *** We might still be in the middle of that printout at this point because it might be recursive. ***
        *** We'll not duplicate that printout and skip it. ***
        *** (N.B. If we tried to print it again, we might fall into an infinite recursion.) ***
    Section 1.2.27.1.2 ParameterSet description for plugin named "edmtestAnotherOneMaker"
        type string  'edmtestAnotherMakerWithRecursivePlugin'
    Section 1.2.27.1.3 ParameterSet description for plugin named "edmtestAnotherValueMaker"
        value int32   5
        type  string  'edmtestAnotherMakerWithRecursivePlugin'
    Section 1.2.27.2 PSet description of default VPSet element [0]
        type string  'edmtestAnotherOneMaker'
    Section 1.2.27.3 PSet description of default VPSet element [1]
        type  string  'edmtestAnotherMakerWithRecursivePlugin'
        value int32   11
    Section 1.2.28 noDefaultPset1 PSet description:
        noDefault1  int32                  none
        noDefault2  vint32                 none
        noDefault3  uint32                 none
        noDefault4  vuint32                none
        noDefault5  int64                  none
        noDefault6  vint64                 none
        noDefault7  uint64                 none
        noDefault8  vuint64                none
        noDefault9  double                 none
        noDefault10 vdouble                none
        noDefault11 bool                   none
        noDefault12 string                 none
        noDefault13 vstring                none
        noDefault14 EventID                none
        noDefault15 VEventID               none
        noDefault16 LuminosityBlockID      none
        noDefault17 VLuminosityBlockID     none
        noDefault18 InputTag               none
        noDefault19 VInputTag              none
        noDefault20 FileInPath             none
        noDefault21 LuminosityBlockRange   none
        noDefault22 VLuminosityBlockRange  none
        noDefault23 EventRange             none
        noDefault24 VEventRange            none
    Section 1.2.29 noDefaultPset2 PSet description:
        noDefault1  untracked int32                  none
        noDefault2  untracked vint32                 none
        noDefault3  untracked uint32                 none
        noDefault4  untracked vuint32                none
        noDefault5  untracked int64                  none
        noDefault6  untracked vint64                 none
        noDefault7  untracked uint64                 none
        noDefault8  untracked vuint64                none
        noDefault9  untracked double                 none
        noDefault10 untracked vdouble                none
        noDefault11 untracked bool                   none
        noDefault12 untracked string                 none
        noDefault13 untracked vstring                none
        noDefault14 untracked EventID                none
        noDefault15 untracked VEventID               none
        noDefault16 untracked LuminosityBlockID      none
        noDefault17 untracked VLuminosityBlockID     none
        noDefault18 untracked InputTag               none
        noDefault19 untracked VInputTag              none
        noDefault20 untracked FileInPath             none
        noDefault21 untracked LuminosityBlockRange   none
        noDefault22 untracked VLuminosityBlockRange  none
        noDefault23 untracked EventRange             none
        noDefault24 untracked VEventRange            none
  1.3 producerWithPSetDesc
    testingAutoGeneratedCfi untracked bool        optional True
    p_int                   int32                          3
    p_int_untracked         untracked int32                -2147483647
    p_int_opt               int32                 optional 0
    p_int_optuntracked      untracked int32       optional 7
    p_int_opt_nd            int32                 optional none
    p_int_optuntracked_nd   untracked int32       optional none
    vint1                   vint32                         empty
    vint2                   vint32                         (vector size = 1)
      [0]: 2147483647
    vint3                   vint32                         (vector size = 2)
      [0]: 2147483647
      [1]: -2147483647
    vint4                   vint32                         (vector size = 3)
      [0]: 2147483647
      [1]: -2147483647
      [2]: 0
    uint1                   uint32                         4294967295
    uint2                   untracked uint32               0
    vuint1                  vuint32                        empty
    vuint2                  vuint32                        (vector size = 1)
      [0]: 4294967295
    vuint3                  vuint32                        (vector size = 2)
      [0]: 4294967295
      [1]: 0
    vuint4                  vuint32                        (vector size = 3)
      [0]: 4294967295
      [1]: 0
      [2]: 11
    vuint5                  vuint32                        see Section 1.3.1
    int64v1                 int64                          9000000000000000000
    int64v2                 int64                          -9000000000000000000
    int64v3                 int64                          0
    vint64v1                vint64                         empty
    vint64v2                vint64                         (vector size = 1)
      [0]: 9000000000000000000
    vint64v3                vint64                         (vector size = 2)
      [0]: 9000000000000000000
      [1]: -9000000000000000000
    vint64v4                vint64                         (vector size = 3)
      [0]: 9000000000000000000
      [1]: -9000000000000000000
      [2]: 0
    uint64v1                uint64                         18000000000000000000
    uint64v2                untracked uint64               0
    vuint64v1               vuint64                        empty
    vuint64v2               vuint64                        (vector size = 1)
      [0]: 18000000000000000000
    vuint64v3               vuint64                        (vector size = 2)
      [0]: 18000000000000000000
      [1]: 0
    vuint64v4               vuint64                        (vector size = 3)
      [0]: 18000000000000000000
      [1]: 0
      [2]: 11
    doublev1                double                         2.2250738585072014e-308
    doublev2                untracked double               0
    doublev3                untracked double               0.3
    vdoublev1               vdouble                        empty
    vdoublev2               vdouble                        (vector size = 1)
      [0]: 1e+300
    vdoublev3               vdouble                        (vector size = 2)
      [0]: 1e+300
      [1]: 0
    vdoublev4               vdouble                        (vector size = 3)
      [0]: 1e+300
      [1]: 0
      [2]: 11
    vdoublev5               vdouble                        (vector size = 4)
      [0]: 1e+300
      [1]: 0
      [2]: 11
      [3]: 0.3
    boolv1                  bool                           True
    boolv2                  bool                           False
    stringv1                string                         'Hello'
    stringv2                string                         ''
    vstringv1               vstring                        empty
    vstringv2               vstring                        (vector size = 1)
      [0]: 'Hello'
    vstringv3               vstring                        (vector size = 2)
      [0]: 'Hello'
      [1]: 'World'
    vstringv4               vstring                        (vector size = 3)
      [0]: 'Hello'
      [1]: 'World'
      [2]: ''
    eventIDv1               EventID                        11:12
    eventIDv2               EventID                        101:102
    vEventIDv1              VEventID                       empty
    vEventIDv2              VEventID                       (vector size = 1)
      [0]: 1000:1100
    vEventIDv3              VEventID                       (vector size = 2)
      [0]: 1000:1100
      [1]: 10000:11000
    vEventIDv4              VEventID                       (vector size = 3)
      [0]: 1000:1100
      [1]: 10000:11000
      [2]: 100000:110000
    luminosityIDv1          LuminosityBlockID              11:12
    luminosityIDv2          LuminosityBlockID              101:102
    vLuminosityBlockIDv1    VLuminosityBlockID             empty
    vLuminosityBlockIDv2    VLuminosityBlockID             (vector size = 1)
      [0]: 1000:1100
    vLuminosityBlockIDv3    VLuminosityBlockID             (vector size = 2)
      [0]: 1000:1100
      [1]: 10000:11000
    vLuminosityBlockIDv4    VLuminosityBlockID             (vector size = 3)
      [0]: 1000:1100
      [1]: 10000:11000
      [2]: 100000:110000
    lumiRangev1             LuminosityBlockRange           1:1-9:9
    lumiRangev2             LuminosityBlockRange           3:4-1000:1000
    vLumiRangev1            VLuminosityBlockRange          empty
    vLumiRangev2            VLuminosityBlockRange          (vector size = 1)
      [0]: 1:1-9:9
    vLumiRangev3            VLuminosityBlockRange          (vector size = 2)
      [0]: 1:1-9:9
      [1]: 3:4-1000:1000
    eventRangev1            EventRange                     1:1-8:8
    eventRangev2            EventRange                     3:4-1001:1002
    vEventRangev1           VEventRange                    empty
    vEventRangev2           VEventRange                    (vector size = 1)
      [0]: 1:1-8:8
    vEventRangev3           VEventRange                    (vector size = 2)
      [0]: 1:1-8:8
      [1]: 3:4-1001:1002
    inputTagv1              InputTag                       'One:Two:Three'
    inputTagv2              InputTag                       'One:Two'
    inputTagv3              InputTag                       'One'
    inputTagv4              InputTag                       'One::Three'
    vInputTagv1             VInputTag                      empty
    vInputTagv2             VInputTag                      (vector size = 1)
      [0]: 'One:Two:Three'
    vInputTagv3             VInputTag                      (vector size = 2)
      [0]: 'One:Two:Three'
      [1]: 'One:Two'
    vInputTagv4             VInputTag                      (vector size = 3)
      [0]: 'One:Two:Three'
      [1]: 'One:Two'
      [2]: 'One'
    vInputTagv5             VInputTag                      (vector size = 4)
      [0]: 'One:Two:Three'
      [1]: 'One:Two'
      [2]: 'One'
      [3]: 'One::Three'
    esinputTagv1            ESInputTag                     'One:Two'
    esinputTagv2            ESInputTag                     'One:'
    esinputTagv3            ESInputTag                     ':Two'
    vESInputTagv1           VESInputTag                    empty
    vESInputTagv2           VESInputTag                    (vector size = 1)
      [0]: 'One:Two'
    vESInputTagv3           VESInputTag                    (vector size = 2)
      [0]: 'One:Two'
      [1]: 'One:'
    vESInputTagv4           VESInputTag                    (vector size = 3)
      [0]: 'One:Two'
      [1]: 'One:'
      [2]: ':Two'
    fileInPath              FileInPath                     'FWCore/Integration/plugins/ProducerWithPSetDesc.cc'
    Empty group description
    bar                     PSet                           see Section 1.3.2
    test101                 PSet                  optional see Section 1.3.3 (do not write to cfi)
    test102                 VPSet                 optional see Section 1.3.4 (do not write to cfi)
    test103                 VPSet                 optional see Section 1.3.5 (do not write to cfi)
    test104                 untracked VPSet                see Section 1.3.6
    test105                 untracked VPSet                see Section 1.3.7
    test1                   double                         0.1
    test2                   double                optional 0.2
    test3                   double                optional none (do not write to cfi)
    AND group: optional see Section 1.3.8
    oiswitch (switch)       int32                 optional see Section 1.3.9
    testDeeplyNested2       PSet                           see Section 1.3.10
    bars                    VPSet                          see Section 1.3.11
    subpset                 PSet                  optional see Section 1.3.12
    wildcardPset            PSet                           see Section 1.3.13
    switchPset              PSet                           see Section 1.3.14
    xorPset                 PSet                           see Section 1.3.15
    orPset                  PSet                           see Section 1.3.16
    andPset                 PSet                           see Section 1.3.17
    ifExistsPset            PSet                           see Section 1.3.18
    allowedLabelsPset       PSet                           see Section 1.3.19
    noDefaultPset3          PSet                           see Section 1.3.20
    noDefaultPset4          PSet                           see Section 1.3.21
    plugin                  PSet                           see Section 1.3.22
    plugin1                 PSet                           see Section 1.3.23
    plugin2                 VPSet                          see Section 1.3.24
    plugin3                 VPSet                          see Section 1.3.25
    plugin4                 PSet                           see Section 1.3.26
    plugin5                 VPSet                          see Section 1.3.27
    mightGet                untracked vstring     optional none
    Section 1.3.1 vuint5 default contents: (vector size = 6)
        [0]: 4294967295
        [1]: 0
        [2]: 11
        [3]: 21
        [4]: 31
        [5]: 41
    Section 1.3.2 bar PSet description:
        Drinks   uint32                    5
        uDrinks  untracked uint32          5
        oDrinks  uint32           optional 5
        ouDrinks untracked uint32 optional 5
    Section 1.3.3 test101 PSet description:
        Drinks   uint32                    5
        uDrinks  untracked uint32          5
        oDrinks  uint32           optional 5
        ouDrinks untracked uint32 optional 5
    Section 1.3.4 test102 VPSet description:
        All elements will be validated using the PSet description in Section 1.3.4.1.
        Does not have a default VPSet.
    Section 1.3.4.1 description of PSet used to validate elements of VPSet:
        Description is empty
    Section 1.3.5 test103 VPSet description:
        All elements will be validated using the PSet description in Section 1.3.5.1.
        Does not have a default VPSet.
    Section 1.3.5.1 description of PSet used to validate elements of VPSet:
        Drinks     uint32                    5
        uDrinks    untracked uint32          5
        oDrinks    uint32           optional 5
        ouDrinks   untracked uint32 optional 5
        ndoDrinks  uint32           optional none
        ndouDrinks untracked uint32 optional none
    Section 1.3.6 test104 VPSet description:
        All elements will be validated using the PSet description in Section 1.3.6.1.
        The default VPSet has 1 element.
        [0]: see Section 1.3.6.2
    Section 1.3.6.1 description of PSet used to validate elements of VPSet:
        Drinks     uint32                    5
        uDrinks    untracked uint32          5
        oDrinks    uint32           optional 5
        ouDrinks   untracked uint32 optional 5
        ndoDrinks  uint32           optional none
        ndouDrinks untracked uint32 optional none
    Section 1.3.6.2 PSet description of default VPSet element [0]
        Description is empty
    Section 1.3.7 test105 VPSet description:
        All elements will be validated using the PSet description in Section 1.3.7.1.
        The default VPSet is empty.
    Section 1.3.7.1 description of PSet used to validate elements of VPSet:
        Drinks     uint32                    5
        uDrinks    untracked uint32          5
        oDrinks    uint32           optional 5
        ouDrinks   untracked uint32 optional 5
        ndoDrinks  uint32           optional none
        ndouDrinks untracked uint32 optional none
    Section 1.3.8 AND group description:
    This optional AND group requires all or none of the following to be in the PSet
        testA string  'fooA'
        testB int32   100
        testC int32   101
    Section 1.3.9 oiswitch (switch):
        switch:
        oiswitch int32  optional 1
        if oiswitch = 0
        oivalue  int32           100
        if oiswitch = 1
        AND group: see Section 1.3.9.1
        if oiswitch = 2
        oivalue  string          '102'
    Section 1.3.9.1 AND group description:
    This AND group requires all of the following to be in the PSet
        oivalue1 double  101
        oivalue2 double  101
    Section 1.3.10 testDeeplyNested2 PSet description:
        bswitch (switch)   bool            see Section 1.3.10.1
        iswitch (switch)   int32           see Section 1.3.10.2
        sswitch (switch)   string          see Section 1.3.10.3
        ndiswitch (switch) int32  optional (do not write to cfi) see Section 1.3.10.4
        testint            int32           1000
    Section 1.3.10.1 bswitch (switch):
        switch:
        bswitch bool   False
        if bswitch = False
        AND group: see Section 1.3.10.1.1
        if bswitch = True
        bvalue  int32  100
    Section 1.3.10.1.1 AND group description:
    This AND group requires all of the following to be in the PSet
        bvalue1 double  101
        bvalue2 double  101
    Section 1.3.10.2 iswitch (switch):
        switch:
        iswitch int32   1
        if iswitch = 0
        ivalue  int32   100
        if iswitch = 1
        AND group: see Section 1.3.10.2.1
        if iswitch = 2
        ivalue  string  '102'
    Section 1.3.10.2.1 AND group description:
    This AND group requires all of the following to be in the PSet
        ivalue1 double            101
        ivalue2 untracked double  101
    Section 1.3.10.3 sswitch (switch):
        switch:
        sswitch string  '1'
        if sswitch = "0"
        svalue  int32   100
        if sswitch = "1"
        AND group: see Section 1.3.10.3.1
        if sswitch = "2"
        svalue  string  '102'
    Section 1.3.10.3.1 AND group description:
    This AND group requires all of the following to be in the PSet
        svalue1 double  101
        svalue2 double  101
    Section 1.3.10.4 ndiswitch (switch):
        switch:
        ndiswitch int32  optional 1
        if ndiswitch = 0
        ndivalue  int32           100
        if ndiswitch = 1
        AND group: see Section 1.3.10.4.1
        if ndiswitch = 2
        ndivalue  string          '102'
    Section 1.3.10.4.1 AND group description:
    This AND group requires all of the following to be in the PSet
        ndivalue1 double  101
        ndivalue2 double  101
    Section 1.3.11 bars VPSet description:
        All elements will be validated using the PSet description in Section 1.3.11.1.
        The default VPSet has 2 elements.
        [0]: see Section 1.3.11.2
        [1]: see Section 1.3.11.3
    Section 1.3.11.1 description of PSet used to validate elements of VPSet:
        Drinks           uint32                    5
        uDrinks          untracked uint32          5
        oDrinks          uint32           optional 5
        ouDrinks         untracked uint32 optional 5
        ndoDrinks        uint32           optional none
        ndouDrinks       untracked uint32 optional none
        testDeeplyNested PSet                      see Section 1.3.11.1.1
        anotherVPSet     VPSet                     see Section 1.3.11.1.2
    Section 1.3.11.1.1 testDeeplyNested PSet description:
        bswitch (switch)   bool            see Section 1.3.11.1.1.1
        iswitch (switch)   int32           see Section 1.3.11.1.1.2
        sswitch (switch)   string          see Section 1.3.11.1.1.3
        ndiswitch (switch) int32  optional (do not write to cfi) see Section 1.3.11.1.1.4
        testint            int32           1000
    Section 1.3.11.1.1.1 bswitch (switch):
        switch:
        bswitch bool   False
        if bswitch = False
        AND group: see Section 1.3.11.1.1.1.1
        if bswitch = True
        bvalue  int32  100
    Section 1.3.11.1.1.1.1 AND group description:
    This AND group requires all of the following to be in the PSet
        bvalue1 double  101
        bvalue2 double  101
    Section 1.3.11.1.1.2 iswitch (switch):
        switch:
        iswitch int32   1
        if iswitch = 0
        ivalue  int32   100
        if iswitch = 1
        AND group: see Section 1.3.11.1.1.2.1
        if iswitch = 2
        ivalue  string  '102'
    Section 1.3.11.1.1.2.1 AND group description:
    This AND group requires all of the following to be in the PSet
        ivalue1 double            101
        ivalue2 untracked double  101
    Section 1.3.11.1.1.3 sswitch (switch):
        switch:
        sswitch string  '1'
        if sswitch = "0"
        svalue  int32   100
        if sswitch = "1"
        AND group: see Section 1.3.11.1.1.3.1
        if sswitch = "2"
        svalue  string  '102'
    Section 1.3.11.1.1.3.1 AND group description:
    This AND group requires all of the following to be in the PSet
        svalue1 double  101
        svalue2 double  101
    Section 1.3.11.1.1.4 ndiswitch (switch):
        switch:
        ndiswitch int32  optional 1
        if ndiswitch = 0
        ndivalue  int32           100
        if ndiswitch = 1
        AND group: see Section 1.3.11.1.1.4.1
        if ndiswitch = 2
        ndivalue  string          '102'
    Section 1.3.11.1.1.4.1 AND group description:
    This AND group requires all of the following to be in the PSet
        ndivalue1 double  101
        ndivalue2 double  101
    Section 1.3.11.1.2 anotherVPSet VPSet description:
        All elements will be validated using the PSet description in Section 1.3.11.1.2.1.
        The default VPSet has 2 elements.
        [0]: see Section 1.3.11.1.2.2
        [1]: see Section 1.3.11.1.2.3
    Section 1.3.11.1.2.1 description of PSet used to validate elements of VPSet:
        xvalue int32  7
    Section 1.3.11.1.2.2 PSet description of default VPSet element [0]
        Description is empty
    Section 1.3.11.1.2.3 PSet description of default VPSet element [1]
        xvalue int32  100
    Section 1.3.11.2 PSet description of default VPSet element [0]
        oDrinks uint32  11
    Section 1.3.11.3 PSet description of default VPSet element [1]
        ndouDrinks       untracked uint32  11
        oDrinks          uint32            11
        ouDrinks         untracked uint32  11
        testDeeplyNested PSet              see Section 1.3.11.3.1
        anotherVPSet     VPSet             see Section 1.3.11.3.2
    Section 1.3.11.3.1 testDeeplyNested PSet description:
        testint int32  2
    Section 1.3.11.3.2  VPSet description for VPSet that is part of the default of a containing VPSet:
        The default VPSet has 2 elements.
        [0]: see Section 1.3.11.3.2.1
        [1]: see Section 1.3.11.3.2.2
    Section 1.3.11.3.2.1 PSet description of default VPSet element [0]
        Description is empty
    Section 1.3.11.3.2.2 PSet description of default VPSet element [1]
        xvalue int32  17
    Section 1.3.12 subpset PSet description:
        xvalue int32           11
        bar    untracked PSet  see Section 1.3.12.1
    Section 1.3.12.1 bar PSet description:
        Drinks   uint32                    5
        uDrinks  untracked uint32          5
        oDrinks  uint32           optional 5
        ouDrinks untracked uint32 optional 5
    Section 1.3.13 wildcardPset PSet description:
        p_uint_opt  uint32           optional 0
        wildcard: * int32            optional (require zero or more)
        wildcard: * untracked double optional (require zero or more)
        wildcard: * PSet             optional (require exactly one)
        wildcard: * PSet             optional (require at least one)
          (see Section 1.3.13.1)
        wildcard: * VPSet            optional (require exactly one)
        wildcard: * VPSet            optional (require at least one)
          (see Section 1.3.13.2)
    Section 1.3.13.1 description of PSet matching wildcard:
        Drinks      uint32                    5
    Section 1.3.13.2 description used to validate all PSets which are in the VPSet matching the wildcard:
        Drinks      uint32                    5
        Drinks2     uint32                    11
    Section 1.3.14 switchPset PSet description:
        iswitch (switch)      int32          see Section 1.3.14.1
        addTeVRefits (switch) bool           see Section 1.3.14.2
    Section 1.3.14.1 iswitch (switch):
        switch:
        iswitch int32   1
        if iswitch = 0
        ivalue  vint32  (vector size = 2)
          [0]: 21
          [1]: 22
        if iswitch = 1
        AND group: see Section 1.3.14.1.1
        if iswitch = 2
        ivalue  string  '102'
    Section 1.3.14.1.1 AND group description:
    This AND group requires all of the following to be in the PSet
        ivalue1 double  101
        ivalue2 double  101
    Section 1.3.14.2 addTeVRefits (switch):
        switch:
        addTeVRefits bool  True
        if addTeVRefits = False
        Empty group description
        if addTeVRefits = True
        AND group: see Section 1.3.14.2.1
    Section 1.3.14.2.1 AND group description:
    This AND group requires all of the following to be in the PSet
        pickySrc InputTag  ''
        tpfmsSrc InputTag  ''
    Section 1.3.15 xorPset PSet description:
        XOR group: see Section 1.3.15.1
        XOR group: see Section 1.3.15.2
        XOR group: optional (do not write to cfi) see Section 1.3.15.3
        XOR group: see Section 1.3.15.4
    Section 1.3.15.1 XOR group description:
    This XOR group requires exactly one of the following to be in the PSet
        name string  '11'
        name uint32  11
    Section 1.3.15.2 XOR group description:
    This XOR group requires exactly one of the following to be in the PSet
        name1 string  '11'
        name1 uint32  11
    Section 1.3.15.3 XOR group description:
    This optional XOR group requires exactly one or none of the following to be in the PSet
        name2 string  '11'
        name2 uint32  11
    Section 1.3.15.4 XOR group description:
    This XOR group requires exactly one of the following to be in the PSet
        name3   string  '11'
        name4   uint32  11
        test101 PSet    see Section 1.3.15.4.1
        test103 VPSet   see Section 1.3.15.4.2
    Section 1.3.15.4.1 test101 PSet description:
        Drinks   uint32                    5
        uDrinks  untracked uint32          5
        oDrinks  uint32           optional 5
        ouDrinks untracked uint32 optional 5
    Section 1.3.15.4.2 test103 VPSet description:
        All elements will be validated using the PSet description in Section 1.3.15.4.2.1.
        Does not have a default VPSet.
    Section 1.3.15.4.2.1 description of PSet used to validate elements of VPSet:
        Drinks     uint32                    5
        uDrinks    untracked uint32          5
        oDrinks    uint32           optional 5
        ouDrinks   untracked uint32 optional 5
        ndoDrinks  uint32           optional none
        ndouDrinks untracked uint32 optional none
    Section 1.3.16 orPset PSet description:
        OR group: see Section 1.3.16.1
        OR group: see Section 1.3.16.2
        OR group: optional (do not write to cfi) see Section 1.3.16.3
    Section 1.3.16.1 OR group description:
    This OR group requires at least one of the following to be in the PSet
        x1 string  '11'
        x2 uint32  11
    Section 1.3.16.2 OR group description:
    This OR group requires at least one of the following to be in the PSet
        y1 string  '11'
        y2 uint32  11
    Section 1.3.16.3 OR group description:
    This optional OR group requires at least one or none of the following to be in the PSet
        z1      string  '11'
        z2      uint32  11
        test101 PSet    see Section 1.3.16.3.1
        test103 VPSet   see Section 1.3.16.3.2
    Section 1.3.16.3.1 test101 PSet description:
        Drinks   uint32                    5
        uDrinks  untracked uint32          5
        oDrinks  uint32           optional 5
        ouDrinks untracked uint32 optional 5
    Section 1.3.16.3.2 test103 VPSet description:
        All elements will be validated using the PSet description in Section 1.3.16.3.2.1.
        Does not have a default VPSet.
    Section 1.3.16.3.2.1 description of PSet used to validate elements of VPSet:
        Drinks     uint32                    5
        uDrinks    untracked uint32          5
        oDrinks    uint32           optional 5
        ouDrinks   untracked uint32 optional 5
        ndoDrinks  uint32           optional none
        ndouDrinks untracked uint32 optional none
    Section 1.3.17 andPset PSet description:
        AND group: see Section 1.3.17.1
        AND group: see Section 1.3.17.2
        AND group: see Section 1.3.17.3
        AND group: optional (do not write to cfi) see Section 1.3.17.4
        AND group: optional see Section 1.3.17.5
    Section 1.3.17.1 AND group description:
    This AND group requires all of the following to be in the PSet
        x1 string  '11'
        x2 uint32  11
    Section 1.3.17.2 AND group description:
    This AND group requires all of the following to be in the PSet
        y1 string  '11'
        y2 uint32  11
    Section 1.3.17.3 AND group description:
    This AND group requires all of the following to be in the PSet
        z1 string  '11'
        z2 uint32  11
    Section 1.3.17.4 AND group description:
    This optional AND group requires all or none of the following to be in the PSet
        a1 string  '11'
        a2 uint32  11
    Section 1.3.17.5 AND group description:
    This optional AND group requires all or none of the following to be in the PSet
        b1 string  '11'
        b2 uint32  11
        b3 uint32  11
        b4 uint32  11
        b5 uint32  11
        b6 uint32  11
    Section 1.3.18 ifExistsPset PSet description:
        IfExists pair: see Section 1.3.18.1
        IfExists pair: optional (do not write to cfi) see Section 1.3.18.2
        IfExists pair: see Section 1.3.18.3
    Section 1.3.18.1 IfExists pair description:
    If the first parameter exists, then the second is required to exist
        x1 uint32  11
        x2 string  '11'
    Section 1.3.18.2 optional IfExists pair description:
    If the first parameter exists, then the second is allowed to exist
        y1 uint32  11
        y2 string  '11'
    Section 1.3.18.3 IfExists pair description:
    If the first parameter exists, then the second is required to exist
        z1 uint32  11
        z2 string  '11'
    Section 1.3.19 allowedLabelsPset PSet description:
        p_int_opt int32 optional 0
        testAllowedLabels (list of allowed labels) see Section 1.3.19.1
        testAllowedLabelsUntracked (list of allowed labels) see Section 1.3.19.2
        testOptAllowedLabels (list of allowed labels) optional (do not write to cfi) see Section 1.3.19.3
        testOptAllowedLabelsUntracked (list of allowed labels) optional (do not write to cfi) see Section 1.3.19.4
        testWithSet (list of allowed labels) optional see Section 1.3.19.5
        testWithVectorOfSets (list of allowed labels) optional see Section 1.3.19.6
    Section 1.3.19.1 testAllowedLabels - allowed labels description
    The following parameter contains a list of parameter labels
    which are allowed to be in the PSet
        testAllowedLabels vstring  empty
        type of allowed parameters: int32
    Section 1.3.19.2 testAllowedLabelsUntracked - allowed labels description
    The following parameter contains a list of parameter labels
    which are allowed to be in the PSet
        testAllowedLabelsUntracked untracked vstring  empty
        type of allowed parameters: untracked uint32
    Section 1.3.19.3 testOptAllowedLabels - allowed labels description
    The following parameter contains a list of parameter labels
    which are allowed to be in the PSet
        testOptAllowedLabels vstring optional empty
        type of allowed parameters: int32
    Section 1.3.19.4 testOptAllowedLabelsUntracked - allowed labels description
    The following parameter contains a list of parameter labels
    which are allowed to be in the PSet
        testOptAllowedLabelsUntracked untracked vstring optional empty
        type of allowed parameters: untracked uint32
    Section 1.3.19.5 testWithSet - allowed labels description
    The following parameter contains a list of parameter labels
    which are allowed to be in the PSet
        testWithSet untracked vstring optional empty
        type of allowed parameters: untracked PSet
        see Section 1.3.19.5.1
    Section 1.3.19.5.1 PSet description:
        Drinks    uint32                    5
        uDrinks   untracked uint32          5
        oDrinks   uint32           optional 5
        ouDrinks  untracked uint32 optional 5
    Section 1.3.19.6 testWithVectorOfSets - allowed labels description
    The following parameter contains a list of parameter labels
    which are allowed to be in the PSet
        testWithVectorOfSets untracked vstring optional empty
        type of allowed parameters: untracked VPSet
        see Section 1.3.19.6.1
    Section 1.3.19.6.1 PSet description used to validate all elements of VPSet's:
        Drinks    uint32                    5
        uDrinks   untracked uint32          5
        oDrinks   uint32           optional 5
        ouDrinks  untracked uint32 optional 5
    Section 1.3.20 noDefaultPset3 PSet description:
        noDefault1  int32                 optional none
        noDefault2  vint32                optional none
        noDefault3  uint32                optional none
        noDefault4  vuint32               optional none
        noDefault5  int64                 optional none
        noDefault6  vint64                optional none
        noDefault7  uint64                optional none
        noDefault8  vuint64               optional none
        noDefault9  double                optional none
        noDefault10 vdouble               optional none
        noDefault11 bool                  optional none
        noDefault12 string                optional none
        noDefault13 vstring               optional none
        noDefault14 EventID               optional none
        noDefault15 VEventID              optional none
        noDefault16 LuminosityBlockID     optional none
        noDefault17 VLuminosityBlockID    optional none
        noDefault18 InputTag              optional none
        noDefault19 VInputTag             optional none
        noDefault20 FileInPath            optional none
        noDefault21 LuminosityBlockRange  optional none
        noDefault22 VLuminosityBlockRange optional none
        noDefault23 EventRange            optional none
        noDefault24 VEventRange           optional none
    Section 1.3.21 noDefaultPset4 PSet description:
        noDefault1  untracked int32                 optional none
        noDefault2  untracked vint32                optional none
        noDefault3  untracked uint32                optional none
        noDefault4  untracked vuint32               optional none
        noDefault5  untracked int64                 optional none
        noDefault6  untracked vint64                optional none
        noDefault7  untracked uint64                optional none
        noDefault8  untracked vuint64               optional none
        noDefault9  untracked double                optional none
        noDefault10 untracked vdouble               optional none
        noDefault11 untracked bool                  optional none
        noDefault12 untracked string                optional none
        noDefault13 untracked vstring               optional none
        noDefault14 untracked EventID               optional none
        noDefault15 untracked VEventID              optional none
        noDefault16 untracked LuminosityBlockID     optional none
        noDefault17 untracked VLuminosityBlockID    optional none
        noDefault18 untracked InputTag              optional none
        noDefault19 untracked VInputTag             optional none
        noDefault20 untracked FileInPath            optional none
        noDefault21 untracked LuminosityBlockRange  optional none
        noDefault22 untracked VLuminosityBlockRange optional none
        noDefault23 untracked EventRange            optional none
        noDefault24 untracked VEventRange           optional none
    Section 1.3.22 plugin PSet description:
        There are multiple possible different descriptions for this ParameterSet
        because it will be used by a helper plugin object contained inside the top level
        module plugin object and the type of the helper plugin object is configurable.
        Or if it is in a vector of ParameterSets it might be used by multiple
        helper plugin objects and each could be configured with a different plugin type.
        Each plugin type could allow a different set of configuration parameters.
        Each subsection of this section has one of the possible descriptions.
        All of these plugins are from the category "PluginDescriptoredmtestAnotherIntFactory".
        The plugin type is specified by the parameter named "type".
    Section 1.3.22.1 ParameterSet description for plugin named "edmtestAnotherMakerWithRecursivePlugin"
        value           int32   5
        pluginRecursive PSet    see Section 1.3.22.1.1
        type            string  'edmtestAnotherValueMaker'
    Section 1.3.22.1.1 pluginRecursive PSet description:
        There are multiple possible different descriptions for this ParameterSet
        because it will be used by a helper plugin object contained inside the top level
        module plugin object and the type of the helper plugin object is configurable.
        Or if it is in a vector of ParameterSets it might be used by multiple
        helper plugin objects and each could be configured with a different plugin type.
        Each plugin type could allow a different set of configuration parameters.
        Each subsection of this section has one of the possible descriptions.
        All of these plugins are from the category "PluginDescriptoredmtestAnotherIntFactory".
        The plugin type is specified by the parameter named "type".
        *** The descriptions for this plugin category already started printing above (see Section 1.3.22)! ***
        *** We might still be in the middle of that printout at this point because it might be recursive. ***
        *** We'll not duplicate that printout and skip it. ***
        *** (N.B. If we tried to print it again, we might fall into an infinite recursion.) ***
    Section 1.3.22.2 ParameterSet description for plugin named "edmtestAnotherOneMaker"
        type string  'edmtestAnotherValueMaker'
    Section 1.3.22.3 ParameterSet description for plugin named "edmtestAnotherValueMaker"
        value int32   5
        type  string  'edmtestAnotherValueMaker'
    Section 1.3.23 plugin1 PSet description:
        There are multiple possible different descriptions for this ParameterSet
        because it will be used by a helper plugin object contained inside the top level
        module plugin object and the type of the helper plugin object is configurable.
        Or if it is in a vector of ParameterSets it might be used by multiple
        helper plugin objects and each could be configured with a different plugin type.
        Each plugin type could allow a different set of configuration parameters.
        Each subsection of this section has one of the possible descriptions.
        All of these plugins are from the category "PluginDescriptoredmtestAnotherIntFactory".
        The plugin type is specified by the parameter named "type".
    Section 1.3.23.1 ParameterSet description for plugin named "edmtestAnotherMakerWithRecursivePlugin"
        value           int32   5
        pluginRecursive PSet    see Section 1.3.23.1.1
        type            string  none
    Section 1.3.23.1.1 pluginRecursive PSet description:
        There are multiple possible different descriptions for this ParameterSet
        because it will be used by a helper plugin object contained inside the top level
        module plugin object and the type of the helper plugin object is configurable.
        Or if it is in a vector of ParameterSets it might be used by multiple
        helper plugin objects and each could be configured with a different plugin type.
        Each plugin type could allow a different set of configuration parameters.
        Each subsection of this section has one of the possible descriptions.
        All of these plugins are from the category "PluginDescriptoredmtestAnotherIntFactory".
        The plugin type is specified by the parameter named "type".
        *** The descriptions for this plugin category already started printing above (see Section 1.3.23)! ***
        *** We might still be in the middle of that printout at this point because it might be recursive. ***
        *** We'll not duplicate that printout and skip it. ***
        *** (N.B. If we tried to print it again, we might fall into an infinite recursion.) ***
    Section 1.3.23.2 ParameterSet description for plugin named "edmtestAnotherOneMaker"
        type string  none
    Section 1.3.23.3 ParameterSet description for plugin named "edmtestAnotherValueMaker"
        value int32   5
        type  string  none
    Section 1.3.24 plugin2 VPSet description:
        All elements will be validated using the PSet description in Section 1.3.24.1.
        The default VPSet is empty.
    Section 1.3.24.1 description of PSet used to validate elements of VPSet:
        There are multiple possible different descriptions for this ParameterSet
        because it will be used by a helper plugin object contained inside the top level
        module plugin object and the type of the helper plugin object is configurable.
        Or if it is in a vector of ParameterSets it might be used by multiple
        helper plugin objects and each could be configured with a different plugin type.
        Each plugin type could allow a different set of configuration parameters.
        Each subsection of this section has one of the possible descriptions.
        All of these plugins are from the category "PluginDescriptoredmtestAnotherIntFactory".
        The plugin type is specified by the parameter named "type".
    Section 1.3.24.1.1 ParameterSet description for plugin named "edmtestAnotherMakerWithRecursivePlugin"
        value           int32   5
        pluginRecursive PSet    see Section 1.3.24.1.1.1
        type            string  none
    Section 1.3.24.1.1.1 pluginRecursive PSet description:
        There are multiple possible different descriptions for this ParameterSet
        because it will be used by a helper plugin object contained inside the top level
        module plugin object and the type of the helper plugin object is configurable.
        Or if it is in a vector of ParameterSets it might be used by multiple
        helper plugin objects and each could be configured with a different plugin type.
        Each plugin type could allow a different set of configuration parameters.
        Each subsection of this section has one of the possible descriptions.
        All of these plugins are from the category "PluginDescriptoredmtestAnotherIntFactory".
        The plugin type is specified by the parameter named "type".
        *** The descriptions for this plugin category already started printing above (see Section 1.3.24.1)! ***
        *** We might still be in the middle of that printout at this point because it might be recursive. ***
        *** We'll not duplicate that printout and skip it. ***
        *** (N.B. If we tried to print it again, we might fall into an infinite recursion.) ***
    Section 1.3.24.1.2 ParameterSet description for plugin named "edmtestAnotherOneMaker"
        type string  none
    Section 1.3.24.1.3 ParameterSet description for plugin named "edmtestAnotherValueMaker"
        value int32   5
        type  string  none
    Section 1.3.25 plugin3 VPSet description:
        All elements will be validated using the PSet description in Section 1.3.25.1.
        The default VPSet has 2 elements.
        [0]: see Section 1.3.25.2
        [1]: see Section 1.3.25.3
    Section 1.3.25.1 description of PSet used to validate elements of VPSet:
        There are multiple possible different descriptions for this ParameterSet
        because it will be used by a helper plugin object contained inside the top level
        module plugin object and the type of the helper plugin object is configurable.
        Or if it is in a vector of ParameterSets it might be used by multiple
        helper plugin objects and each could be configured with a different plugin type.
        Each plugin type could allow a different set of configuration parameters.
        Each subsection of this section has one of the possible descriptions.
        All of these plugins are from the category "PluginDescriptoredmtestAnotherIntFactory".
        The plugin type is specified by the parameter named "type".
    Section 1.3.25.1.1 ParameterSet description for plugin named "edmtestAnotherMakerWithRecursivePlugin"
        value           int32   5
        pluginRecursive PSet    see Section 1.3.25.1.1.1
        type            string  none
    Section 1.3.25.1.1.1 pluginRecursive PSet description:
        There are multiple possible different descriptions for this ParameterSet
        because it will be used by a helper plugin object contained inside the top level
        module plugin object and the type of the helper plugin object is configurable.
        Or if it is in a vector of ParameterSets it might be used by multiple
        helper plugin objects and each could be configured with a different plugin type.
        Each plugin type could allow a different set of configuration parameters.
        Each subsection of this section has one of the possible descriptions.
        All of these plugins are from the category "PluginDescriptoredmtestAnotherIntFactory".
        The plugin type is specified by the parameter named "type".
        *** The descriptions for this plugin category already started printing above (see Section 1.3.25.1)! ***
        *** We might still be in the middle of that printout at this point because it might be recursive. ***
        *** We'll not duplicate that printout and skip it. ***
        *** (N.B. If we tried to print it again, we might fall into an infinite recursion.) ***
    Section 1.3.25.1.2 ParameterSet description for plugin named "edmtestAnotherOneMaker"
        type string  none
    Section 1.3.25.1.3 ParameterSet description for plugin named "edmtestAnotherValueMaker"
        value int32   5
        type  string  none
    Section 1.3.25.2 PSet description of default VPSet element [0]
        type string  'edmtestAnotherOneMaker'
    Section 1.3.25.3 PSet description of default VPSet element [1]
        type  string  'edmtestAnotherValueMaker'
        value int32   11
    Section 1.3.26 plugin4 PSet description:
        There are multiple possible different descriptions for this ParameterSet
        because it will be used by a helper plugin object contained inside the top level
        module plugin object and the type of the helper plugin object is configurable.
        Or if it is in a vector of ParameterSets it might be used by multiple
        helper plugin objects and each could be configured with a different plugin type.
        Each plugin type could allow a different set of configuration parameters.
        Each subsection of this section has one of the possible descriptions.
        All of these plugins are from the category "PluginDescriptoredmtestAnotherIntFactory".
        The plugin type is specified by the parameter named "type".
    Section 1.3.26.1 ParameterSet description for plugin named "edmtestAnotherMakerWithRecursivePlugin"
        value           int32   5
        pluginRecursive PSet    see Section 1.3.26.1.1
        type            string  'edmtestAnotherMakerWithRecursivePlugin'
    Section 1.3.26.1.1 pluginRecursive PSet description:
        There are multiple possible different descriptions for this ParameterSet
        because it will be used by a helper plugin object contained inside the top level
        module plugin object and the type of the helper plugin object is configurable.
        Or if it is in a vector of ParameterSets it might be used by multiple
        helper plugin objects and each could be configured with a different plugin type.
        Each plugin type could allow a different set of configuration parameters.
        Each subsection of this section has one of the possible descriptions.
        All of these plugins are from the category "PluginDescriptoredmtestAnotherIntFactory".
        The plugin type is specified by the parameter named "type".
        *** The descriptions for this plugin category already started printing above (see Section 1.3.26)! ***
        *** We might still be in the middle of that printout at this point because it might be recursive. ***
        *** We'll not duplicate that printout and skip it. ***
        *** (N.B. If we tried to print it again, we might fall into an infinite recursion.) ***
    Section 1.3.26.2 ParameterSet description for plugin named "edmtestAnotherOneMaker"
        type string  'edmtestAnotherMakerWithRecursivePlugin'
    Section 1.3.26.3 ParameterSet description for plugin named "edmtestAnotherValueMaker"
        value int32   5
        type  string  'edmtestAnotherMakerWithRecursivePlugin'
    Section 1.3.27 plugin5 VPSet description:
        All elements will be validated using the PSet description in Section 1.3.27.1.
        The default VPSet has 2 elements.
        [0]: see Section 1.3.27.2
        [1]: see Section 1.3.27.3
    Section 1.3.27.1 description of PSet used to validate elements of VPSet:
        There are multiple possible different descriptions for this ParameterSet
        because it will be used by a helper plugin object contained inside the top level
        module plugin object and the type of the helper plugin object is configurable.
        Or if it is in a vector of ParameterSets it might be used by multiple
        helper plugin objects and each could be configured with a different plugin type.
        Each plugin type could allow a different set of configuration parameters.
        Each subsection of this section has one of the possible descriptions.
        All of these plugins are from the category "PluginDescriptoredmtestAnotherIntFactory".
        The plugin type is specified by the parameter named "type".
    Section 1.3.27.1.1 ParameterSet description for plugin named "edmtestAnotherMakerWithRecursivePlugin"
        value           int32   5
        pluginRecursive PSet    see Section 1.3.27.1.1.1
        type            string  'edmtestAnotherMakerWithRecursivePlugin'
    Section 1.3.27.1.1.1 pluginRecursive PSet description:
        There are multiple possible different descriptions for this ParameterSet
        because it will be used by a helper plugin object contained inside the top level
        module plugin object and the type of the helper plugin object is configurable.
        Or if it is in a vector of ParameterSets it might be used by multiple
        helper plugin objects and each could be configured with a different plugin type.
        Each plugin type could allow a different set of configuration parameters.
        Each subsection of this section has one of the possible descriptions.
        All of these plugins are from the category "PluginDescriptoredmtestAnotherIntFactory".
        The plugin type is specified by the parameter named "type".
        *** The descriptions for this plugin category already started printing above (see Section 1.3.27.1)! ***
        *** We might still be in the middle of that printout at this point because it might be recursive. ***
        *** We'll not duplicate that printout and skip it. ***
        *** (N.B. If we tried to print it again, we might fall into an infinite recursion.) ***
    Section 1.3.27.1.2 ParameterSet description for plugin named "edmtestAnotherOneMaker"
        type string  'edmtestAnotherMakerWithRecursivePlugin'
    Section 1.3.27.1.3 ParameterSet description for plugin named "edmtestAnotherValueMaker"
        value int32   5
        type  string  'edmtestAnotherMakerWithRecursivePlugin'
    Section 1.3.27.2 PSet description of default VPSet element [0]
        type string  'edmtestAnotherOneMaker'
    Section 1.3.27.3 PSet description of default VPSet element [1]
        type  string  'edmtestAnotherMakerWithRecursivePlugin'
        value int32   11
  1.4 description without a module label
    testingAutoGeneratedCfi untracked bool        optional True
    p_int                   int32                          2
    p_int_untracked         untracked int32                -2147483647
    p_int_opt               int32                 optional 0
    p_int_optuntracked      untracked int32       optional 7
    p_int_opt_nd            int32                 optional none
    p_int_optuntracked_nd   untracked int32       optional none
    vint1                   vint32                         empty
    vint2                   vint32                         (vector size = 1)
      [0]: 2147483647
    vint3                   vint32                         (vector size = 2)
      [0]: 2147483647
      [1]: -2147483647
    vint4                   vint32                         (vector size = 3)
      [0]: 2147483647
      [1]: -2147483647
      [2]: 0
    uint1                   uint32                         4294967295
    uint2                   untracked uint32               0
    vuint1                  vuint32                        empty
    vuint2                  vuint32                        (vector size = 1)
      [0]: 4294967295
    vuint3                  vuint32                        (vector size = 2)
      [0]: 4294967295
      [1]: 0
    vuint4                  vuint32                        (vector size = 3)
      [0]: 4294967295
      [1]: 0
      [2]: 11
    vuint5                  vuint32                        see Section 1.4.1
    int64v1                 int64                          9000000000000000000
    int64v2                 int64                          -9000000000000000000
    int64v3                 int64                          0
    vint64v1                vint64                         empty
    vint64v2                vint64                         (vector size = 1)
      [0]: 9000000000000000000
    vint64v3                vint64                         (vector size = 2)
      [0]: 9000000000000000000
      [1]: -9000000000000000000
    vint64v4                vint64                         (vector size = 3)
      [0]: 9000000000000000000
      [1]: -9000000000000000000
      [2]: 0
    uint64v1                uint64                         18000000000000000000
    uint64v2                untracked uint64               0
    vuint64v1               vuint64                        empty
    vuint64v2               vuint64                        (vector size = 1)
      [0]: 18000000000000000000
    vuint64v3               vuint64                        (vector size = 2)
      [0]: 18000000000000000000
      [1]: 0
    vuint64v4               vuint64                        (vector size = 3)
      [0]: 18000000000000000000
      [1]: 0
      [2]: 11
    doublev1                double                         2.2250738585072014e-308
    doublev2                untracked double               0
    doublev3                untracked double               0.3
    vdoublev1               vdouble                        empty
    vdoublev2               vdouble                        (vector size = 1)
      [0]: 1e+300
    vdoublev3               vdouble                        (vector size = 2)
      [0]: 1e+300
      [1]: 0
    vdoublev4               vdouble                        (vector size = 3)
      [0]: 1e+300
      [1]: 0
      [2]: 11
    vdoublev5               vdouble                        (vector size = 4)
      [0]: 1e+300
      [1]: 0
      [2]: 11
      [3]: 0.3
    boolv1                  bool                           True
    boolv2                  bool                           False
    stringv1                string                         'Hello'
    stringv2                string                         ''
    vstringv1               vstring                        empty
    vstringv2               vstring                        (vector size = 1)
      [0]: 'Hello'
    vstringv3               vstring                        (vector size = 2)
      [0]: 'Hello'
      [1]: 'World'
    vstringv4               vstring                        (vector size = 3)
      [0]: 'Hello'
      [1]: 'World'
      [2]: ''
    eventIDv1               EventID                        11:12
    eventIDv2               EventID                        101:102
    vEventIDv1              VEventID                       empty
    vEventIDv2              VEventID                       (vector size = 1)
      [0]: 1000:1100
    vEventIDv3              VEventID                       (vector size = 2)
      [0]: 1000:1100
      [1]: 10000:11000
    vEventIDv4              VEventID                       (vector size = 3)
      [0]: 1000:1100
      [1]: 10000:11000
      [2]: 100000:110000
    luminosityIDv1          LuminosityBlockID              11:12
    luminosityIDv2          LuminosityBlockID              101:102
    vLuminosityBlockIDv1    VLuminosityBlockID             empty
    vLuminosityBlockIDv2    VLuminosityBlockID             (vector size = 1)
      [0]: 1000:1100
    vLuminosityBlockIDv3    VLuminosityBlockID             (vector size = 2)
      [0]: 1000:1100
      [1]: 10000:11000
    vLuminosityBlockIDv4    VLuminosityBlockID             (vector size = 3)
      [0]: 1000:1100
      [1]: 10000:11000
      [2]: 100000:110000
    lumiRangev1             LuminosityBlockRange           1:1-9:9
    lumiRangev2             LuminosityBlockRange           3:4-1000:1000
    vLumiRangev1            VLuminosityBlockRange          empty
    vLumiRangev2            VLuminosityBlockRange          (vector size = 1)
      [0]: 1:1-9:9
    vLumiRangev3            VLuminosityBlockRange          (vector size = 2)
      [0]: 1:1-9:9
      [1]: 3:4-1000:1000
    eventRangev1            EventRange                     1:1-8:8
    eventRangev2            EventRange                     3:4-1001:1002
    vEventRangev1           VEventRange                    empty
    vEventRangev2           VEventRange                    (vector size = 1)
      [0]: 1:1-8:8
    vEventRangev3           VEventRange                    (vector size = 2)
      [0]: 1:1-8:8
      [1]: 3:4-1001:1002
    inputTagv1              InputTag                       'One:Two:Three'
    inputTagv2              InputTag                       'One:Two'
    inputTagv3              InputTag                       'One'
    inputTagv4              InputTag                       'One::Three'
    vInputTagv1             VInputTag                      empty
    vInputTagv2             VInputTag                      (vector size = 1)
      [0]: 'One:Two:Three'
    vInputTagv3             VInputTag                      (vector size = 2)
      [0]: 'One:Two:Three'
      [1]: 'One:Two'
    vInputTagv4             VInputTag                      (vector size = 3)
      [0]: 'One:Two:Three'
      [1]: 'One:Two'
      [2]: 'One'
    vInputTagv5             VInputTag                      (vector size = 4)
      [0]: 'One:Two:Three'
      [1]: 'One:Two'
      [2]: 'One'
      [3]: 'One::Three'
    esinputTagv1            ESInputTag                     'One:Two'
    esinputTagv2            ESInputTag                     'One:'
    esinputTagv3            ESInputTag                     ':Two'
    vESInputTagv1           VESInputTag                    empty
    vESInputTagv2           VESInputTag                    (vector size = 1)
      [0]: 'One:Two'
    vESInputTagv3           VESInputTag                    (vector size = 2)
      [0]: 'One:Two'
      [1]: 'One:'
    vESInputTagv4           VESInputTag                    (vector size = 3)
      [0]: 'One:Two'
      [1]: 'One:'
      [2]: ':Two'
    fileInPath              FileInPath                     'FWCore/Integration/plugins/ProducerWithPSetDesc.cc'
    Empty group description
    bar                     PSet                           see Section 1.4.2
    test101                 PSet                  optional see Section 1.4.3 (do not write to cfi)
    test102                 VPSet                 optional see Section 1.4.4 (do not write to cfi)
    test103                 VPSet                 optional see Section 1.4.5 (do not write to cfi)
    test104                 untracked VPSet                see Section 1.4.6
    test105                 untracked VPSet                see Section 1.4.7
    test1                   double                         0.1
    test2                   double                optional 0.2
    test3                   double                optional none (do not write to cfi)
    AND group: optional see Section 1.4.8
    oiswitch (switch)       int32                 optional see Section 1.4.9
    testDeeplyNested2       PSet                           see Section 1.4.10
    bars                    VPSet                          see Section 1.4.11
    subpset                 PSet                  optional see Section 1.4.12
    wildcardPset            PSet                           see Section 1.4.13
    switchPset              PSet                           see Section 1.4.14
    xorPset                 PSet                           see Section 1.4.15
    orPset                  PSet                           see Section 1.4.16
    andPset                 PSet                           see Section 1.4.17
    ifExistsPset            PSet                           see Section 1.4.18
    allowedLabelsPset       PSet                           see Section 1.4.19
    noDefaultPset3          PSet                           see Section 1.4.20
    noDefaultPset4          PSet                           see Section 1.4.21
    plugin                  PSet                           see Section 1.4.22
    plugin1                 PSet                           see Section 1.4.23
    plugin2                 VPSet                          see Section 1.4.24
    plugin3                 VPSet                          see Section 1.4.25
    plugin4                 PSet                           see Section 1.4.26
    plugin5                 VPSet                          see Section 1.4.27
    mightGet                untracked vstring     optional none
    Section 1.4.1 vuint5 default contents: (vector size = 6)
        [0]: 4294967295
        [1]: 0
        [2]: 11
        [3]: 21
        [4]: 31
        [5]: 41
    Section 1.4.2 bar PSet description:
        Drinks   uint32                    5
        uDrinks  untracked uint32          5
        oDrinks  uint32           optional 5
        ouDrinks untracked uint32 optional 5
    Section 1.4.3 test101 PSet description:
        Drinks   uint32                    5
        uDrinks  untracked uint32          5
        oDrinks  uint32           optional 5
        ouDrinks untracked uint32 optional 5
    Section 1.4.4 test102 VPSet description:
        All elements will be validated using the PSet description in Section 1.4.4.1.
        Does not have a default VPSet.
    Section 1.4.4.1 description of PSet used to validate elements of VPSet:
        Description is empty
    Section 1.4.5 test103 VPSet description:
        All elements will be validated using the PSet description in Section 1.4.5.1.
        Does not have a default VPSet.
    Section 1.4.5.1 description of PSet used to validate elements of VPSet:
        Drinks     uint32                    5
        uDrinks    untracked uint32          5
        oDrinks    uint32           optional 5
        ouDrinks   untracked uint32 optional 5
        ndoDrinks  uint32           optional none
        ndouDrinks untracked uint32 optional none
    Section 1.4.6 test104 VPSet description:
        All elements will be validated using the PSet description in Section 1.4.6.1.
        The default VPSet has 1 element.
        [0]: see Section 1.4.6.2
    Section 1.4.6.1 description of PSet used to validate elements of VPSet:
        Drinks     uint32                    5
        uDrinks    untracked uint32          5
        oDrinks    uint32           optional 5
        ouDrinks   untracked uint32 optional 5
        ndoDrinks  uint32           optional none
        ndouDrinks untracked uint32 optional none
    Section 1.4.6.2 PSet description of default VPSet element [0]
        Description is empty
    Section 1.4.7 test105 VPSet description:
        All elements will be validated using the PSet description in Section 1.4.7.1.
        The default VPSet is empty.
    Section 1.4.7.1 description of PSet used to validate elements of VPSet:
        Drinks     uint32                    5
        uDrinks    untracked uint32          5
        oDrinks    uint32           optional 5
        ouDrinks   untracked uint32 optional 5
        ndoDrinks  uint32           optional none
        ndouDrinks untracked uint32 optional none
    Section 1.4.8 AND group description:
    This optional AND group requires all or none of the following to be in the PSet
        testA string  'fooA'
        testB int32   100
        testC int32   101
    Section 1.4.9 oiswitch (switch):
        switch:
        oiswitch int32  optional 1
        if oiswitch = 0
        oivalue  int32           100
        if oiswitch = 1
        AND group: see Section 1.4.9.1
        if oiswitch = 2
        oivalue  string          '102'
    Section 1.4.9.1 AND group description:
    This AND group requires all of the following to be in the PSet
        oivalue1 double  101
        oivalue2 double  101
    Section 1.4.10 testDeeplyNested2 PSet description:
        bswitch (switch)   bool            see Section 1.4.10.1
        iswitch (switch)   int32           see Section 1.4.10.2
        sswitch (switch)   string          see Section 1.4.10.3
        ndiswitch (switch) int32  optional (do not write to cfi) see Section 1.4.10.4
        testint            int32           1000
    Section 1.4.10.1 bswitch (switch):
        switch:
        bswitch bool   False
        if bswitch = False
        AND group: see Section 1.4.10.1.1
        if bswitch = True
        bvalue  int32  100
    Section 1.4.10.1.1 AND group description:
    This AND group requires all of the following to be in the PSet
        bvalue1 double  101
        bvalue2 double  101
    Section 1.4.10.2 iswitch (switch):
        switch:
        iswitch int32   1
        if iswitch = 0
        ivalue  int32   100
        if iswitch = 1
        AND group: see Section 1.4.10.2.1
        if iswitch = 2
        ivalue  string  '102'
    Section 1.4.10.2.1 AND group description:
    This AND group requires all of the following to be in the PSet
        ivalue1 double            101
        ivalue2 untracked double  101
    Section 1.4.10.3 sswitch (switch):
        switch:
        sswitch string  '1'
        if sswitch = "0"
        svalue  int32   100
        if sswitch = "1"
        AND group: see Section 1.4.10.3.1
        if sswitch = "2"
        svalue  string  '102'
    Section 1.4.10.3.1 AND group description:
    This AND group requires all of the following to be in the PSet
        svalue1 double  101
        svalue2 double  101
    Section 1.4.10.4 ndiswitch (switch):
        switch:
        ndiswitch int32  optional 1
        if ndiswitch = 0
        ndivalue  int32           100
        if ndiswitch = 1
        AND group: see Section 1.4.10.4.1
        if ndiswitch = 2
        ndivalue  string          '102'
    Section 1.4.10.4.1 AND group description:
    This AND group requires all of the following to be in the PSet
        ndivalue1 double  101
        ndivalue2 double  101
    Section 1.4.11 bars VPSet description:
        All elements will be validated using the PSet description in Section 1.4.11.1.
        The default VPSet has 2 elements.
        [0]: see Section 1.4.11.2
        [1]: see Section 1.4.11.3
    Section 1.4.11.1 description of PSet used to validate elements of VPSet:
        Drinks           uint32                    5
        uDrinks          untracked uint32          5
        oDrinks          uint32           optional 5
        ouDrinks         untracked uint32 optional 5
        ndoDrinks        uint32           optional none
        ndouDrinks       untracked uint32 optional none
        testDeeplyNested PSet                      see Section 1.4.11.1.1
        anotherVPSet     VPSet                     see Section 1.4.11.1.2
    Section 1.4.11.1.1 testDeeplyNested PSet description:
        bswitch (switch)   bool            see Section 1.4.11.1.1.1
        iswitch (switch)   int32           see Section 1.4.11.1.1.2
        sswitch (switch)   string          see Section 1.4.11.1.1.3
        ndiswitch (switch) int32  optional (do not write to cfi) see Section 1.4.11.1.1.4
        testint            int32           1000
    Section 1.4.11.1.1.1 bswitch (switch):
        switch:
        bswitch bool   False
        if bswitch = False
        AND group: see Section 1.4.11.1.1.1.1
        if bswitch = True
        bvalue  int32  100
    Section 1.4.11.1.1.1.1 AND group description:
    This AND group requires all of the following to be in the PSet
        bvalue1 double  101
        bvalue2 double  101
    Section 1.4.11.1.1.2 iswitch (switch):
        switch:
        iswitch int32   1
        if iswitch = 0
        ivalue  int32   100
        if iswitch = 1
        AND group: see Section 1.4.11.1.1.2.1
        if iswitch = 2
        ivalue  string  '102'
    Section 1.4.11.1.1.2.1 AND group description:
    This AND group requires all of the following to be in the PSet
        ivalue1 double            101
        ivalue2 untracked double  101
    Section 1.4.11.1.1.3 sswitch (switch):
        switch:
        sswitch string  '1'
        if sswitch = "0"
        svalue  int32   100
        if sswitch = "1"
        AND group: see Section 1.4.11.1.1.3.1
        if sswitch = "2"
        svalue  string  '102'
    Section 1.4.11.1.1.3.1 AND group description:
    This AND group requires all of the following to be in the PSet
        svalue1 double  101
        svalue2 double  101
    Section 1.4.11.1.1.4 ndiswitch (switch):
        switch:
        ndiswitch int32  optional 1
        if ndiswitch = 0
        ndivalue  int32           100
        if ndiswitch = 1
        AND group: see Section 1.4.11.1.1.4.1
        if ndiswitch = 2
        ndivalue  string          '102'
    Section 1.4.11.1.1.4.1 AND group description:
    This AND group requires all of the following to be in the PSet
        ndivalue1 double  101
        ndivalue2 double  101
    Section 1.4.11.1.2 anotherVPSet VPSet description:
        All elements will be validated using the PSet description in Section 1.4.11.1.2.1.
        The default VPSet has 2 elements.
        [0]: see Section 1.4.11.1.2.2
        [1]: see Section 1.4.11.1.2.3
    Section 1.4.11.1.2.1 description of PSet used to validate elements of VPSet:
        xvalue int32  7
    Section 1.4.11.1.2.2 PSet description of default VPSet element [0]
        Description is empty
    Section 1.4.11.1.2.3 PSet description of default VPSet element [1]
        xvalue int32  100
    Section 1.4.11.2 PSet description of default VPSet element [0]
        oDrinks uint32  11
    Section 1.4.11.3 PSet description of default VPSet element [1]
        ndouDrinks       untracked uint32  11
        oDrinks          uint32            11
        ouDrinks         untracked uint32  11
        testDeeplyNested PSet              see Section 1.4.11.3.1
        anotherVPSet     VPSet             see Section 1.4.11.3.2
    Section 1.4.11.3.1 testDeeplyNested PSet description:
        testint int32  2
    Section 1.4.11.3.2  VPSet description for VPSet that is part of the default of a containing VPSet:
        The default VPSet has 2 elements.
        [0]: see Section 1.4.11.3.2.1
        [1]: see Section 1.4.11.3.2.2
    Section 1.4.11.3.2.1 PSet description of default VPSet element [0]
        Description is empty
    Section 1.4.11.3.2.2 PSet description of default VPSet element [1]
        xvalue int32  17
    Section 1.4.12 subpset PSet description:
        xvalue int32           11
        bar    untracked PSet  see Section 1.4.12.1
    Section 1.4.12.1 bar PSet description:
        Drinks   uint32                    5
        uDrinks  untracked uint32          5
        oDrinks  uint32           optional 5
        ouDrinks untracked uint32 optional 5
    Section 1.4.13 wildcardPset PSet description:
        p_uint_opt  uint32           optional 0
        wildcard: * int32            optional (require zero or more)
        wildcard: * untracked double optional (require zero or more)
        wildcard: * PSet             optional (require exactly one)
        wildcard: * PSet             optional (require at least one)
          (see Section 1.4.13.1)
        wildcard: * VPSet            optional (require exactly one)
        wildcard: * VPSet            optional (require at least one)
          (see Section 1.4.13.2)
    Section 1.4.13.1 description of PSet matching wildcard:
        Drinks      uint32                    5
    Section 1.4.13.2 description used to validate all PSets which are in the VPSet matching the wildcard:
        Drinks      uint32                    5
        Drinks2     uint32                    11
    Section 1.4.14 switchPset PSet description:
        iswitch (switch)      int32          see Section 1.4.14.1
        addTeVRefits (switch) bool           see Section 1.4.14.2
    Section 1.4.14.1 iswitch (switch):
        switch:
        iswitch int32   1
        if iswitch = 0
        ivalue  vint32  (vector size = 2)
          [0]: 21
          [1]: 22
        if iswitch = 1
        AND group: see Section 1.4.14.1.1
        if iswitch = 2
        ivalue  string  '102'
    Section 1.4.14.1.1 AND group description:
    This AND group requires all of the following to be in the PSet
        ivalue1 double  101
        ivalue2 double  101
    Section 1.4.14.2 addTeVRefits (switch):
        switch:
        addTeVRefits bool  True
        if addTeVRefits = False
        Empty group description
        if addTeVRefits = True
        AND group: see Section 1.4.14.2.1
    Section 1.4.14.2.1 AND group description:
    This AND group requires all of the following to be in the PSet
        pickySrc InputTag  ''
        tpfmsSrc InputTag  ''
    Section 1.4.15 xorPset PSet description:
        XOR group: see Section 1.4.15.1
        XOR group: see Section 1.4.15.2
        XOR group: optional (do not write to cfi) see Section 1.4.15.3
        XOR group: see Section 1.4.15.4
    Section 1.4.15.1 XOR group description:
    This XOR group requires exactly one of the following to be in the PSet
        name string  '11'
        name uint32  11
    Section 1.4.15.2 XOR group description:
    This XOR group requires exactly one of the following to be in the PSet
        name1 string  '11'
        name1 uint32  11
    Section 1.4.15.3 XOR group description:
    This optional XOR group requires exactly one or none of the following to be in the PSet
        name2 string  '11'
        name2 uint32  11
    Section 1.4.15.4 XOR group description:
    This XOR group requires exactly one of the following to be in the PSet
        name3   string  '11'
        name4   uint32  11
        test101 PSet    see Section 1.4.15.4.1
        test103 VPSet   see Section 1.4.15.4.2
    Section 1.4.15.4.1 test101 PSet description:
        Drinks   uint32                    5
        uDrinks  untracked uint32          5
        oDrinks  uint32           optional 5
        ouDrinks untracked uint32 optional 5
    Section 1.4.15.4.2 test103 VPSet description:
        All elements will be validated using the PSet description in Section 1.4.15.4.2.1.
        Does not have a default VPSet.
    Section 1.4.15.4.2.1 description of PSet used to validate elements of VPSet:
        Drinks     uint32                    5
        uDrinks    untracked uint32          5
        oDrinks    uint32           optional 5
        ouDrinks   untracked uint32 optional 5
        ndoDrinks  uint32           optional none
        ndouDrinks untracked uint32 optional none
    Section 1.4.16 orPset PSet description:
        OR group: see Section 1.4.16.1
        OR group: see Section 1.4.16.2
        OR group: optional (do not write to cfi) see Section 1.4.16.3
    Section 1.4.16.1 OR group description:
    This OR group requires at least one of the following to be in the PSet
        x1 string  '11'
        x2 uint32  11
    Section 1.4.16.2 OR group description:
    This OR group requires at least one of the following to be in the PSet
        y1 string  '11'
        y2 uint32  11
    Section 1.4.16.3 OR group description:
    This optional OR group requires at least one or none of the following to be in the PSet
        z1      string  '11'
        z2      uint32  11
        test101 PSet    see Section 1.4.16.3.1
        test103 VPSet   see Section 1.4.16.3.2
    Section 1.4.16.3.1 test101 PSet description:
        Drinks   uint32                    5
        uDrinks  untracked uint32          5
        oDrinks  uint32           optional 5
        ouDrinks untracked uint32 optional 5
    Section 1.4.16.3.2 test103 VPSet description:
        All elements will be validated using the PSet description in Section 1.4.16.3.2.1.
        Does not have a default VPSet.
    Section 1.4.16.3.2.1 description of PSet used to validate elements of VPSet:
        Drinks     uint32                    5
        uDrinks    untracked uint32          5
        oDrinks    uint32           optional 5
        ouDrinks   untracked uint32 optional 5
        ndoDrinks  uint32           optional none
        ndouDrinks untracked uint32 optional none
    Section 1.4.17 andPset PSet description:
        AND group: see Section 1.4.17.1
        AND group: see Section 1.4.17.2
        AND group: see Section 1.4.17.3
        AND group: optional (do not write to cfi) see Section 1.4.17.4
        AND group: optional see Section 1.4.17.5
    Section 1.4.17.1 AND group description:
    This AND group requires all of the following to be in the PSet
        x1 string  '11'
        x2 uint32  11
    Section 1.4.17.2 AND group description:
    This AND group requires all of the following to be in the PSet
        y1 string  '11'
        y2 uint32  11
    Section 1.4.17.3 AND group description:
    This AND group requires all of the following to be in the PSet
        z1 string  '11'
        z2 uint32  11
    Section 1.4.17.4 AND group description:
    This optional AND group requires all or none of the following to be in the PSet
        a1 string  '11'
        a2 uint32  11
    Section 1.4.17.5 AND group description:
    This optional AND group requires all or none of the following to be in the PSet
        b1 string  '11'
        b2 uint32  11
        b3 uint32  11
        b4 uint32  11
        b5 uint32  11
        b6 uint32  11
    Section 1.4.18 ifExistsPset PSet description:
        IfExists pair: see Section 1.4.18.1
        IfExists pair: optional (do not write to cfi) see Section 1.4.18.2
        IfExists pair: see Section 1.4.18.3
    Section 1.4.18.1 IfExists pair description:
    If the first parameter exists, then the second is required to exist
        x1 uint32  11
        x2 string  '11'
    Section 1.4.18.2 optional IfExists pair description:
    If the first parameter exists, then the second is allowed to exist
        y1 uint32  11
        y2 string  '11'
    Section 1.4.18.3 IfExists pair description:
    If the first parameter exists, then the second is required to exist
        z1 uint32  11
        z2 string  '11'
    Section 1.4.19 allowedLabelsPset PSet description:
        p_int_opt int32 optional 0
        testAllowedLabels (list of allowed labels) see Section 1.4.19.1
        testAllowedLabelsUntracked (list of allowed labels) see Section 1.4.19.2
        testOptAllowedLabels (list of allowed labels) optional (do not write to cfi) see Section 1.4.19.3
        testOptAllowedLabelsUntracked (list of allowed labels) optional (do not write to cfi) see Section 1.4.19.4
        testWithSet (list of allowed labels) optional see Section 1.4.19.5
        testWithVectorOfSets (list of allowed labels) optional see Section 1.4.19.6
    Section 1.4.19.1 testAllowedLabels - allowed labels description
    The following parameter contains a list of parameter labels
    which are allowed to be in the PSet
        testAllowedLabels vstring  empty
        type of allowed parameters: int32
    Section 1.4.19.2 testAllowedLabelsUntracked - allowed labels description
    The following parameter contains a list of parameter labels
    which are allowed to be in the PSet
        testAllowedLabelsUntracked untracked vstring  empty
        type of allowed parameters: untracked uint32
    Section 1.4.19.3 testOptAllowedLabels - allowed labels description
    The following parameter contains a list of parameter labels
    which are allowed to be in the PSet
        testOptAllowedLabels vstring optional empty
        type of allowed parameters: int32
    Section 1.4.19.4 testOptAllowedLabelsUntracked - allowed labels description
    The following parameter contains a list of parameter labels
    which are allowed to be in the PSet
        testOptAllowedLabelsUntracked untracked vstring optional empty
        type of allowed parameters: untracked uint32
    Section 1.4.19.5 testWithSet - allowed labels description
    The following parameter contains a list of parameter labels
    which are allowed to be in the PSet
        testWithSet untracked vstring optional empty
        type of allowed parameters: untracked PSet
        see Section 1.4.19.5.1
    Section 1.4.19.5.1 PSet description:
        Drinks    uint32                    5
        uDrinks   untracked uint32          5
        oDrinks   uint32           optional 5
        ouDrinks  untracked uint32 optional 5
    Section 1.4.19.6 testWithVectorOfSets - allowed labels description
    The following parameter contains a list of parameter labels
    which are allowed to be in the PSet
        testWithVectorOfSets untracked vstring optional empty
        type of allowed parameters: untracked VPSet
        see Section 1.4.19.6.1
    Section 1.4.19.6.1 PSet description used to validate all elements of VPSet's:
        Drinks    uint32                    5
        uDrinks   untracked uint32          5
        oDrinks   uint32           optional 5
        ouDrinks  untracked uint32 optional 5
    Section 1.4.20 noDefaultPset3 PSet description:
        noDefault1  int32                 optional none
        noDefault2  vint32                optional none
        noDefault3  uint32                optional none
        noDefault4  vuint32               optional none
        noDefault5  int64                 optional none
        noDefault6  vint64                optional none
        noDefault7  uint64                optional none
        noDefault8  vuint64               optional none
        noDefault9  double                optional none
        noDefault10 vdouble               optional none
        noDefault11 bool                  optional none
        noDefault12 string                optional none
        noDefault13 vstring               optional none
        noDefault14 EventID               optional none
        noDefault15 VEventID              optional none
        noDefault16 LuminosityBlockID     optional none
        noDefault17 VLuminosityBlockID    optional none
        noDefault18 InputTag              optional none
        noDefault19 VInputTag             optional none
        noDefault20 FileInPath            optional none
        noDefault21 LuminosityBlockRange  optional none
        noDefault22 VLuminosityBlockRange optional none
        noDefault23 EventRange            optional none
        noDefault24 VEventRange           optional none
    Section 1.4.21 noDefaultPset4 PSet description:
        noDefault1  untracked int32                 optional none
        noDefault2  untracked vint32                optional none
        noDefault3  untracked uint32                optional none
        noDefault4  untracked vuint32               optional none
        noDefault5  untracked int64                 optional none
        noDefault6  untracked vint64                optional none
        noDefault7  untracked uint64                optional none
        noDefault8  untracked vuint64               optional none
        noDefault9  untracked double                optional none
        noDefault10 untracked vdouble               optional none
        noDefault11 untracked bool                  optional none
        noDefault12 untracked string                optional none
        noDefault13 untracked vstring               optional none
        noDefault14 untracked EventID               optional none
        noDefault15 untracked VEventID              optional none
        noDefault16 untracked LuminosityBlockID     optional none
        noDefault17 untracked VLuminosityBlockID    optional none
        noDefault18 untracked InputTag              optional none
        noDefault19 untracked VInputTag             optional none
        noDefault20 untracked FileInPath            optional none
        noDefault21 untracked LuminosityBlockRange  optional none
        noDefault22 untracked VLuminosityBlockRange optional none
        noDefault23 untracked EventRange            optional none
        noDefault24 untracked VEventRange           optional none
    Section 1.4.22 plugin PSet description:
        There are multiple possible different descriptions for this ParameterSet
        because it will be used by a helper plugin object contained inside the top level
        module plugin object and the type of the helper plugin object is configurable.
        Or if it is in a vector of ParameterSets it might be used by multiple
        helper plugin objects and each could be configured with a different plugin type.
        Each plugin type could allow a different set of configuration parameters.
        Each subsection of this section has one of the possible descriptions.
        All of these plugins are from the category "PluginDescriptoredmtestAnotherIntFactory".
        The plugin type is specified by the parameter named "type".
    Section 1.4.22.1 ParameterSet description for plugin named "edmtestAnotherMakerWithRecursivePlugin"
        value           int32   5
        pluginRecursive PSet    see Section 1.4.22.1.1
        type            string  'edmtestAnotherValueMaker'
    Section 1.4.22.1.1 pluginRecursive PSet description:
        There are multiple possible different descriptions for this ParameterSet
        because it will be used by a helper plugin object contained inside the top level
        module plugin object and the type of the helper plugin object is configurable.
        Or if it is in a vector of ParameterSets it might be used by multiple
        helper plugin objects and each could be configured with a different plugin type.
        Each plugin type could allow a different set of configuration parameters.
        Each subsection of this section has one of the possible descriptions.
        All of these plugins are from the category "PluginDescriptoredmtestAnotherIntFactory".
        The plugin type is specified by the parameter named "type".
        *** The descriptions for this plugin category already started printing above (see Section 1.4.22)! ***
        *** We might still be in the middle of that printout at this point because it might be recursive. ***
        *** We'll not duplicate that printout and skip it. ***
        *** (N.B. If we tried to print it again, we might fall into an infinite recursion.) ***
    Section 1.4.22.2 ParameterSet description for plugin named "edmtestAnotherOneMaker"
        type string  'edmtestAnotherValueMaker'
    Section 1.4.22.3 ParameterSet description for plugin named "edmtestAnotherValueMaker"
        value int32   5
        type  string  'edmtestAnotherValueMaker'
    Section 1.4.23 plugin1 PSet description:
        There are multiple possible different descriptions for this ParameterSet
        because it will be used by a helper plugin object contained inside the top level
        module plugin object and the type of the helper plugin object is configurable.
        Or if it is in a vector of ParameterSets it might be used by multiple
        helper plugin objects and each could be configured with a different plugin type.
        Each plugin type could allow a different set of configuration parameters.
        Each subsection of this section has one of the possible descriptions.
        All of these plugins are from the category "PluginDescriptoredmtestAnotherIntFactory".
        The plugin type is specified by the parameter named "type".
    Section 1.4.23.1 ParameterSet description for plugin named "edmtestAnotherMakerWithRecursivePlugin"
        value           int32   5
        pluginRecursive PSet    see Section 1.4.23.1.1
        type            string  none
    Section 1.4.23.1.1 pluginRecursive PSet description:
        There are multiple possible different descriptions for this ParameterSet
        because it will be used by a helper plugin object contained inside the top level
        module plugin object and the type of the helper plugin object is configurable.
        Or if it is in a vector of ParameterSets it might be used by multiple
        helper plugin objects and each could be configured with a different plugin type.
        Each plugin type could allow a different set of configuration parameters.
        Each subsection of this section has one of the possible descriptions.
        All of these plugins are from the category "PluginDescriptoredmtestAnotherIntFactory".
        The plugin type is specified by the parameter named "type".
        *** The descriptions for this plugin category already started printing above (see Section 1.4.23)! ***
        *** We might still be in the middle of that printout at this point because it might be recursive. ***
        *** We'll not duplicate that printout and skip it. ***
        *** (N.B. If we tried to print it again, we might fall into an infinite recursion.) ***
    Section 1.4.23.2 ParameterSet description for plugin named "edmtestAnotherOneMaker"
        type string  none
    Section 1.4.23.3 ParameterSet description for plugin named "edmtestAnotherValueMaker"
        value int32   5
        type  string  none
    Section 1.4.24 plugin2 VPSet description:
        All elements will be validated using the PSet description in Section 1.4.24.1.
        The default VPSet is empty.
    Section 1.4.24.1 description of PSet used to validate elements of VPSet:
        There are multiple possible different descriptions for this ParameterSet
        because it will be used by a helper plugin object contained inside the top level
        module plugin object and the type of the helper plugin object is configurable.
        Or if it is in a vector of ParameterSets it might be used by multiple
        helper plugin objects and each could be configured with a different plugin type.
        Each plugin type could allow a different set of configuration parameters.
        Each subsection of this section has one of the possible descriptions.
        All of these plugins are from the category "PluginDescriptoredmtestAnotherIntFactory".
        The plugin type is specified by the parameter named "type".
    Section 1.4.24.1.1 ParameterSet description for plugin named "edmtestAnotherMakerWithRecursivePlugin"
        value           int32   5
        pluginRecursive PSet    see Section 1.4.24.1.1.1
        type            string  none
    Section 1.4.24.1.1.1 pluginRecursive PSet description:
        There are multiple possible different descriptions for this ParameterSet
        because it will be used by a helper plugin object contained inside the top level
        module plugin object and the type of the helper plugin object is configurable.
        Or if it is in a vector of ParameterSets it might be used by multiple
        helper plugin objects and each could be configured with a different plugin type.
        Each plugin type could allow a different set of configuration parameters.
        Each subsection of this section has one of the possible descriptions.
        All of these plugins are from the category "PluginDescriptoredmtestAnotherIntFactory".
        The plugin type is specified by the parameter named "type".
        *** The descriptions for this plugin category already started printing above (see Section 1.4.24.1)! ***
        *** We might still be in the middle of that printout at this point because it might be recursive. ***
        *** We'll not duplicate that printout and skip it. ***
        *** (N.B. If we tried to print it again, we might fall into an infinite recursion.) ***
    Section 1.4.24.1.2 ParameterSet description for plugin named "edmtestAnotherOneMaker"
        type string  none
    Section 1.4.24.1.3 ParameterSet description for plugin named "edmtestAnotherValueMaker"
        value int32   5
        type  string  none
    Section 1.4.25 plugin3 VPSet description:
        All elements will be validated using the PSet description in Section 1.4.25.1.
        The default VPSet has 2 elements.
        [0]: see Section 1.4.25.2
        [1]: see Section 1.4.25.3
    Section 1.4.25.1 description of PSet used to validate elements of VPSet:
        There are multiple possible different descriptions for this ParameterSet
        because it will be used by a helper plugin object contained inside the top level
        module plugin object and the type of the helper plugin object is configurable.
        Or if it is in a vector of ParameterSets it might be used by multiple
        helper plugin objects and each could be configured with a different plugin type.
        Each plugin type could allow a different set of configuration parameters.
        Each subsection of this section has one of the possible descriptions.
        All of these plugins are from the category "PluginDescriptoredmtestAnotherIntFactory".
        The plugin type is specified by the parameter named "type".
    Section 1.4.25.1.1 ParameterSet description for plugin named "edmtestAnotherMakerWithRecursivePlugin"
        value           int32   5
        pluginRecursive PSet    see Section 1.4.25.1.1.1
        type            string  none
    Section 1.4.25.1.1.1 pluginRecursive PSet description:
        There are multiple possible different descriptions for this ParameterSet
        because it will be used by a helper plugin object contained inside the top level
        module plugin object and the type of the helper plugin object is configurable.
        Or if it is in a vector of ParameterSets it might be used by multiple
        helper plugin objects and each could be configured with a different plugin type.
        Each plugin type could allow a different set of configuration parameters.
        Each subsection of this section has one of the possible descriptions.
        All of these plugins are from the category "PluginDescriptoredmtestAnotherIntFactory".
        The plugin type is specified by the parameter named "type".
        *** The descriptions for this plugin category already started printing above (see Section 1.4.25.1)! ***
        *** We might still be in the middle of that printout at this point because it might be recursive. ***
        *** We'll not duplicate that printout and skip it. ***
        *** (N.B. If we tried to print it again, we might fall into an infinite recursion.) ***
    Section 1.4.25.1.2 ParameterSet description for plugin named "edmtestAnotherOneMaker"
        type string  none
    Section 1.4.25.1.3 ParameterSet description for plugin named "edmtestAnotherValueMaker"
        value int32   5
        type  string  none
    Section 1.4.25.2 PSet description of default VPSet element [0]
        type string  'edmtestAnotherOneMaker'
    Section 1.4.25.3 PSet description of default VPSet element [1]
        type  string  'edmtestAnotherValueMaker'
        value int32   11
    Section 1.4.26 plugin4 PSet description:
        There are multiple possible different descriptions for this ParameterSet
        because it will be used by a helper plugin object contained inside the top level
        module plugin object and the type of the helper plugin object is configurable.
        Or if it is in a vector of ParameterSets it might be used by multiple
        helper plugin objects and each could be configured with a different plugin type.
        Each plugin type could allow a different set of configuration parameters.
        Each subsection of this section has one of the possible descriptions.
        All of these plugins are from the category "PluginDescriptoredmtestAnotherIntFactory".
        The plugin type is specified by the parameter named "type".
    Section 1.4.26.1 ParameterSet description for plugin named "edmtestAnotherMakerWithRecursivePlugin"
        value           int32   5
        pluginRecursive PSet    see Section 1.4.26.1.1
        type            string  'edmtestAnotherMakerWithRecursivePlugin'
    Section 1.4.26.1.1 pluginRecursive PSet description:
        There are multiple possible different descriptions for this ParameterSet
        because it will be used by a helper plugin object contained inside the top level
        module plugin object and the type of the helper plugin object is configurable.
        Or if it is in a vector of ParameterSets it might be used by multiple
        helper plugin objects and each could be configured with a different plugin type.
        Each plugin type could allow a different set of configuration parameters.
        Each subsection of this section has one of the possible descriptions.
        All of these plugins are from the category "PluginDescriptoredmtestAnotherIntFactory".
        The plugin type is specified by the parameter named "type".
        *** The descriptions for this plugin category already started printing above (see Section 1.4.26)! ***
        *** We might still be in the middle of that printout at this point because it might be recursive. ***
        *** We'll not duplicate that printout and skip it. ***
        *** (N.B. If we tried to print it again, we might fall into an infinite recursion.) ***
    Section 1.4.26.2 ParameterSet description for plugin named "edmtestAnotherOneMaker"
        type string  'edmtestAnotherMakerWithRecursivePlugin'
    Section 1.4.26.3 ParameterSet description for plugin named "edmtestAnotherValueMaker"
        value int32   5
        type  string  'edmtestAnotherMakerWithRecursivePlugin'
    Section 1.4.27 plugin5 VPSet description:
        All elements will be validated using the PSet description in Section 1.4.27.1.
        The default VPSet has 2 elements.
        [0]: see Section 1.4.27.2
        [1]: see Section 1.4.27.3
    Section 1.4.27.1 description of PSet used to validate elements of VPSet:
        There are multiple possible different descriptions for this ParameterSet
        because it will be used by a helper plugin object contained inside the top level
        module plugin object and the type of the helper plugin object is configurable.
        Or if it is in a vector of ParameterSets it might be used by multiple
        helper plugin objects and each could be configured with a different plugin type.
        Each plugin type could allow a different set of configuration parameters.
        Each subsection of this section has one of the possible descriptions.
        All of these plugins are from the category "PluginDescriptoredmtestAnotherIntFactory".
        The plugin type is specified by the parameter named "type".
    Section 1.4.27.1.1 ParameterSet description for plugin named "edmtestAnotherMakerWithRecursivePlugin"
        value           int32   5
        pluginRecursive PSet    see Section 1.4.27.1.1.1
        type            string  'edmtestAnotherMakerWithRecursivePlugin'
    Section 1.4.27.1.1.1 pluginRecursive PSet description:
        There are multiple possible different descriptions for this ParameterSet
        because it will be used by a helper plugin object contained inside the top level
        module plugin object and the type of the helper plugin object is configurable.
        Or if it is in a vector of ParameterSets it might be used by multiple
        helper plugin objects and each could be configured with a different plugin type.
        Each plugin type could allow a different set of configuration parameters.
        Each subsection of this section has one of the possible descriptions.
        All of these plugins are from the category "PluginDescriptoredmtestAnotherIntFactory".
        The plugin type is specified by the parameter named "type".
        *** The descriptions for this plugin category already started printing above (see Section 1.4.27.1)! ***
        *** We might still be in the middle of that printout at this point because it might be recursive. ***
        *** We'll not duplicate that printout and skip it. ***
        *** (N.B. If we tried to print it again, we might fall into an infinite recursion.) ***
    Section 1.4.27.1.2 ParameterSet description for plugin named "edmtestAnotherOneMaker"
        type string  'edmtestAnotherMakerWithRecursivePlugin'
    Section 1.4.27.1.3 ParameterSet description for plugin named "edmtestAnotherValueMaker"
        value int32   5
        type  string  'edmtestAnotherMakerWithRecursivePlugin'
    Section 1.4.27.2 PSet description of default VPSet element [0]
        type string  'edmtestAnotherOneMaker'
    Section 1.4.27.3 PSet description of default VPSet element [1]
        type  string  'edmtestAnotherMakerWithRecursivePlugin'
        value int32   11
