]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/hough/hough_merge.C
Added new base class
[u/mrichter/AliRoot.git] / HLT / hough / hough_merge.C
CommitLineData
4de874d1 1void hough_merge(char *rootfile,Bool_t MC=false)
2{
3 gStyle->SetOptStat(0);
4
52a2a604 5 Int_t xbin = 70;
6 Int_t ybin = 70;
4de874d1 7 Float_t xrange[2] = {-0.006 , 0.006}; //Pt 0.1->4GeV 0.006-0.006
8 //Float_t yrange[2] = {-0.17 , 0.17}; //slice 2 0.55->0.88
9 Float_t yrange[2] = {-0.26 , 0.26}; //slice 2 0.55->0.88
10 //Float_t yrange[2] = {0.55 , 0.88}; //slice 2 0.55->0.88
11
12 Int_t xr[2] = {0,250};
13 Int_t yr[2] = {-125,125};
52a2a604 14 ntracks = new TH1F("ntracks","",100,0,200);
15 raw = new TH2F("raw","",250,xr[0],xr[1],250,yr[0],yr[1]);
16 road = new TH2F("road","",250,0,250,250,yr[0],yr[1]);
17 fake = new TH2F("fake","",300,0,300,250,-125,125);
18 peaks = new TH2F("peaks","",xbin,xrange[0],xrange[1],ybin,yrange[0],yrange[1]);
4de874d1 19 peaks->SetMarkerStyle(3);
20 peaks->SetMarkerColor(2);
52a2a604 21 road->SetMarkerStyle(6);
22
23 int slice = 2;
24 //float eta[2] = {0.3,0.4};
25 float eta[2] = {0.04,0.05};
4de874d1 26
52a2a604 27 b = new AliL3HoughMaxFinder("KappaPhi");
28 //hist = new TH2F("hist","Parameter space",xbin,xrange[0],xrange[1],ybin,yrange[0],yrange[1]);
29 TH2F **histos = new TH2F*[5];
4de874d1 30 for(int pat=0; pat<5; pat++)
31 {
52a2a604 32 a = new AliL3HoughTransformer(slice,pat,eta);
33 histos[pat] = new TH2F("hist","Parameter space",xbin,xrange[0],xrange[1],ybin,yrange[0],yrange[1]);
4de874d1 34 a->GetPixels(rootfile,raw);
52a2a604 35 a->InitTemplates(hist);
36 a->Transform2Circle(hist);
4de874d1 37 delete a;
4de874d1 38 }
4de874d1 39
52a2a604 40 hist = new TH2F("hist","Parameter space",xbin,xrange[0],xrange[1],ybin,yrange[0],yrange[1]);
41 for(Int_t i=0; i<5; i++)
42 {
43 hist->Add(histos[i],1);
44 }
45 tracks = (AliL3TrackArray*)b->FindPeak(hist,4,0.95,5);
46 track = (AliL3HoughTrack*)tracks->GetCheckedTrack(0);
47 peaks->Fill(track->GetKappa(),track->GetPhi0(),1);
4de874d1 48
4de874d1 49
52a2a604 50 for(Int_t padrow=0; padrow<174; padrow++)
4de874d1 51 {
52a2a604 52 Float_t xyz[3];
53 track->GetCrossingPoint(padrow,xyz);
54 road->Fill(xyz[0],xyz[1],1);
4de874d1 55 }
4de874d1 56
52a2a604 57 c1 = new TCanvas("c1","",1000,1000);
4de874d1 58 c1->Divide(2,2);
59 c1->cd(1);
52a2a604 60 hist->Draw("box");
61 peaks->Draw("same");
62 c1->cd(2);
4de874d1 63 raw->Draw();
52a2a604 64 c1->cd(3);
4de874d1 65 road->Draw();
52a2a604 66 printf("Pt %f phi0 %f\n",track->GetPt(),track->GetPhi0());
67 return;
68
4de874d1 69
70 delete b;
71 delete d;
72 delete c;
73 //----------------------------------------------------------------------------
74 if(MC)
75 {
76 TFile *file = new TFile(rootfile);
77 file->cd();
78
79 gAlice = (AliRun*)file->Get("gAlice");
80 gAlice->GetEvent(0);
81
82 TClonesArray *particles=gAlice->Particles();
83 Int_t n=particles->GetEntriesFast();
84 Float_t torad=TMath::Pi()/180;
85 Float_t phi_min = slice*20 - 10;
86 Float_t phi_max = slice*20 + 10;
87
88 for (Int_t j=0; j<n; j++) {
89 TParticle *p=(TParticle*)particles->UncheckedAt(j);
90 if (p->GetFirstMother()>=0) continue; //secondary particle
91 if(p->Eta() < eta[0] || p->Eta() > eta[1]) continue;
92 Double_t ptg=p->Pt(),pxg=p->Px(),pyg=p->Py(),pzg=p->Pz();
93 Double_t phi_part = TMath::ATan2(pyg,pxg);
94 if (phi_part < 0) phi_part += 2*TMath::Pi();
95
96 if(phi_part < phi_min*torad || phi_part > phi_max*torad) {continue;}
97 if(ptg<0.100) continue;
98 int found = 0;
99 for(int m=0; m<mtrs->GetNTracks(); m++)
100 {
101 AliL3HoughTrack *tra = (AliL3HoughTrack*)mtrs->GetCheckedTrack(m);
102 if(tra->GetMCid() != j) continue;
103 found = 1;
104 double dPt = fabs(ptg-tra->GetPt());
105 float phi0[2] = {tra->GetPhi0(),0};
106 transform->Local2GlobalAngle(phi0,slice);
107 double dPhi0 = fabs(phi_part-phi0[0]);
108 printf("Difference Pt %f Phi0 %f\n",dPt,dPhi0);
109
110 }
111 if(!found) printf("Track %d was not found\n",j);
112 printf("Generated particle %d, with pt %f phi %f\n",p->GetPdgCode(),ptg,phi_part);
113 }
114 file->Close();
115 delete file;
116 }
117
118}