]>
Commit | Line | Data |
---|---|---|
23916549 | 1 | void runhough(Int_t slice,Char_t *path,Int_t n_eta_segments) |
e0f350ab | 2 | { |
3 | ||
73232360 | 4 | AliL3Transform::Init("/prog/alice/data/new/fixed-slice0/"); |
5 | ||
1772d17b | 6 | hough = new AliL3Hough(); |
73232360 | 7 | Bool_t binary = kTRUE; |
8 | Bool_t bit8 = kTRUE; | |
9 | hough->Init(path,binary,n_eta_segments,bit8); | |
10 | ||
11 | hough->GetMaxFinder()->SetThreshold(14000); | |
e0f350ab | 12 | |
1772d17b | 13 | hough->ReadData(slice); |
e0f350ab | 14 | hough->Transform(); |
e0f350ab | 15 | hough->AddAllHistograms(); |
16 | hough->FindTrackCandidates(); | |
17 | ||
e0f350ab | 18 | //hough->Evaluate(); |
19 | tracks = (AliL3TrackArray*)hough->GetTracks(0); | |
20 | for(int i=0; i<tracks->GetNTracks(); i++) | |
21 | { | |
22 | track = (AliL3HoughTrack*)tracks->GetCheckedTrack(i); | |
23 | if(!track) continue; | |
73232360 | 24 | cout<<"pt "<<track->GetPt()<<" psi "<<track->GetPsi()<<" eta "<<track->GetEta()<<" etaindex "<<track->GetEtaIndex()<<" weight "<<track->GetWeight()<<endl; |
e0f350ab | 25 | } |
26 | ||
73232360 | 27 | hough->WriteTracks(slice); |
28 | cout<<"Found in total "<<tracks->GetNTracks()<<" tracks"<<endl; | |
29 | display(hough,25); | |
e0f350ab | 30 | |
31 | } | |
32 | ||
33 | void display(AliL3Hough *hough,Int_t eta_index) | |
34 | { | |
35 | //Display the data/tracks in eta_index | |
36 | ||
37 | hough->InitEvaluate(); | |
38 | digitd = new AliL3Histogram("Digits display","",250,0,250,250,-125,125); | |
39 | trackd = new AliL3Histogram("Found tracks display","",250,0,250,250,-125,125); | |
40 | for(int i=0; i<6; i++) | |
41 | hough->GetEval(i)->DisplayEtaSlice(eta_index,digitd); | |
42 | ||
43 | tracks = (AliL3TrackArray*)hough->GetTracks(0); | |
44 | float xyz[3]; | |
45 | for(int i=0; i<tracks->GetNTracks(); i++) | |
46 | { | |
47 | AliL3HoughTrack *track = (AliL3HoughTrack*)tracks->GetCheckedTrack(i); | |
48 | if(!track) continue; | |
49 | if(track->GetEtaIndex() != eta_index) continue; | |
50 | ||
51 | for(int j=0; j<176; j++) | |
52 | { | |
53 | track->GetCrossingPoint(j,xyz); | |
54 | trackd->Fill(xyz[0],xyz[1],1); | |
55 | } | |
56 | } | |
57 | ||
58 | //Draw the parameter space | |
59 | c1 = new TCanvas("c1","",2); | |
73232360 | 60 | hough->GetTransformer(0)->GetHistogram(eta_index)->Draw("box"); |
61 | ||
e0f350ab | 62 | //Draw the tracks |
63 | c2 = new TCanvas("c2","",2); | |
64 | digitd->Draw(); | |
65 | trackd->Draw("same"); | |
66 | ((TH1F*)trackd->GetRootHisto())->SetMarkerColor(2); | |
67 | } | |
73232360 | 68 | |
69 | struct GoodTrack | |
70 | { | |
71 | Int_t event; | |
72 | Int_t label; | |
73 | Double_t eta; | |
74 | Int_t code; | |
75 | Double_t px,py,pz; | |
76 | Double_t pt; | |
77 | Int_t nhits; | |
78 | }; | |
79 | ||
80 | void geteff(char *fname) | |
81 | { | |
82 | GoodTrack gt[15000]; | |
83 | int counter=0; | |
84 | ifstream in(fname); | |
85 | if(!in) | |
86 | { | |
87 | cerr<<"Could not open "<<fname<<endl; | |
88 | return; | |
89 | } | |
90 | while(in>>gt[counter].event>>gt[counter].label>>gt[counter].code | |
91 | >>gt[counter].px>>gt[counter].py>>gt[counter].pz>>gt[counter].pt>>gt[counter].eta>>gt[counter].nhits) | |
92 | counter++; | |
93 | ||
94 | char filename[100]; | |
95 | file = new AliL3MemHandler(); | |
96 | ||
97 | ||
98 | } |