It seems when a Enb related event is looking imsi, the path would always contain "LteEnbPhy" and would never contain "LteUePhy". Similarly, when an Ue related event is looking for imsi, the path would always contain "LteUePhy". Thus the judge here seems unnecessary.
By the way,
the if statement "if (path.find ("/UlPhyTransmission"))" will always be true.
Perhaps it should be
if (path.find ("/UlPhyTransmission")!=std::string::npos)
otherwise no matter whether the string is matched, it would go into the first branch.