Setting up Zigbee network on 4 floors: ZHA or HA supported Zigbee GW?

This! Use either the ZHA integration or Zigbee2MQTT addon with a Zigbee Coordinator adapter…

Understand that a limitation with Zigbee is that Zigbee devices only support connecting to a single “Zigbee Coordinator”, and you can not have more than one “Zigbee Coordinator” in a Zigbee network mesh. So if you would setup more than one Zigbee solution then each “Zigbee Coordinator” / Zigbee network will have no knowledge of each other at the Zigbee level.

The general recommendation is to only have one single “Zigbee Coordinator” and connect all devices to it, that way you build out your one Zigbee network mesh.The goal will usually be to build up a single large Zigbee network mesh with as many mains-powered Zigbee devices as possible because most of those will act as a “Zigbee Router” device and as such extend range and coverage.

Recommend try to locate the “Zigbee Coordinator” in the middle of the house on the main floor if possible, then start by adding mains-powered devices that can also act as “Zigbee Router” devices before adding any Zigbee End Device (like example battery-operated devices).

In order to place the “Zigbee Coordinator” adapter in the middle of the house you could use either a very long USB extension cable or you could buy a network-attached adapter like Tube’s Gateways, see → https://www.tubeszb.com/ and https://community.home-assistant.io/t/tubes-zb-coordinators-and-routers-was-zigbee-router-on-steroids/280896/228

The simplest is to buy a USB adapter like → ITead's "Sonoff Zigbee 3.0 USB Dongle Plus" (model "ZBDongle-P") based on Texas Instruments CC2652P +20dBm radio SoC/MCU

Personally, I suggest also buying a few “IKEA Trådfri Signal Repeater” and placing at least one per floor.

PS: Recommend read → https://github.com/home-assistant/home-assistant.io/pull/18864 and https://www.home-assistant.io/integrations/zha#best-practices-to-avoid-pairingconnection-difficulties