//- Modified: NvE $Date$ Utrecht University
///////////////////////////////////////////////////////////////////////////
+#include <cstdlib>
#include "AliDevice.h"
#include "Riostream.h"
}
}
///////////////////////////////////////////////////////////////////////////
+AliSignal* AliDevice::GetHit(TString name) const
+{
+// Provide the AliSignal object registered as hit with the specified name.
+// Note : The first hit encountered with the specified name will be provided.
+
+ if (!fHits) return 0;
+
+ TString hitname;
+ Int_t nhits=GetNhits();
+ for (Int_t i=0; i<nhits; i++)
+ {
+ AliSignal* sx=(AliSignal*)fHits->At(i);
+ if (sx)
+ {
+ hitname=sx->GetName();
+ if (hitname == name) return sx;
+ }
+ }
+
+ return 0; // No matching name found
+}
+///////////////////////////////////////////////////////////////////////////
AliSignal* AliDevice::GetIdHit(Int_t id) const
{
// Return the hit with unique identifier "id".
break; // go for next hit
}
- if (mode==-1 && s->GetSignal(idx,mcal) < ((AliSignal*)fOrdered->At(j))->GetSignal(idx,mcal)) continue;
- if (mode==1 && s->GetSignal(idx,mcal) > ((AliSignal*)fOrdered->At(j))->GetSignal(idx,mcal)) continue;
+ if (mode==-1 && s->GetSignal(idx,mcal) <= ((AliSignal*)fOrdered->At(j))->GetSignal(idx,mcal)) continue;
+ if (mode==1 && s->GetSignal(idx,mcal) >= ((AliSignal*)fOrdered->At(j))->GetSignal(idx,mcal)) continue;
nord++;
for (Int_t k=nord-1; k>j; k--) // create empty position
fOrdered->AddAt(fOrdered->At(k-1),k);
}
fOrdered->AddAt(s,j); // put hit at empty position
- break; // go for next matrix module
+ break; // go for next hit
}
}
return fOrdered;
break; // go for next hit
}
- if (mode==-1 && s->GetSignal(idx,mcal) < ((AliSignal*)fOrdered->At(j))->GetSignal(idx,mcal)) continue;
- if (mode==1 && s->GetSignal(idx,mcal) > ((AliSignal*)fOrdered->At(j))->GetSignal(idx,mcal)) continue;
+ if (mode==-1 && s->GetSignal(idx,mcal) <= ((AliSignal*)fOrdered->At(j))->GetSignal(idx,mcal)) continue;
+ if (mode==1 && s->GetSignal(idx,mcal) >= ((AliSignal*)fOrdered->At(j))->GetSignal(idx,mcal)) continue;
nord++;
for (Int_t k=nord-1; k>j; k--) // create empty position
fOrdered->AddAt(fOrdered->At(k-1),k);
}
fOrdered->AddAt(s,j); // put hit at empty position
- break; // go for next matrix module
+ break; // go for next hit
}
}
return fOrdered;
if (scale<0)
{
Float_t vmin,vmax;
- GetExtremes(vmin,vmax,idx,hits);
+ GetExtremes(vmin,vmax,idx,hits,mode);
sigmax=fabs(vmax);
if (fabs(vmin)>sigmax) sigmax=fabs(vmin);
}
}
}
sig=sx->GetSignal(idx,mode);
+
+ // Skip dead signals
+ if (fabs(sig) <= 0.) continue;
+
TPolyMarker3D* m=new TPolyMarker3D();
m->SetMarkerStyle(8);
m->SetMarkerColor(mcol);
if (scale<0)
{
Float_t vmin,vmax;
- GetExtremes(vmin,vmax,name,hits);
+ GetExtremes(vmin,vmax,name,hits,mode);
sigmax=fabs(vmax);
if (fabs(vmin)>sigmax) sigmax=fabs(vmin);
}
}
}
sig=sx->GetSignal(idx,mode);
+
+ // Skip dead signals
+ if (fabs(sig) <= 0.) continue;
+
TPolyMarker3D* m=new TPolyMarker3D();
m->SetMarkerStyle(8);
m->SetMarkerColor(mcol);