if(fMemHandler[i]) delete fMemHandler[i];
}
- /*Shitty compiler doesn't allow this:
-
- if(fTracks) delete [] fTracks;
- if(fEval) delete [] fEval;
- if(fHoughTransformer) delete [] fHoughTransformer;
- if(fMemHandler) delete [] fMemHandler;
+ /*
+ if(fTracks) delete [] fTracks;
+ if(fEval) delete [] fEval;
+ if(fHoughTransformer) delete [] fHoughTransformer;
+ if(fMemHandler) delete [] fMemHandler;
*/
}
ev->InitTransformer(tr);
ev->RemoveFoundTracks();
ev->SetNumOfRowsToMiss(2);
+ ev->SetNumOfPadsToLook(2);
AliL3Histogram *hist;
for(Int_t t=0; t<num_of_tries; t++)
{
if(hist->GetNEntries()==0) continue;
fPeakFinder->SetHistogram(hist);
Int_t n=1;
- Int_t x[n],y[n];
- fPeakFinder->FindAbsMaxima(*x,*y);
+ Float_t x,y;
+ //fPeakFinder->FindAbsMaxima(*x,*y);
+ fPeakFinder->FindPeak(3,0.95,5,x,y);
AliL3HoughTrack *track = (AliL3HoughTrack*)tracks->NextTrack();
- track->SetTrackParameters(hist->GetBinCenterX(*x),hist->GetBinCenterY(*y),1);
+ track->SetTrackParameters(x,y,1);
if(!ev->LookInsideRoad(track,i))
{
tracks->Remove(tracks->GetNTracks()-1);
{
AliL3MemHandler *mem = new AliL3MemHandler();
Char_t fname[100];
- sprintf(fname,"%s/tracks.raw",path);
- mem->SetBinaryOutput(fname);
- mem->TrackArray2Binary(fTracks[0]);
- mem->CloseBinaryOutput();
+ if(fAddHistograms)
+ {
+ sprintf(fname,"%s/tracks.raw",path);
+ mem->SetBinaryOutput(fname);
+ mem->TrackArray2Binary(fTracks[0]);
+ mem->CloseBinaryOutput();
+ }
+ else
+ {
+ for(Int_t i=0; i<fNPatches; i++)
+ {
+ sprintf(fname,"%s/tracks_%d.raw",path,i);
+ mem->SetBinaryOutput(fname);
+ mem->TrackArray2Binary(fTracks[i]);
+ mem->CloseBinaryOutput();
+ }
+ }
delete mem;
}
+//$Id$
+
// Author: Anders Vestbo <mailto:vestbo@fi.uib.no>
//*-- Copyright © ASV
{
//Set the minimum absolute pt value, and phi0 angles given in degrees.
- Double_t torad = 3.1415/180;
Double_t bfact = 0.0029980;
Double_t bfield = 0.2;
Double_t x = bfact*bfield/pt_min;
- CreateHistograms(nxbin,-1.*x,x,nybin,phimin*torad,phimax*torad);
+ CreateHistograms(nxbin,-1.*x,x,nybin,phimin*ToRad,phimax*ToRad);
}
void AliL3HoughTransformer::CreateHistograms(Int_t nxbin,Double_t xmin,Double_t xmax,
fDigitRowData = ptr;
}
+Int_t AliL3HoughTransformer::GetEtaIndex(Double_t eta)
+{
+
+ Double_t etaslice = (fEtaMax - fEtaMin)/fNEtaSegments;
+ Double_t index = (eta-fEtaMin)/etaslice;
+ return (Int_t)index;
+}
+
void AliL3HoughTransformer::TransformCircle()
{
//Transform the input data with a circle HT.
return;
}
- Double_t etaslice = (fEtaMax - fEtaMin)/fNEtaSegments;
+ //Double_t etaslice = (fEtaMax - fEtaMin)/fNEtaSegments;
for(Int_t i=NRows[fPatch][0]; i<=NRows[fPatch][1]; i++)
{
AliL3DigitData *digPt = tempPt->fDigitData;
fTransform->Slice2Sector(fSlice,i,sector,row);
fTransform->Raw2Local(xyz,sector,row,(Int_t)pad,(Int_t)time);
Double_t eta = fTransform->GetEta(xyz);
- Int_t eta_index = (Int_t)((eta-fEtaMin)/etaslice);
+ Int_t eta_index = GetEtaIndex(eta);//(Int_t)((eta-fEtaMin)/etaslice);
if(eta_index < 0 || eta_index >= fNEtaSegments)
continue;
rowPt[prow] = tempPt;
AliL3MemHandler::UpdateRowPointer(tempPt);
}
- Double_t etaslice = (fEtaMax - fEtaMin)/fNEtaSegments;
+ //Double_t etaslice = (fEtaMax - fEtaMin)/fNEtaSegments;
AliL3DigitData *digPt;
Double_t r1,r2,phi1,phi2,eta,kappa,phi_0;
fTransform->Slice2Sector(fSlice,i,sector,row);
fTransform->Raw2Local(xyz,sector,row,(Int_t)pad,(Int_t)time);
eta = fTransform->GetEta(xyz);
- eta_index1 = (Int_t)((eta-fEtaMin)/etaslice);
+ eta_index1 = GetEtaIndex(eta);//(Int_t)((eta-fEtaMin)/etaslice);
if(eta_index1 < 0 || eta_index1 >= fNEtaSegments)
continue;
r1 = sqrt(xyz[0]*xyz[0] + xyz[1]*xyz[1]);
fTransform->Slice2Sector(fSlice,j,sector,row);
fTransform->Raw2Local(xyz,sector,row,(Int_t)pad,(Int_t)time);
eta = fTransform->GetEta(xyz);
- eta_index2 = (Int_t)((eta-fEtaMin)/etaslice);
+ eta_index2 = GetEtaIndex(eta);//(Int_t)((eta-fEtaMin)/etaslice);
if(eta_index2 != eta_index1)
continue;
r2 = sqrt(xyz[0]*xyz[0] + xyz[1]*xyz[1]);
return;
}
- Double_t etaslice = (fEtaMax - fEtaMin)/fNEtaSegments;
+ //Double_t etaslice = (fEtaMax - fEtaMin)/fNEtaSegments;
for(Int_t i=NRows[fPatch][0]; i<=NRows[fPatch][1]; i++)
{
AliL3DigitData *digPt = tempPt->fDigitData;
fTransform->Slice2Sector(fSlice,i,sector,row);
fTransform->Raw2Local(xyz,sector,row,(Int_t)pad,(Int_t)time);
Float_t eta = fTransform->GetEta(xyz);
- Int_t eta_index = (Int_t)(eta/etaslice);
+ Int_t eta_index = GetEtaIndex(eta);//(Int_t)(eta/etaslice);
if(eta_index < 0 || eta_index >= fNEtaSegments)
continue;
# Author: Anders Vestbo #
###########################
+#USEPACKAGE = ROOT
+USEPACKAGE = ALIROOT
+
CXX = g++
LD = g++
CXXFLAGS = -O2 -Wall -fPIC
OBJDIR = lib
LIBDIR = $(LEVEL3)/lib_$(USERNAME)
+ifeq ($(USEPACKAGE),ROOT)
+INCLUDES = -I$(ROOTSYS)/include -I$(TOPDIR)/hough -I$(TOPDIR)/src -I$(TOPDIR)/comp
+endif
+
+ifeq ($(USEPACKAGE),ALIROOT)
+INCLUDES = -I$(ROOTSYS)/include -I$(TOPDIR)/hough -I$(TOPDIR)/src -I$(TOPDIR)/comp -I$(ALICE_ROOT)/include/ -I$(ALICE_ROOT)/TPC -I$(ALICE_ROOT)/CONTAINERS -I$(ALICE_ROOT)/STEER
+endif
+
SRCS = AliL3HoughTransformer.cxx AliL3Hough.cxx AliL3HoughTrack.cxx\
AliL3HoughMaxFinder.cxx AliL3HoughEval.cxx AliL3HoughMerger.cxx \
AliL3Histogram.cxx AliL3Histogram1D.cxx \
$(DICT) : $(HDRS)
@echo "Generating dictionary..."
- @rootcint -f $(DICT) -c -I$(ROOTSYS) -I$(TOPDIR)/src $(HDRS)
+ @rootcint -f $(DICT) -c $(INCLUDES) $(HDRS)
$(OBJDIR)/%.o : %.cxx
- $(CXX) $(CXXFLAGS) -c -I$(ROOTSYS)/include -I$(TOPDIR)/src -I$(TOPDIR)/hough -o $@ $<
+ $(CXX) $(CXXFLAGS) -c $(INCLUDES) -o $@ $<
$(OBJDIR) :
test ! -e $(OBJDIR) && mkdir -p $(OBJDIR)