]>
Commit | Line | Data |
---|---|---|
ef51244a | 1 | void readDigits(Int_t evNumber=1) |
2 | { | |
3 | ||
4 | // Dynamically link some shared libs | |
5 | if (gClassTable->GetID("AliRun") < 0) { | |
6 | gROOT->LoadMacro("loadlibs.C"); | |
7 | loadlibs(); | |
8 | } | |
9 | ||
10 | // Connect the Root Galice file containing Geometry, Kine and Hits | |
11 | TFile *file = (TFile*)gROOT->GetListOfFiles()->FindObject("galice.root"); | |
12 | //TFile *file = (TFile*)gROOT->GetListOfFiles()->FindObject("galice.root"); | |
e73d68f2 | 13 | if (!file) file = new TFile("galice.root","UPDATE"); |
ef51244a | 14 | |
15 | // Get AliRun object from file or create it if not on file | |
16 | if (!gAlice) { | |
17 | gAlice = (AliRun*)file->Get("gAlice"); | |
18 | if (gAlice) printf("AliRun object found on file\n"); | |
19 | if (!gAlice) gAlice = new AliRun("gAlice","Alice test program"); | |
20 | } | |
21 | char nameTD[8],nameTR[8]; | |
22 | ||
7115262b | 23 | TH1F *hTimediff = new TH1F("hTimediff","Time difference",100,0,200); |
e73d68f2 | 24 | TH1F *hTimePs = new TH1F("hTimePs","Time in Ps",100,-200,200); |
25 | TH1F *hMeanTime = new TH1F("hMeanTime","Time in Ps",100,2000,2500); | |
26 | TH1F *hallADC = new TH1F("hallright","ADC summary right",100,0,200); | |
27 | TH1F *hADCright = new TH1F("hADCright","ADC right",100,0,200); | |
28 | TH1F *hADCleft = new TH1F("hADCleft","ADC left",100,0,200); | |
29 | TH1F *hTimeright = new TH1F("hTimeright","Time right",100,2000.,3200.); | |
30 | TH1F *hTimeleft = new TH1F("hTimeleft","Time left",100,2000.,3200.); | |
31 | TH1F *hBestTimeright = new TH1F("hBestTimeright","First time right", | |
32 | 100,2000.,3200); | |
33 | TH1F *hBestTimeleft = new TH1F("hBestTimeleft","First time left", | |
34 | 100,11000.,13000.); | |
35 | ||
ef51244a | 36 | digits = new AliSTARTdigit(); |
e73d68f2 | 37 | timeRight = new TArrayI(12); |
38 | timeLeft = new TArrayI(12); | |
39 | ADCRight = new TArrayI(12); | |
40 | ADCLeft = new TArrayI(12); | |
ef51244a | 41 | |
42 | // Event ------------------------- LOOP | |
e73d68f2 | 43 | for (Int_t j=0; j<evNumber; j++){ |
44 | // gAlice->GetEvent(j); | |
7115262b | 45 | sprintf(nameTD,"START_D_%d",j); |
ef51244a | 46 | printf("%s\n",nameTD); |
e73d68f2 | 47 | TObject *td = (TObject*)gDirectory->Get(nameTD); |
48 | digits->Read(nameTD); | |
49 | // digits->Dump(); | |
50 | // digits->Print(); | |
51 | printf("time %d\n",digits->GetTimeDiff()); | |
ef51244a | 52 | |
e73d68f2 | 53 | if(digits->GetTimeDiff()!=999999){ |
54 | Int_t timediff = digits->GetTimeDiff(); | |
7115262b | 55 | // Double_t timePs=(timediff-128)*10.; // time in Ps channel_width =10ps |
e73d68f2 | 56 | Int_t timePs=(512-timediff)*2.5.; // time in Ps channel_width =10ps |
7115262b | 57 | cout<<"timediff "<<timediff<<" timePs "<<timePs<<endl; |
ef51244a | 58 | hTimediff->Fill(timediff); |
59 | hTimePs->Fill(timePs); | |
e73d68f2 | 60 | Int_t mean=digits->GetMeanTime(); |
61 | cout<<" mean "<<mean<<endl; | |
62 | mean=mean*2.5; | |
63 | hMeanTime->Fill(mean); | |
64 | Int_t br=digits->GetBestTimeRight(); | |
65 | Int_t bl=digits->GetBestTimeLeft(); | |
66 | cout<<"BestTimeRight "<<br*2.5<<" BestTimeLeft "<<bl*2.5<<endl; | |
67 | hBestTimeright->Fill(br*2.5); | |
68 | hBestTimeleft ->Fill(bl*2.5); | |
69 | digits->GetTimeRight(*timeRight ); | |
70 | digits->GetTimeLeft(*timeLeft ); | |
71 | digits->GetADCRight(*ADCRight ); | |
72 | digits->GetADCLeft(*ADCLeft ); | |
73 | for (Int_t i=0; i<12; i++) | |
74 | { | |
75 | Int_t t=timeRight.At(i); | |
76 | Int_t ADC=ADCRight.At(i); | |
77 | hTimeright->Fill(t*2.5); | |
78 | hADCright->Fill(ADC); | |
79 | } | |
80 | for (Int_t i=0; i<12; i++) | |
81 | { | |
82 | Int_t ADC=ADCRight.At(i); | |
83 | Int_t t=timeLeft.At(i); | |
84 | hTimeleft->Fill(t*2.5); | |
85 | hADCleft->Fill(ADC); | |
86 | } | |
ef51244a | 87 | } |
88 | } | |
7115262b | 89 | |
e73d68f2 | 90 | Hfile = new TFile("Figdigits.root","RECREATE","Histograms for START digits"); |
91 | printf("Writting histograms to root file \n"); | |
92 | Hfile->cd(); | |
93 | //Create a canvas, set the view range, show histograms | |
94 | gStyle->SetOptStat(111111); | |
7115262b | 95 | // TCanvas *c1 = new TCanvas("c1","Alice START Time ",400,10,600,600); |
e73d68f2 | 96 | hADCright->Write(); |
97 | hADCleft->Write(); | |
98 | hTimeright->Write(); | |
99 | hTimeleft->Write(); | |
ef51244a | 100 | hTimePs->SetXTitle("arriving time, ps"); |
101 | hTimePs->SetYTitle("number of events"); | |
102 | hTimePs->Write(); | |
e73d68f2 | 103 | hMeanTime->Write(); |
104 | hBestTimeright->Write(); | |
105 | hBestTimeleft ->Write(); | |
7115262b | 106 | Hfile->Close(); |
ef51244a | 107 | |
108 | ||
109 | } // end of macro | |
110 | ||
111 | ||
112 | ||
113 |