Do you want to search in those items for some term or you want to filter them? There is a difference how searching and filtering works in the background.
When using smart search, some algorithms are executed to return the results based on some relevance and score. When using smart search filters - these are just adding another terms to the initial search term to refine the search results by relevance and score. Just like you search on Google for something - you may get various results based on the search algorithms. I would say, that when searching you have some part of the results which are fuzzy/random - I am looking for some term, but I do not know what the exact results are yet, as the user.
Using data filtering on the other hand you have defined the set of data. E.g. when filtering products or in your case branches and events. For example, the user wants to display all events for branch A - so you will just filter the dataset since the system knows the events related to branch A. Basically, you need to add a WHERE condition to the SQL query which is getting the data from the DB. In this case it is better to use filter+datasource+viewer web parts as described in the documentation. The data source will select all products by default, but the filter(s) will tell the datasource to select only shoes this time, select only green shoes, green shoes size 10…etc. But in this case, you need to create the filter which will work with the desired set of data.
In some cases, you can interchange the two above, as mentioned at the top, for the end user the look and feel is in 99% of cases the same. So, depending on your needs, you may be able to achieve your need by using smart search and search filters. But in some cases, creating then the search condition and filter's conditions and values may get tricky and complicated. So, it is better to use the classic filter + datasource web part approach.