GAP function calculating the defects of blocks for the cyclotomic Hecke algebras of [ChMi]

The following function takes 4 inputs:

DefBlock:=function(H,e,r,l) 
 local p,c,sp,basis,dim,tup,block,lc,defect,s,i,j;
 p:=CharParams(H.reflectionGroup);
 c:=CharTable(H).irreducibles;
 sp:=List(c,i->List(i,j->Value(j,["x",E(e)^r])));       
 basis:=sp{List(l,i->Position(p,[i]))};
 dim:=Length(basis);
 tup:=Tuples([0,1,2,3,4,5,6],dim);    
 lc:=List(tup,j->Sum([1..dim],i->j[i]*basis[i]));
 block:=Set(Concatenation(List(lc,j->Positions(sp,j))));
 defect:=[];
 for i in block do
    s:=FactorizedSchurElement(H,p[i]).vcyc[1].pol.vcyc;
    if e=1 then Add(defect,s[PositionProperty(s,j->j[1]=0)][2]);
    else Add(defect,s[PositionProperty(s,j->j[1]=r/e)][2]);fi;
 od;
 return [Set(defect),p{block}];
end;
The outputs of the above function is a list with two elements: In this file we give the results of running the DefBlock function for all cyclotomic Hecke algebras of [ChMi] and all roots of unity E(e)^r for which these algebras are not semisimple. If the result does not depend on r, we only consider the case r=1. Moreover, sometimes when the result is the same for several values of r, we will write (for example) :
gap> DefBlock(H,30,7,[[1,0],[1,30]]); gap> DefBlock(H,30,13,[[1,0],[1,30]]); 
gap> DefBlock(H,30,17,[[1,0],[1,30]]); gap> DefBlock(H,30,23,[[1,0],[1,30]]);
[ [ [ 1 ] ], [ [ [ 1, 0 ] ], [ [ 1, 30 ] ], [ [ 2, 1 ] ] ] ]
We observe that all the lists Set(defect) only contain one element. This means that all characters inside a block have the same defect. This proves the main result of [ChJa] for all cyclotomic Hecke algebras of [ChMi].