]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - RALICE/AliDevice.cxx
13-nov-2005 NvE IceF2k updated to store also the event trigger information in the...
[u/mrichter/AliRoot.git] / RALICE / AliDevice.cxx
index 9f3715ce4c00bc55cb53ea03db884e459108886b..89f917c8f2f1b34f08e1afb1a61d5509fc46dc64 100644 (file)
@@ -331,6 +331,28 @@ AliSignal* AliDevice::GetHit(Int_t j) const
  }
 }
 ///////////////////////////////////////////////////////////////////////////
+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".
@@ -560,8 +582,8 @@ TObjArray* AliDevice::SortHits(Int_t idx,Int_t mode,TObjArray* hits,Int_t mcal)
     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
@@ -645,8 +667,8 @@ TObjArray* AliDevice::SortHits(TString name,Int_t mode,TObjArray* hits,Int_t mca
     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
@@ -707,7 +729,7 @@ void AliDevice::DisplayHits(Int_t idx,Float_t scale,TObjArray* hits,Int_t dp,Int
  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);
  }
@@ -743,6 +765,10 @@ void AliDevice::DisplayHits(Int_t idx,Float_t scale,TObjArray* hits,Int_t dp,Int
    }
   }
   sig=sx->GetSignal(idx,mode);
+
+  // Skip dead signals
+  if (fabs(sig) <= 0.) continue;
+
   TPolyMarker3D* m=new TPolyMarker3D();
   m->SetMarkerStyle(8);
   m->SetMarkerColor(mcol);
@@ -803,7 +829,7 @@ void AliDevice::DisplayHits(TString name,Float_t scale,TObjArray* hits,Int_t dp,
  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);
  }
@@ -842,6 +868,10 @@ void AliDevice::DisplayHits(TString name,Float_t scale,TObjArray* hits,Int_t dp,
    }
   }
   sig=sx->GetSignal(idx,mode);
+
+  // Skip dead signals
+  if (fabs(sig) <= 0.) continue;
+
   TPolyMarker3D* m=new TPolyMarker3D();
   m->SetMarkerStyle(8);
   m->SetMarkerColor(mcol);