]>
Commit | Line | Data |
---|---|---|
35616f6f | 1 | void testPF(char *rootfile,int patch) |
2 | { | |
3 | gStyle->SetOptStat(0); | |
4 | ||
5 | Int_t xbin = 70; | |
6 | Int_t ybin = 70; | |
7 | Float_t xrange[2] = {-0.006 , 0.006}; //Pt 0.2-> | |
8 | //Float_t yrange[2] = {-0.17 , 0.17}; //slice 2 0.55->0.88 | |
9 | Float_t yrange[2] = {-0.26 , 0.26};// -15 - 15 | |
10 | //Float_t yrange[2] = {0.55 , 0.88}; //slice 2 0.55->0.88 | |
11 | ||
12 | TH2F *hist = new TH2F("hist","Parameter space",xbin,xrange[0],xrange[1],ybin,yrange[0],yrange[1]); | |
13 | hist->GetXaxis()->SetTitle("#kappa [cm^{-1}]"); | |
14 | hist->GetYaxis()->SetTitle("#Phi [rad]"); | |
15 | SetTH1Options(hist); | |
4a134589 | 16 | |
17 | hist1 = new TH2F("hist1","Parameter space",xbin,xrange[0],xrange[1],ybin,yrange[0],yrange[1]); | |
18 | ||
35616f6f | 19 | Int_t xr[2] = {0,250}; |
20 | Int_t yr[2] = {-125,125}; | |
21 | ||
22 | TH2F *raw = new TH2F("raw","",250,xr[0],xr[1],250,yr[0],yr[1]); | |
23 | TH2F *road = new TH2F("road","",250,0,250,250,yr[0],yr[1]); | |
24 | TH2F *peaks = new TH2F("peaks","",xbin,xrange[0],xrange[1],ybin,yrange[0],yrange[1]); | |
25 | peaks->SetMarkerStyle(3); | |
26 | peaks->SetMarkerColor(2); | |
52a2a604 | 27 | road->SetMarkerStyle(6); |
28 | road->SetMarkerColor(2); | |
35616f6f | 29 | |
30 | real_peaks = new TH2F("real_peaks","",xbin,xrange[0],xrange[1],ybin,yrange[0],yrange[1]); | |
31 | real_peaks->SetMarkerStyle(3); | |
32 | real_peaks->SetMarkerColor(4); | |
33 | ||
34 | int slice = 2,n_phi_segments=30; | |
52a2a604 | 35 | //double eta[2] = {0.3,0.4}; |
4a134589 | 36 | double eta[2] = {0.84,0.85}; |
35616f6f | 37 | |
4a134589 | 38 | a = new AliL3HoughTransformer(slice,patch,eta,1); |
35616f6f | 39 | a->GetPixels(rootfile,raw); |
40 | a->InitTemplates(hist); | |
52a2a604 | 41 | a->Transform2Circle(hist,3); |
42 | ||
35616f6f | 43 | b = new AliL3HoughMaxFinder("KappaPhi"); |
35616f6f | 44 | c = new AliL3HoughEval(a); |
52a2a604 | 45 | // tracks = (AliL3TrackArray*)b->FindMaxima(hist); |
4a134589 | 46 | |
52a2a604 | 47 | int n_iter=1; |
4a134589 | 48 | |
49 | ||
52a2a604 | 50 | AliL3TrackArray **track_cand = new AliL3TrackArray*[n_iter]; |
51 | for(int k=0; k<n_iter; k++) | |
52 | { | |
4a134589 | 53 | hist1->Reset(); |
54 | a->Transform2Circle(hist1,3); | |
55 | //track_cand[k] = (AliL3TrackArray*)b->FindPeak(hist1,3,0.95,5); | |
56 | //track_cand[k] = (AliL3TrackArray*)b->LookInWindows(hist1,3,3,0.95,5); | |
57 | track_cand[k] = (AliL3TrackArray*)b->FindMaxima(hist1); | |
58 | //c->LookInsideRoad(track_cand[k],true); | |
52a2a604 | 59 | } |
4a134589 | 60 | printf("found %d\n",track_cand[0]->GetNTracks()); |
52a2a604 | 61 | //tracks = (AliL3TrackArray*)b->LookInWindows(hist,4,4,0.95,5); |
62 | ||
63 | //tracks = (AliL3TrackArray*)b->FindMaxima(hist); | |
64 | //cout << "Found "<<tracks->GetNTracks()<<" peaks"<<endl; | |
65 | ||
4a134589 | 66 | |
67 | //for(int j=0; j<n_iter; j++) | |
68 | for(int j=0; j<track_cand[0]->GetNTracks(); j++) | |
52a2a604 | 69 | { |
4a134589 | 70 | track = (AliL3HoughTrack*)track_cand[0]->GetCheckedTrack(j); |
52a2a604 | 71 | if(!track) continue; |
4a134589 | 72 | //printf("Pt %f phi0 %f weight %d\n",track->GetPt(),track->GetPhi0(),track->GetWeight()); |
52a2a604 | 73 | for(int padrow=0; padrow<174; padrow++) |
74 | { | |
75 | Float_t xyz[3]; | |
76 | track->GetCrossingPoint(padrow,xyz); | |
77 | road->Fill(xyz[0],xyz[1],1); | |
78 | } | |
79 | peaks->Fill(track->GetKappa(),track->GetPhi0(),1); | |
80 | } | |
52a2a604 | 81 | |
4a134589 | 82 | /* |
52a2a604 | 83 | tracks = (AliL3TrackArray*)b->FindPeak(hist,3,0.95,5); |
84 | cout<<"NTracks after checking "<<tracks->GetNTracks()<<endl; | |
35616f6f | 85 | for(int i=0; i<tracks->GetNTracks(); i++) |
86 | { | |
87 | track = (AliL3HoughTrack*)tracks->GetCheckedTrack(i); | |
88 | peaks->Fill(track->GetKappa(),track->GetPhi0(),1); | |
89 | if(!track) continue; | |
90 | printf("Pt %f phi0 %f weight %d\n",track->GetPt(),track->GetPhi0(),track->GetWeight()); | |
4a134589 | 91 | for(int padrow=0; padrow<174; padrow++) |
92 | { | |
93 | Float_t xyz[3]; | |
94 | track->GetCrossingPoint(padrow,xyz); | |
95 | road->Fill(xyz[0],xyz[1],1); | |
96 | } | |
35616f6f | 97 | } |
4a134589 | 98 | */ |
35616f6f | 99 | |
52a2a604 | 100 | c2 = new TCanvas("c2","",900,900); |
101 | c2->Divide(2,2); | |
102 | c2->cd(1); | |
103 | raw->Draw(""); | |
52a2a604 | 104 | c2->cd(2); |
105 | raw->DrawCopy(); | |
4a134589 | 106 | road->Draw("same"); |
52a2a604 | 107 | c2->cd(3); |
35616f6f | 108 | hist->Draw("box"); |
109 | peaks->Draw("same"); | |
52a2a604 | 110 | //real_peaks->Draw("same"); |
111 | c2->cd(4); | |
112 | hist->DrawCopy("lego1"); | |
113 | ||
35616f6f | 114 | delete a; |
115 | delete b; | |
116 | delete c; | |
117 | ||
118 | } |