From 471c3af67c3d25e8bd5dc04397a59f56aa20cc60 Mon Sep 17 00:00:00 2001 From: fca Date: Fri, 18 Feb 2000 16:46:37 +0000 Subject: [PATCH] remove junk file also from head --- MUON/AliMUONpoints.h.cxx | 461 --------------------------------------- 1 file changed, 461 deletions(-) delete mode 100644 MUON/AliMUONpoints.h.cxx diff --git a/MUON/AliMUONpoints.h.cxx b/MUON/AliMUONpoints.h.cxx deleted file mode 100644 index 7620d5e6c31..00000000000 --- a/MUON/AliMUONpoints.h.cxx +++ /dev/null @@ -1,461 +0,0 @@ -/************************************************************************** - * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * - * * - * Author: The ALICE Off-line Project. * - * Contributors are mentioned in the code where appropriate. * - * * - * Permission to use, copy, modify and distribute this software and its * - * documentation strictly for non-commercial purposes is hereby granted * - * without fee, provided that the above copyright notice appears in all * - * copies and that both the copyright notice and this permission notice * - * appear in the supporting documentation. The authors make no claims * - * about the suitability of this software for any purpose. It is * - * provided "as is" without express or implied warranty. * - **************************************************************************/ - -/* -$Log$ -*/ - -/////////////////////////////////////////////////////////////////////////////// -// // -// This class contains the points for the ALICE event display // -// // -//Begin_Html -/* - -*/ -//End_Html -// // -// // -/////////////////////////////////////////////////////////////////////////////// - -#include "AliMUONpoints.h" -#include "AliMUONdisplay.h" -#include "AliRun.h" -#include "TPad.h" -#include "TVirtualPad.h" -#include "TPolyLine3D.h" -#include "TPaveText.h" -#include "TView.h" -#include "TMath.h" - -//const Int_t MAX_Nipx=1026, MAX_Nipy=1026; -const Int_t MAX_Nipx=400, MAX_Nipy=800; - -ClassImp(AliMUONpoints) - -//_____________________________________________________________________________ -AliMUONpoints::AliMUONpoints() -{ - // - // Default constructor - // - fHitIndex = 0; - fTrackIndex = 0; - fDigitIndex = 0; - fMarker[0] = fMarker[1] = fMarker[2]=0; - fMatrix = 0; -} - -//_____________________________________________________________________________ -AliMUONpoints::AliMUONpoints(Int_t npoints) - :AliPoints(npoints) -{ - // - // Standard constructor - // - fHitIndex = 0; - fTrackIndex = 0; - fDigitIndex = 0; - fMarker[0] = fMarker[1] = fMarker[2]=0; - fMatrix = 0; -} - -//_____________________________________________________________________________ -AliMUONpoints::~AliMUONpoints() -{ - // - // Default destructor - // - fHitIndex = 0; - fTrackIndex = 0; - fDigitIndex = 0; - for (Int_t i=0;i<3;i++){ - if ( -fMarker[i]) delete fMarker[i]; - } - fMatrix = 0; -} - -//_____________________________________________________________________________ -//void AliMUONpoints::ExecuteEvent(Int_t event, Int_t px, Int_t py) -//{ - // - //*-*-*-*-*-*-*-*-*-*Execute action corresponding to one event*-*-*-*-*-*-*-* - //*-* ========================================= - //*-* - //*-* This member function must be implemented to realize the action - //*-* corresponding to the mouse click on the object in the window - //*-* - //*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* -// gPad->SetCursor(kCross); - -//} -//_____________________________________________________________________________ -void AliMUONpoints::DumpHit() -{ - // - // Dump hit corresponding to this point - // - AliMUONhit *hit = GetHit(); - if (hit) hit->Dump(); - printf("fTrackIndex %d \n",fTrackIndex); -} - -//_____________________________________________________________________________ -void AliMUONpoints::DumpDigit() -{ - // - // Dump digit corresponding to this point - // - AliMUONdigit *digit = GetDigit(); - if (digit) digit->Dump(); - for (int i=0;i<10;i++) { - printf(" track charge %d %d \n",digit->fTracks[i],digit->fTcharges[i]); - } - -} - -//_____________________________________________________________________________ -void AliMUONpoints::InspectHit() -{ - // - // Inspect hit corresponding to this point - // - - if (fHitIndex < 0 ) return; - TVirtualPad *padsav = gPad; - AliMUONhit *hit = GetHit(); - if (hit) hit->Inspect(); - TVirtualPad *padinspect = (TVirtualPad*)(gROOT->GetListOfCanvases())->FindObject("inspect"); - padinspect->cd(); - Float_t xmin = gPad->GetX1(); - Float_t xmax = gPad->GetX2(); - Float_t ymin = gPad->GetY1(); - Float_t ymax = gPad->GetY2(); - Float_t dy = ymax-ymin; - - TPaveText *pad = new TPaveText(xmin, ymin+0.1*dy, xmax, ymin+0.15*dy); - pad->SetBit(kCanDelete); - pad->SetFillColor(42); - pad->Draw(); - char ptitle[100]; - sprintf(ptitle," %s , fTrack: %d fTrackIndex: %d ",GetName(),fIndex,fTrackIndex); - pad->AddText(ptitle); - padinspect->cd(); - padinspect->Update(); - if (padsav) padsav->cd(); - -} - -//_____________________________________________________________________________ -void AliMUONpoints::InspectDigit() -{ - // - // Inspect digit corresponding to this point - // - if (fDigitIndex < 0) return; - TVirtualPad *padsav = gPad; - AliMUONdigit *digit = GetDigit(); - if (digit) digit->Inspect(); - TVirtualPad *padinspect = (TVirtualPad*)(gROOT->GetListOfCanvases())->FindObject("inspect"); - padinspect->cd(); - Float_t xmin = gPad->GetX1(); - Float_t xmax = gPad->GetX2(); - Float_t ymin = gPad->GetY1(); - Float_t ymax = gPad->GetY2(); - Float_t dy = ymax-ymin; - - TPaveText *pad = new TPaveText(xmin, ymin+0.1*dy, xmax, ymin+0.25*dy); - pad->SetBit(kCanDelete); - pad->SetFillColor(42); - pad->Draw(); - char ptitle[11][100]; - // sprintf(ptitle[11],"Tracks making this digit"); - // pad->AddText(ptitle[11]); - for (int i=0;i<10;i++) { - if (digit->fTracks[i] == 0) continue; - sprintf(ptitle[i],"fTrackIndex: %d Charge: %d",digit->fTracks[i],digit->fTcharges[i]); - pad->AddText(ptitle[i]); - } - padinspect->cd(); - padinspect->Update(); - if (padsav) padsav->cd(); - -} - -//_____________________________________________________________________________ -Int_t AliMUONpoints::GetTrackIndex() -{ - // - // Dump digit corresponding to this point - // - printf("GetTrackIndex - fTrackIndex %d \n",fTrackIndex); - this->Inspect(); - /* - if (fDigitIndex != 0) { - Int_t ncol=this->fMatrix->GetNcols(); - for (int i=0;ifMatrix))(0,i),(*(this->fMatrix))(1,i)); - } - } - */ - return fTrackIndex; -} - -//_____________________________________________________________________________ -AliMUONhit *AliMUONpoints::GetHit() const -{ - // - // Returns pointer to hit index in AliRun::fParticles - // - AliMUON *MUON = (AliMUON*)gAlice->GetModule("MUON"); - gAlice->TreeH()->GetEvent(fTrackIndex); - TClonesArray *MUONhits = MUON->Hits(); - Int_t nhits = MUONhits->GetEntriesFast(); - if (fHitIndex < 0 || fHitIndex >= nhits) return 0; - return (AliMUONhit*)MUONhits->UncheckedAt(fHitIndex); -} - -//_____________________________________________________________________________ -AliMUONdigit *AliMUONpoints::GetDigit() const -{ - // - // Returns pointer to digit index in AliRun::fParticles - // - - AliMUONdisplay *display=(AliMUONdisplay*)gAlice->Display(); - Int_t chamber=display->GetChamber(); - Int_t cathode=display->GetCathode(); - - AliMUON *MUON = (AliMUON*)gAlice->GetModule("MUON"); - TClonesArray *MUONdigits = MUON->DigitsAddress(chamber-1); - gAlice->TreeD()->GetEvent(cathode); - Int_t ndigits = MUONdigits->GetEntriesFast(); - if (fDigitIndex < 0 || fDigitIndex >= ndigits) return 0; - return (AliMUONdigit*)MUONdigits->UncheckedAt(fDigitIndex); -} -//_____________________________________________________________________________ -struct Bin { - const AliMUONdigit *dig; - int idx; - Bin() {dig=0; idx=-1;} -}; - -struct PreCluster : public AliMUONreccluster { - const AliMUONdigit* summit; - int idx; - int cut; - int npeaks; - int npoly; - float xpoly[100]; - float ypoly[100]; - float zpoly[100]; - PreCluster() : AliMUONreccluster() {cut=npeaks=npoly=0; - for (int k=0;k<100;k++) { - xpoly[k]=ypoly[k]=zpoly[k]=0; - } - } - -}; -//_____________________________________________________________________________ - -static void FindCluster(AliMUONchamber *iChamber, AliMUONsegmentation *segmentation, int i, int j, Bin bins[][MAX_Nipy], PreCluster &c) - -{ - - // - // Find clusters - // - - printf("I'm in FindCluster \n"); - - Bin& b=bins[i][j]; - Int_t q=b.dig->fSignal; - - printf("FindCluster - i j q %d %d %d\n",i,j,q); - - if (q<0) { - q=-q; - c.cut=1; - } - // if (b.idx >= 0 && b.idx != c.idx) { - if (b.idx >= 0 && b.idx > c.idx) { - c.idx=b.idx; - c.npeaks++; - printf("FindCluster - one more peak \n"); - } - - if (q > TMath::Abs(c.summit->fSignal)) c.summit=b.dig; - - Float_t zpos=iChamber->ZPosition(); // check with Andreas - - Int_t npx = segmentation->Npx(); - Int_t npy = segmentation->Npy(); - - // get pad coordinates and prepare the up and down steps - Int_t jup =(j-npy > 0) ? j+1 : (j-npy-1)+npy; - Int_t jdown=(j-npy > 0) ? j-1 : (j-npy+1)+npy; - // Int_t jup =j+1; - // Int_t jdown=j-1; - Float_t x, y; - segmentation->GetPadCxy(i-npx, j-npy,x, y); - Int_t isec0=segmentation->Sector(i-npx,j-npy); - printf("FindCluster - i-npx j-npy isec0 %d %d %d \n",i-npx,j-npy,isec0); - // printf("FindCluster - x y %f %f \n",x,y); - - Float_t dpy = segmentation->Dpy(); - Float_t dpx = segmentation->Dpx()/16; - Int_t ixx, iyy; - Float_t absx=TMath::Abs(x); - // iup - (y >0) ? segmentation->GetPadIxy(absx+dpx,y+dpy,ixx,iyy) : segmentation->GetPadIxy(absx+dpx,y-dpy,ixx,iyy); - printf(" iup: ixx iyy %d %d \n",ixx,iyy); - Int_t jtest=TMath::Abs(iyy)-npy-1; - if (j != jtest) { - printf(" j != jtest - something's wrong %d %d \n",j,jtest); - } - Int_t iup=(x >0) ? ixx+npx : -ixx+npx; - // idown - (y >0) ? segmentation->GetPadIxy(absx+dpx,y-dpy,ixx,iyy) : segmentation->GetPadIxy(absx+dpx,y+dpy,ixx,iyy); - printf(" idown: ixx iyy %d %d \n",ixx,iyy); - Int_t idown=(x >0) ? ixx+npx : -ixx+npx; - if (bins[idown][jdown].dig == 0) { - (y >0) ? segmentation->GetPadIxy(absx-dpx,y-dpy,ixx,iyy) : segmentation->GetPadIxy(absx-dpx,y+dpy,ixx,iyy); - printf(" idown: ixx iyy %d %d \n",ixx,iyy); - idown=(x >0) ? ixx+npx : -ixx+npx; - } - - printf("i, iup, idown, j, jup, jdown %d %d %d %d %d %d \n",i,iup,idown,j,jup,jdown); - - // calculate center of gravity - c.npoly++; - if (c.npoly > 100 ) { - printf("FindCluster - npoly >100, npoly %d \n",c.npoly); - c.npoly=100; - } - c.xpoly[c.npoly-1]=x; - c.ypoly[c.npoly-1]=y; - c.zpoly[c.npoly-1]=zpos; - - c.fX += q*x; - c.fY += q*y; - c.fQ += q; - - b.dig = 0; b.idx = c.idx; - - // left and right - if (bins[i-1][j].dig) FindCluster(iChamber,segmentation,i-1,j,bins,c); - if (bins[i+1][j].dig) FindCluster(iChamber,segmentation,i+1,j,bins,c); - // up and down - if (bins[iup][jup].dig) FindCluster(iChamber,segmentation,iup,jup,bins,c); - if (bins[idown][jdown].dig) FindCluster(iChamber,segmentation,idown,jdown,bins,c); - -} - -//_____________________________________________________________________________ - -void AliMUONpoints::GetCenterOfGravity() -{ - // - // simple MUON cluster finder from digits -- finds neighbours and - // calculates center of gravity for the cluster - // - - // const Int_t MAX_Nipx=1026, MAX_Nipy=1026; - - Bin bins[MAX_Nipx][MAX_Nipy]; - - AliMUONdisplay *display=(AliMUONdisplay*)gAlice->Display(); - Int_t chamber=display->GetChamber(); - Int_t cathode=display->GetCathode(); - - AliMUON *MUON = (AliMUON*)gAlice->GetModule("MUON"); - AliMUONchamber *iChamber; - AliMUONsegmentation *segmentation; - iChamber =&(MUON->Chamber(chamber-1)); - segmentation=iChamber->GetSegmentationModel(cathode); - Int_t npx = segmentation->Npx(); - Int_t npy = segmentation->Npy(); - Float_t zpos=iChamber->ZPosition(); - - TClonesArray *MUONdigits = MUON->DigitsAddress(chamber-1); - gAlice->TreeD()->GetEvent(cathode); - Int_t ndigits = MUONdigits->GetEntriesFast(); - if (fDigitIndex < 0 || fDigitIndex >= ndigits) return; - - AliMUONdigit *dig; - dig=(AliMUONdigit*)MUONdigits->UncheckedAt(fDigitIndex); - Int_t ipx=dig->fPadX; - Int_t ipy=dig->fPadY; - bins[ipx+npx][ipy+npy].dig=dig; - - int ndig; - int ncls=0; - for (ndig=0;ndigUncheckedAt(ndig); - int i=dig->fPadX, j=dig->fPadY; - bins[i+npx][j+npy].dig=dig; - } - PreCluster c; c.summit=bins[ipx+npx][ipy+npy].dig; c.idx=ncls; - FindCluster(iChamber,segmentation,ipx+npx, ipy+npy, bins, c); - printf("GetCenterOfGravity -- npoly %d \n",c.npoly); - - if (c.npeaks>1) { - printf("GetCenterOfGravity -- more than one peak"); - } - c.fX /= c.fQ; - c.fY /= c.fQ; - printf("GetCenterOfGravity - c.fX c.fY c.fQ c.npeaks%f %f %d %d \n",c.fX,c.fY,c.fQ,c.npeaks); - /* - c.fTracks[0]=(Int_t)(*(c.summit->fTrks))(0); - c.fTracks[1]=(Int_t)(*(c.summit->fTrks))(1); - c.fTracks[2]=(Int_t)(*(c.summit->fTrks))(2); - */ - c.fTracks[0]=c.summit->fTracks[0]; - c.fTracks[1]=c.summit->fTracks[1]; - c.fTracks[2]=c.summit->fTracks[2]; - ncls++; - AliMUONpoints *points = 0; - points = new AliMUONpoints(1); - points->SetMarkerColor(kYellow); - points->SetMarkerStyle(5); - points->SetMarkerSize(1.); - points->SetPoint(0,c.fX,c.fY,zpos); - points->SetParticle(-1); - points->Draw(); - - TPolyLine3D *pline=0; - /* - pline=new TPolyLine3D(c.npoly); - Int_t np=c.npoly; - Float_t *x=new Float_t(c.npoly); - Float_t *y=new Float_t(c.npoly); - Float_t *z=new Float_t(c.npoly); - for (int i=0;iSetPoint(i,x[i],y[i],z[i]); - } - */ - pline=new TPolyLine3D(c.npoly,c.xpoly,c.ypoly,c.zpoly); - pline->SetLineColor(kWhite); - pline->Draw(); - - - printf("GetCenterOfGravity -- ncls %d \n",ncls); - -} - -- 2.31.1