X-Git-Url: http://git.uio.no/git/?p=u%2Fmrichter%2FAliRoot.git;a=blobdiff_plain;f=HLT%2Fhough%2FAliL3HoughTransformerLUT.cxx;h=e05273e9b78991186ad1f8dadbd1163590c33e18;hp=1c218e523697d27fbe46577f783674fe8b4c72c2;hb=868b6166cf7f476525069dfe0e18548af5b5c361;hpb=b490510d31fc8060631982a9c828f4af90c29a66;ds=sidebyside diff --git a/HLT/hough/AliL3HoughTransformerLUT.cxx b/HLT/hough/AliL3HoughTransformerLUT.cxx index 1c218e52369..e05273e9b78 100644 --- a/HLT/hough/AliL3HoughTransformerLUT.cxx +++ b/HLT/hough/AliL3HoughTransformerLUT.cxx @@ -47,6 +47,10 @@ AliL3HoughTransformerLUT::AliL3HoughTransformerLUT() : AliL3HoughBaseTransformer fLUTphi0=0; fLUT2sinphi0=0; fLUT2cosphi0=0; + fLUTKappa=0; + + fLastPad=0; + fLastIndex=0; } AliL3HoughTransformerLUT::AliL3HoughTransformerLUT(Int_t slice,Int_t patch,Int_t n_eta_segments) : AliL3HoughBaseTransformer(slice,patch,n_eta_segments) @@ -71,6 +75,10 @@ AliL3HoughTransformerLUT::AliL3HoughTransformerLUT(Int_t slice,Int_t patch,Int_t fLUTphi0=0; fLUT2sinphi0=0; fLUT2cosphi0=0; + fLUTKappa=0; + + fLastPad=0; + fLastIndex=0; Init(slice,patch,n_eta_segments); } @@ -80,6 +88,7 @@ AliL3HoughTransformerLUT::~AliL3HoughTransformerLUT() DeleteHistograms(); #ifdef do_mc +#if 0 if(fTrackID) { for(Int_t i=0; iGetNbinsX()+2)*(hist->GetNbinsY()+2); cout<<"Allocating "<GetNbinsX()+2)*(hist->GetNbinsY()+2); for(Int_t i=0; i=0)&&(rz2>fLUTEta[index])){ + index--; + } index++; - //cout << index << ": " << rz2 << " " << fLUTEta[index] << endl; } + //cout << start << " - " << index << ": " << rz2 << " " << fLUTEta[index] << endl; return index; } @@ -373,6 +405,14 @@ void AliL3HoughTransformerLUT::TransformCircle() continue; } + //calculate x for this row + Float_t x = CalcX(row); + Float_t x2=x*x; + Float_t r2=0; + + //start a new row + fLastPad=-1; + //Loop over the data on this padrow: for(UInt_t j=0; jfNDigit; j++) { @@ -385,37 +425,50 @@ void AliL3HoughTransformerLUT::TransformCircle() UChar_t pad = digPt[j].fPad; UShort_t time = digPt[j].fTime; - Float_t x = CalcX(row); - Float_t y = CalcY(pad,row); - Float_t z = CalcZ(time); + if(fLastPad!=pad){ //only update if necessary + fLastIndex=fNEtas-1; + + //calculate hough for this pad + Float_t y = CalcY(pad,row); + Float_t y2 = y*y; + r2 = x2 + y2; + Float_t R2 = 1. / r2; + for(Int_t b=0; b= fNEtas){ //LOG(AliL3Log::kWarning,"AliL3HoughTransformerLUT::TransformCircle","Histograms")<<"No histograms corresponding to eta index value of "<Fill(kappa,fLUTphi0[b],charge); + hist->Fill(fLUTKappa[b],fLUTphi0[b],charge); + //hist->Fill(fLUTKappa[b],fLUTphi0[b],1); //cout << kappa << " " << fLUTphi0[b] << " " << charge << endl; #ifdef do_mcc if(fDoMC) { + cerr << "Did not program changes in AliL3TransformerLUT for DO_MC!" << endl; + exit(1); +#if 0 Int_t bin = hist->FindBin(kappa,phi0); for(Int_t t=0; t<3; t++) { @@ -429,10 +482,12 @@ void AliL3HoughTransformerLUT::TransformCircle() fTrackID[eta_index][bin].fLabel[c] = label; fTrackID[eta_index][bin].fNHits[c]++; } +#endif } #endif } } + //Move the data pointer to the next padrow: AliL3MemHandler::UpdateRowPointer(tempPt); } @@ -447,6 +502,9 @@ Int_t AliL3HoughTransformerLUT::GetTrackID(Int_t eta_index,Double_t kappa,Double } #ifdef do_mcc + cerr << "Did not program changes in AliL3TransformerLUT for DO_MC!" << endl; + exit(1); +#if 0 if(eta_index < 0 || eta_index > fNEtas) { cerr<<"AliL3HoughTransformer::GetTrackID : Wrong etaindex "<