I know that the last 4 bytes of it is the secondary scale but what is the rest of it?
It’s the prefix of the header that’s hashed to define the siphash keys, so everything up to and including the nonce. See https://github.com/mimblewimble/grin/blob/0b21ee607aae8f57b424bd3696cfa9c5cab55271/core/src/core/block.rs#L338-L351
In very short way: the block header to solve the PoW for including diff and previous block header for example
does it also have next block’s difficulty or total difficulty? if so how can I get it?
Yes; it’s written in https://github.com/mimblewimble/grin/blob/43bd5a56ff0ac6d6c2010eccac763a837ed7d075/core/src/pow/types.rs#L266-L274
You can get it directly as header.pow.total_difficulty
how to do this “header.pow.total_difficulty” ?
can you please tell the structure of pre_pow like the last 4 bytes is for secondary scale.
Last 8 bytes is nonce and 4 bytes before that is secondary_scale,
see also