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
|