@@ -1390,8 +1390,21 @@ impl Grid {
13901390 channels,
13911391 pid_basis : infos[ 0 ] . pid_basis ,
13921392 convolutions : self . convolutions . clone ( ) ,
1393+ // TODO: the next line is probably wrong for flexible-scale grids
13931394 interps : self . interps . clone ( ) ,
1394- kinematics : self . kinematics . clone ( ) ,
1395+ kinematics : iter:: once ( Kinematics :: Scale ( 0 ) )
1396+ . chain ( if fac0 < 0.0 && frg0 < 0.0 {
1397+ Some ( Kinematics :: Scale ( 1 ) )
1398+ } else {
1399+ None
1400+ } )
1401+ . chain (
1402+ self . kinematics
1403+ . iter ( )
1404+ . filter ( |kin| matches ! ( kin, Kinematics :: X ( _) ) )
1405+ . cloned ( ) ,
1406+ )
1407+ . collect ( ) ,
13951408 scales : Scales {
13961409 // FK-tables have their renormalization scales burnt in
13971410 ren : ScaleFuncForm :: NoScale ,
@@ -1552,7 +1565,7 @@ mod tests {
15521565 Conv :: new( ConvType :: UnpolPDF , 2212 ) ,
15531566 Conv :: new( ConvType :: UnpolPDF , 2212 ) ,
15541567 ] ,
1555- v0:: default_interps ( 2 ) ,
1568+ v0:: default_interps ( false , 2 ) ,
15561569 vec ! [ Kinematics :: Scale ( 0 ) , Kinematics :: X ( 0 ) , Kinematics :: X ( 1 ) ] ,
15571570 Scales {
15581571 ren : ScaleFuncForm :: Scale ( 0 ) ,
@@ -1581,7 +1594,7 @@ mod tests {
15811594 Conv :: new( ConvType :: UnpolPDF , 2212 ) ,
15821595 Conv :: new( ConvType :: UnpolPDF , 2212 ) ,
15831596 ] ,
1584- v0:: default_interps ( 2 ) ,
1597+ v0:: default_interps ( false , 2 ) ,
15851598 vec ! [ Kinematics :: Scale ( 0 ) , Kinematics :: X ( 0 ) , Kinematics :: X ( 1 ) ] ,
15861599 Scales {
15871600 ren : ScaleFuncForm :: Scale ( 0 ) ,
@@ -1605,7 +1618,7 @@ mod tests {
16051618 Conv :: new( ConvType :: UnpolPDF , 2212 ) ,
16061619 Conv :: new( ConvType :: UnpolPDF , 2212 ) ,
16071620 ] ,
1608- v0:: default_interps ( 1 ) ,
1621+ v0:: default_interps ( false , 1 ) ,
16091622 vec ! [ Kinematics :: Scale ( 0 ) , Kinematics :: X ( 0 ) , Kinematics :: X ( 1 ) ] ,
16101623 Scales {
16111624 ren : ScaleFuncForm :: Scale ( 0 ) ,
@@ -1629,7 +1642,7 @@ mod tests {
16291642 Conv :: new( ConvType :: UnpolPDF , 2212 ) ,
16301643 Conv :: new( ConvType :: UnpolPDF , 2212 ) ,
16311644 ] ,
1632- v0:: default_interps ( 2 ) ,
1645+ v0:: default_interps ( false , 2 ) ,
16331646 vec ! [ Kinematics :: Scale ( 0 ) , Kinematics :: X ( 0 ) , Kinematics :: X ( 1 ) ] ,
16341647 Scales {
16351648 ren : ScaleFuncForm :: Scale ( 0 ) ,
@@ -1660,7 +1673,7 @@ mod tests {
16601673 ] ,
16611674 PidBasis :: Pdg ,
16621675 vec ! [ Conv :: new( ConvType :: UnpolPDF , 2212 ) ; 2 ] ,
1663- v0:: default_interps ( 2 ) ,
1676+ v0:: default_interps ( false , 2 ) ,
16641677 vec ! [ Kinematics :: Scale ( 0 ) , Kinematics :: X ( 0 ) , Kinematics :: X ( 1 ) ] ,
16651678 Scales {
16661679 ren : ScaleFuncForm :: Scale ( 0 ) ,
@@ -1683,7 +1696,7 @@ mod tests {
16831696 ] ,
16841697 PidBasis :: Pdg ,
16851698 vec ! [ Conv :: new( ConvType :: UnpolPDF , 2212 ) ; 2 ] ,
1686- v0:: default_interps ( 2 ) ,
1699+ v0:: default_interps ( false , 2 ) ,
16871700 vec ! [ Kinematics :: Scale ( 0 ) , Kinematics :: X ( 0 ) , Kinematics :: X ( 1 ) ] ,
16881701 Scales {
16891702 ren : ScaleFuncForm :: Scale ( 0 ) ,
@@ -1711,7 +1724,7 @@ mod tests {
17111724 ] ,
17121725 PidBasis :: Pdg ,
17131726 vec ! [ Conv :: new( ConvType :: UnpolPDF , 2212 ) ; 2 ] ,
1714- v0:: default_interps ( 2 ) ,
1727+ v0:: default_interps ( false , 2 ) ,
17151728 vec ! [ Kinematics :: Scale ( 0 ) , Kinematics :: X ( 0 ) , Kinematics :: X ( 1 ) ] ,
17161729 Scales {
17171730 ren : ScaleFuncForm :: Scale ( 0 ) ,
@@ -1737,7 +1750,7 @@ mod tests {
17371750 ] ,
17381751 PidBasis :: Pdg ,
17391752 vec ! [ Conv :: new( ConvType :: UnpolPDF , 2212 ) ; 2 ] ,
1740- v0:: default_interps ( 2 ) ,
1753+ v0:: default_interps ( false , 2 ) ,
17411754 vec ! [ Kinematics :: Scale ( 0 ) , Kinematics :: X ( 0 ) , Kinematics :: X ( 1 ) ] ,
17421755 Scales {
17431756 ren : ScaleFuncForm :: Scale ( 0 ) ,
@@ -1770,7 +1783,7 @@ mod tests {
17701783 ] ,
17711784 PidBasis :: Pdg ,
17721785 vec ! [ Conv :: new( ConvType :: UnpolPDF , 2212 ) ; 2 ] ,
1773- v0:: default_interps ( 2 ) ,
1786+ v0:: default_interps ( false , 2 ) ,
17741787 vec ! [ Kinematics :: Scale ( 0 ) , Kinematics :: X ( 0 ) , Kinematics :: X ( 1 ) ] ,
17751788 Scales {
17761789 ren : ScaleFuncForm :: Scale ( 0 ) ,
@@ -1792,7 +1805,7 @@ mod tests {
17921805 ] ,
17931806 PidBasis :: Pdg ,
17941807 vec ! [ Conv :: new( ConvType :: UnpolPDF , 2212 ) ; 2 ] ,
1795- v0:: default_interps ( 2 ) ,
1808+ v0:: default_interps ( false , 2 ) ,
17961809 vec ! [ Kinematics :: Scale ( 0 ) , Kinematics :: X ( 0 ) , Kinematics :: X ( 1 ) ] ,
17971810 Scales {
17981811 ren : ScaleFuncForm :: Scale ( 0 ) ,
@@ -1822,7 +1835,7 @@ mod tests {
18221835 ] ,
18231836 PidBasis :: Pdg ,
18241837 vec ! [ Conv :: new( ConvType :: UnpolPDF , 2212 ) ; 2 ] ,
1825- v0:: default_interps ( 2 ) ,
1838+ v0:: default_interps ( false , 2 ) ,
18261839 vec ! [ Kinematics :: Scale ( 0 ) , Kinematics :: X ( 0 ) , Kinematics :: X ( 1 ) ] ,
18271840 Scales {
18281841 ren : ScaleFuncForm :: Scale ( 0 ) ,
@@ -1845,7 +1858,7 @@ mod tests {
18451858 ] ,
18461859 PidBasis :: Pdg ,
18471860 vec ! [ Conv :: new( ConvType :: UnpolPDF , 2212 ) ; 2 ] ,
1848- v0:: default_interps ( 2 ) ,
1861+ v0:: default_interps ( false , 2 ) ,
18491862 vec ! [ Kinematics :: Scale ( 0 ) , Kinematics :: X ( 0 ) , Kinematics :: X ( 1 ) ] ,
18501863 Scales {
18511864 ren : ScaleFuncForm :: Scale ( 0 ) ,
@@ -1872,7 +1885,7 @@ mod tests {
18721885 vec ! [ channel![ 1.0 * ( 21 , 21 ) ] ] ,
18731886 PidBasis :: Pdg ,
18741887 vec ! [ Conv :: new( ConvType :: UnpolPDF , 2212 ) ; 2 ] ,
1875- v0:: default_interps ( 2 ) ,
1888+ v0:: default_interps ( false , 2 ) ,
18761889 vec ! [ Kinematics :: Scale ( 0 ) , Kinematics :: X ( 0 ) , Kinematics :: X ( 1 ) ] ,
18771890 Scales {
18781891 ren : ScaleFuncForm :: Scale ( 0 ) ,
0 commit comments