For the event building toolchain, we first run the BeamFetcherV2 toolchain to create a root file containing all beam device information for a particular run. The Event building will then read from this root file and pass the individual event beam information along through the store. This way, we also permanently save device information to a persistent location in case that information is temporarily stored in the database and is un-queriable in the future or if we decide to develop some beam quality FOM we wish to retroactively apply.
Along these lines, as the BeamFetcherV2 toolchain queries and stores the beam device information into the output root file, it was noticed that if a particular entry is blank/missing, the root file will not save any of the entries for a particular device (branch within the root file), as there would then be unequal entries across root branches within the same TTree. To remedy this, we just assign -9999 to blank entries so that the device branch will not miss any additional entries. Probably not the most efficient way to do it but it works fine. No devices have nominal values near -9999 so its easy to reject those entries (some have nominal values around 0 so we can't use that).
For the event building toolchain, we first run the
BeamFetcherV2
toolchain to create a root file containing all beam device information for a particular run. The Event building will then read from this root file and pass the individual event beam information along through the store. This way, we also permanently save device information to a persistent location in case that information is temporarily stored in the database and is un-queriable in the future or if we decide to develop some beam quality FOM we wish to retroactively apply.Along these lines, as the
BeamFetcherV2
toolchain queries and stores the beam device information into the output root file, it was noticed that if a particular entry is blank/missing, the root file will not save any of the entries for a particular device (branch within the root file), as there would then be unequal entries across root branches within the same TTree. To remedy this, we just assign -9999 to blank entries so that the device branch will not miss any additional entries. Probably not the most efficient way to do it but it works fine. No devices have nominal values near -9999 so its easy to reject those entries (some have nominal values around 0 so we can't use that).