1 //_____________________________________________________//
3 // This macro reads ACORDE Raw-Rootfied files //
4 // and draws Histograms of Acorde's Bitpattern //
8 // Mario Rodriguez Cahuantzi <mrodrigu@mail.cern.ch> //
10 // Also comments to: //
12 // Mario Sitta <sitta@to.infn.it> //
13 // Arturo Fernandez <afernan@mail.cern.ch> //
14 // Luciano Diaz <luciano.diaz@nucleares.unam.mx> //
15 // Eleazar Cuautle <ecuautle@nucleares.unam.mx> //
16 //____________________________________________________ //
19 #include <TClonesArray.h>
22 //void AcoReco(char* fileName="08000020614001.20.root")
23 void AcoReco(char* fileName)
27 AliRawReader* rawReader = new AliRawReaderRoot(fileName);
28 AliRawReader* rCount = new AliRawReaderRoot(fileName);
29 AliACORDERawStream* rawStream = new AliACORDERawStream(rawReader);
30 TH1D *h1 = new TH1D("h1","ACORDE - Single Muon Hits",60,1,60);
31 TH1D *h2 = new TH1D("h2","ACORDE - Hit Multiplicity",60,1,60);
35 bool kroSingle[60],kroMulti[60];
37 Int_t dyma[60],DyM,nEvents=0;
38 for(Int_t m=0;m<60;m++) {kroSingle[m]=0;kroMulti[m]=0;dyma[m]=0;}
41 Int_t nEvents = rawStream->GetNEvents(fileName);
43 printf("Numero de eventos: %d \n",nEvents);
45 for (Int_t i=1; i<=nEvents; i++)
47 if (!rawReader->NextEvent()) break;
49 if (!rawStream->Next()) break;
50 dy[0]=rawStream->GetWord(0);
51 dy[1]=rawStream->GetWord(1);
52 dy[2]=rawStream->GetWord(2);
53 dy[3]=rawStream->GetWord(3);
55 for(Int_t r=0;r<30;++r)
57 kroSingle[r] = tmpDy & 1;
61 for(Int_t r=30;r<60;++r)
63 kroSingle[r] = tmpDy & 1;
67 for(Int_t r=0;r<30;++r)
69 kroMulti[r] = tmpDy & 1;
73 for(Int_t r=30;r<60;++r)
75 kroMulti[r] = tmpDy & 1;
79 for(Int_t r=0;r<60;++r)
85 contSingle=contSingle+1;
88 }h2->Fill(contSingle);
91 TCanvas *acorde = new TCanvas("ACORDE","ACORDE-Hist-Real Data",1);
94 h1->GetXaxis()->SetTitle("No. of Channel");
95 h1->GetYaxis()->SetTitle("No. of Hits");
96 h1->SetFillColor(kRed);
100 h2->GetXaxis()->SetTitle("No. of Modules");
101 h2->GetYaxis()->SetTitle("Multiplicity");
102 h2->SetFillColor(kBlue);