Good day, dear forum members. I apologize for my possibly stupid question. I can't figure out the problem. There is a function in my smart contract

    ///----------------
    struct parmsData{
        address     a
        uint256     b
        uint256     c
        uint256     d
        uint256     f
        uint256     g
        address[]   h
        string[]    j
        uint256[]   k
        uint24[]    l
    } 
    
    function calc(parmsData memory parms) external isOwner payable returns(bool){
    .................
    }
    //------------------------------

the contract has been published, but I cannot access this function. since 

    bytes4(keccak256(bytes("calc((address,uint256,uint256,uint256,uint256,uint256,address[],string[],uint256[],uint24[]))")))

 
It doesn't match. Please help me how to calculate the correct bytes4 values. Thank you all very much. I'm sorry again.