Hi... > I have a channel_id and I want to get the corresponding pedestal from the > conditions database. I have a cached instance of EcalConditions. Here's > what I managed to figure out that works: > > ecalConditions.getChannelConstants(ecalConditions.getChannelCollection().findChannel(channel_id)).getCalibration().getPedestal(); Is channel ID here the sequential 1-442 number? Or is it a cell ID from the hit? (I think it must be the first. Otherwise it wouldn’t work!) That seems like an okay way to do it. You could add this as a utility method someplace e.g. EcalConditions.findPedestal(channelID) if this needs to be called from multiple places. The method chaining is a bit ugly I guess. (It might look a little simpler if you were using directly the EcalCalibrationCollection instead of EcalChannelConstants which is basically just provided for convenience.) > Also, maybe related to Luca's issue, what happens if the run number changes? > Will a cached EcalChannelCollection and/or EcalConditions need to be updated manually? If a new run number is encountered in the same job, the conditions system is completely reset, and new conditions are loaded, as well as a new detector object. You can catch this via the Driver.detectorChanged() API method. So basically once you have cached a collection reference, it is only valid for that run. If you get notified of new detector conditions, then the Driver should update itself accordingly, including setting a reference to the new collection object. > > -Nathan > > > On Jan 11, 2015, at 10:06 PM, "McCormick, Jeremy I." <[log in to unmask]> wrote: > >> This util method should do that >> >> EcalChannel channel = EcalConditionsUtil.findChannel(IIdentifierHelper helper, long cellId); >> >> where >> >> helper = subdetector.getDetectorElement().getIdentifierHelper(); >> >> There should be a few examples of it in the code. >> >> Or you can call >> >> EcalChannelCollection.findGeometric(hit.getCellID()); >> >> if you have the EcalChannelCollection cached. >> ________________________________________ >> From: [log in to unmask] <[log in to unmask]> on behalf of Nathan Baltzell <[log in to unmask]> >> Sent: Sunday, January 11, 2015 3:09 PM >> To: hps-software >> Subject: hit channel_id >> >> If I have a RawCalorimeterHit object, and I want the corresponding channel’s unique >> channel_id from the database. I came up with this that seems to work (in that it looks >> like it’s always between 0 and 441, but I didn’t check it any more than that): >> >> findChannel(hit.getCellID()).getCalibration().getChannelId() >> >> Does anyone know if it is correct? >> >> -Nathan >> ######################################################################## >> Use REPLY-ALL to reply to list >> >> To unsubscribe from the HPS-SOFTWARE list, click the following link: >> https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=HPS-SOFTWARE&A=1 > > ######################################################################## > Use REPLY-ALL to reply to list > > To unsubscribe from the HPS-SOFTWARE list, click the following link: > https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=HPS-SOFTWARE&A=1 ######################################################################## Use REPLY-ALL to reply to list To unsubscribe from the HPS-SOFTWARE list, click the following link: https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=HPS-SOFTWARE&A=1