fMask(mask),
fStatusMap(new AliMUON2DMap(true)),
fRejectProbabilities(new AliMUON2DMap(true)),
-fRejectList(0x0)
+fRejectList(0x0),
+fComputeOnDemand(deferredInitialization)
{
/// ctor
if (!deferredInitialization)
{
- AliCodeTimerAuto("Computing complete status map at once");
+ AliCodeTimerAuto("Computing complete status map at once",0);
AliMUONVStore* neighboursStore = padStatusMaker.NeighboursStore();
AliMUONVCalibParam* param;
TIter next(neighboursStore->CreateIterator());
/// Compute the status map for a given manu, and add it to our internal
/// fStatusMap internal storage
- AliCodeTimerAuto("(Int_t,Int_t)")
+ AliCodeTimerAuto("(Int_t,Int_t)",0)
AliMUONVCalibParam* param = new AliMUONCalibParamNI(1,AliMpConstants::ManuNofChannels(),
detElemId,manuId,-1);
{
status = statusParam->ValueAsIntFast(c); //fkStatusMaker.PadStatus(detElemId,m,c);
}
- if ( ( fMask==0 && status !=0 ) || ( (status & fMask) != 0 ) )
+ if ( ( fMask != 0 ) && ( (status & fMask) != 0 ) )
{
statusMap |= (1<<i);
}
if ( !fRejectProbabilities ) return;
- AliCodeTimerAuto("");
+ AliCodeTimerAuto("",0);
fRejectList->Clear();
AliMUONVCalibParam* param = static_cast<AliMUONVCalibParam*>(fStatusMap->FindObject(detElemId,manuId));
if (!param)
{
- // not yet computed, so do it now
- param = ComputeStatusMap(detElemId,manuId);
+ if ( fComputeOnDemand )
+ {
+ // not yet computed, so do it now
+ param = ComputeStatusMap(detElemId,manuId);
+ }
+ else
+ {
+ // we're locked. probably a bad manuId ?
+ return fgkSelfDead;
+ }
}
Int_t statusMap = param->ValueAsInt(manuChannel);