void plotallchchipx2d(int chip = 0,const char *title = "",const char *filelist = "allped.txt") { char name[100]; Char_t iChan; // Channel number Char_t iChip; // Channel number char filename[256]; char sPath[256]; UShort_t iClLength; //number of samples UInt_t iEventnb; Int_t iSamples[1024]; // Samples Int_t iMax = 0; Int_t nRun; TH2F* hSignal[16]; int vschip[16]; int vschan[16]; TCanvas *c1 = new TCanvas("c1","Single cluster",600,600); TChain ch("tree"); FILE *in = fopen(filelist,"r"); sscanf(filelist,"%8s/rootfiles-%d",sPath,&nRun); while (fscanf(in,"%s",name) != EOF) { sscanf(name,"readout-%d_0.root",&nRun); sprintf(filename,"%s/root/%s",sPath,name); ch.Add(filename); cout << "Added file: " << sPath << " " << filename << "Run " << nRun << "\n"; } fclose(in); // Assign variables to branches ch.SetBranchAddress("iEventnb",&iEventnb); ch.SetBranchAddress("iSamples",&iSamples); ch.SetBranchAddress("iChan",&iChan); ch.SetBranchAddress("iChip",&iChip); ch.SetBranchAddress("iClLength",&iClLength); // c1->Divide(1,16); Int_t nentries = ch.GetEntries(); printf("ENTRIES %d\n",nentries); for (Int_t j = 0; j < 16; j++) { vschip[j] = -1; vschan[j] = -1; sprintf(name, "hSignal_%d", j); hSignal[j] = ((TH2F *)(gROOT->FindObject(name))); if (hSignal[j]) delete hSignal[j]; hSignal[j] = new TH2F(name, "",1024,-0.5,1023.5,80,39.5,79.5); // hSignal[j]->SetMinimum(0); // hSignal[j]->SetMaximum(1024); } gStyle->SetOptStat(0); // int iRun = 0; for (Int_t j = 0; j < nentries; j++) { ch.GetEntry(j); for(Int_t l = 0; l < iClLength; l++) { // hSignal[iRun]->SetBinContent(l, iSamples[iClLength-l]); hSignal[iChan]->Fill(l,iSamples[iClLength-l]); } // vschip[iRun] = iChip; vschan[iChan]++; //iRun++; } for (Int_t j = 0; j < 16; j++) { // c1->cd(j+1); // c1->cd(); // hSignal[j]->Scale(1.0/vschan[j]); sprintf(name, "Time mcm %d chip %d chan %d %s",chip,iChip,j,title); hSignal[j]->SetTitle(name); hSignal[j]->GetXaxis()->SetTitle("Time slice"); hSignal[j]->GetYaxis()->SetTitle("ADC value"); // hSignal[j]->SetAxisRange(0, 200, "X"); // hSignal[j]->SetAxisRange(0, 60, "Y"); hSignal[j]->Draw("BOX"); if (j == 0) sprintf(name,"chipx2d-all-chip%d-%d-%s.pdf(",chip,nRun,title); else if ( j == 15) sprintf(name,"chipx2d-all-chip%d-%d-%s.pdf)",chip,nRun,title); else sprintf(name,"chipx2d-all-chip%d-%d-%s.pdf",chip,nRun,title); c1->SaveAs(name,"pdf"); // printf("%d\t%5.2f\t%5.3f\t%5.1f\n",j,hSignal[j]->GetMean(),hSignal[j]->GetRMS(),hSignal[j]->GetEntries()); } }