27 #include "Riostream.h"
50 fTracks[0]=fTracks[1]=fTracks[2]=-1;
51 for (
int j=0;j<2;j++) {
60 for (
int k=0;k<50;k++) {
67 fNcluster[0]=fNcluster[1]=-1;
90 for (Int_t i=0; i<fMultiplicity[0]; i++)
fIndexMap[i][0] = (Int_t) digitsId[i];
133 Int_t low=from, high=upto-1, half;
136 if(y>coord[half]) low=half;
153 Int_t
id[3] = {-2,-2,-2};
154 Float_t jx[3] = {0.,0.,0.};
155 Float_t jy[3] = {0.,0.,0.};
156 Float_t jq[3] = {0.,0.,0.};
157 Int_t jid[3] = {-2,-2,-2};
167 if ((i == 1 && j ==
id[i-1])
168 ||(i == 2 && (j ==
id[i-1] || j ==
id[i-2])))
continue;
169 if (TMath::Abs(xdarray[j]) < xmin) {
170 xmin = TMath::Abs(xdarray[j]);
212 if (iMixed==0 && iBg==0) {
214 }
else if ((iPhys != 0 && iBg !=0) || iMixed != 0) {
231 cout << Form(
"<AliMUONRawCluster>: DetEle=%4d (x,y,z)=(%7.4f,%7.4f,%7.4f) cm"
232 " Chi2=%7.2f Q=%7.2f",
236 if ( sopt.Contains(
"FULL") )
238 cout <<
", Hit=" << setw(4) <<
GetTrack(0) <<
239 ", Track1=" << setw(4) <<
GetTrack(1) <<
240 ", Track2=" << setw(4) <<
GetTrack(2);
250 for (Int_t icat=0;icat<2;icat++) {
302 if (i==0 || i==1)
return fQ[i];
309 if (i==0 || i==1)
return fX[i];
316 if (i==0 || i==1)
return fY[i];
323 if (i==0 || i==1)
return fZ[i];
330 if (i==0 || i==1 || i==2)
return fTracks[i];
370 if (i==0 || i==1)
return fChi2[i];
417 if (i==0 || i==1 || i==2) {
Int_t GetMultiplicity(Int_t i=0) const
Int_t fPhysicsMap[50]
Distinguish signal and background contr.
printf("Chi2/npoints = %f\n", TMath::Sqrt(chi2/npoints))
virtual Double_t GetCharge() const
Set the cluster charge.
Int_t AddY(Int_t i, Float_t Y)
Float_t fQ[2]
Q of cluster (in ADC counts)
virtual Double_t GetX() const
Return coordinate X (cm)
Int_t SetClusterType(Int_t type)
Float_t GetPeakSignal(Int_t i=0) const
Int_t SetGhost(Int_t ghost)
static Int_t BinarySearch(Float_t r, TArrayF ccord, Int_t from, Int_t upto)
Int_t AddX(Int_t i, Float_t X)
Int_t fIndexMap[50][2]
Indices of digits.
Int_t fTracks[3]
Labels of overlapped tracks.
virtual Double_t GetChi2() const
Return chi2 of cluster.
Int_t SetZ(Int_t i, Float_t Z)
Int_t GetTrack(Int_t i=0) const
Float_t fX[2]
X of cluster.
virtual void SetDigitsId(Int_t nDigits, const UInt_t *digitsId)
Set Id of associated digits.
Int_t PhysicsContribution() const
Int_t Compare(const TObject *obj) const
Int_t GetClusterType() const
Int_t SetPeakSignal(Int_t i, Float_t peaksignal)
Float_t fPeakSignal[2]
Peak signal.
virtual Double_t GetZ() const
Return coordinate Z (cm)
virtual ~AliMUONRawCluster()
abstract base class for clusters
Int_t AddZ(Int_t i, Float_t Z)
Int_t SetMultiplicity(Int_t i, Int_t mul)
virtual Int_t GetDetElemId() const
Return detection element Id.
Int_t SetNcluster(Int_t i, Int_t ncluster)
virtual void Print(Option_t *opt="") const
static void SortMin(Int_t *idx, Float_t *xdarray, Float_t *xarray, Float_t *yarray, Float_t *qarray, Int_t ntr)
Int_t fClusterType
Cluster type.
Int_t SetX(Int_t i, Float_t X)
Float_t fChi2[2]
Chi**2 of fit.
Float_t fZ[2]
Z of cluster.
Float_t fY[2]
Y of cluster.
Int_t AddCharge(Int_t i, Float_t Q)
Int_t GetNcluster(Int_t i=0) const
Int_t fMultiplicity[2]
Cluster multiplicity.
virtual void SetChi2(Double_t chi2)
Set chi2 of cluster.
virtual Double_t GetY() const
Return coordinate Y (cm)
Int_t fNcluster[2]
Number of clusters.
Int_t SetY(Int_t i, Float_t Y)
Int_t SetTrack(Int_t i, Int_t track)
virtual void SetCharge(Double_t q)
Set the cluster charge.