1 void test(char *file="/prog/alice/data/Rawdata/6_patch/hg_42105_s1-3/",bool bin=true)
4 Int_t fNEtaSegments = 1 ;
11 fHoughTransformer = new AliL3HoughTransformer(slice,patch,fNEtaSegments);
12 fMemHandler = new AliL3FileHandler();
13 fMaxFinder = new AliL3HoughMaxFinder("KappaPhi");
15 fTransform = new AliL3Transform();
17 fHoughTransformer->CreateHistograms();
18 fHoughTransformer->SetThreshold(3);
19 fTracks = new AliL3TrackArray("AliL3HoughTrack");
22 TH2F *road = new TH2F("road","",250,0,250,250,-125,125);
23 TH2F *peaks = new TH2F("peaks","",64,-0.006,0.006,64,-0.26,0.26);
24 peaks->SetMarkerStyle(3);
25 peaks->SetMarkerColor(2);
26 road->SetMarkerStyle(6);
27 road->SetMarkerColor(2);
32 AliL3DigitRowData *digits =0;
34 if(bin) //read data from binary files
39 sprintf(name,"%sdigits_%d_%d.raw",fPath,slice,patch);
40 fMemHandler->SetBinaryInput(name);
41 digits = (AliL3DigitRowData *)fMemHandler->CompBinary2Memory(ndigits);
42 fMemHandler->CloseBinaryInput();
44 else //read data from root file
46 const Int_t NRows[6][2] = {{0,31},{32,63},{64,91},{92,119},{120,143},{144,175}};
48 TFile *rootfile = new TFile(file);
49 fMemHandler->SetAliInput(rootfile);
50 fMemHandler->Init(slice,patch,NRows[patch]);
51 fMemHandler->Init(fTransform);
52 digits=(AliL3DigitRowData *)fMemHandler->AliDigits2Memory(ndigits);
54 fHoughTransformer->SetInputData(ndigits,digits);
55 fEval = new AliL3HoughEval(fHoughTransformer);
56 fEval->SetNumOfRowsToMiss(2);
57 //fEval->SetNumOfPadsToLook(2);
58 AliL3HoughTrack *track;
59 AliL3Histogram *histo;
64 printf("Transforming\n");
65 double init = AliL3Benchmark::GetCpuTime();
66 fHoughTransformer->Transform();
67 double final = AliL3Benchmark::GetCpuTime();
68 printf("done in %f ms\n",(final-init)*1000);
72 for(Int_t e=0; e<fNEtaSegments; e++)
74 histo = (AliL3Histogram*)fHoughTransformer->GetHistogram(e);
77 fMaxFinder->SetHistogram(histo);
78 track = (AliL3HoughTrack*)fMaxFinder->FindPeak1();
79 peaks->Fill(track->GetKappa(),track->GetPhi0(),1);
81 if(!fEval->LookInsideRoad(track,e))
83 for(int t=0; t<175; t++)
86 track->GetCrossingPoint(t,xyz_tr);
87 road->Fill(xyz_tr[0],xyz_tr[1],1);
97 image = new AliL3Histogram("image","",250,0,250,250,-125,125);
98 fEval->DisplayEtaSlice(eind,image);
100 c1 = new TCanvas("c1","",1000,500);
103 histo = (AliL3Histogram*)fHoughTransformer->GetHistogram(eind);
105 {printf("No histogram\n"); return;}
106 fHoughTransformer->GetHistogram(eind)->Draw("box");