void plotchipzsup(const int iEvent = 1,int chip = 0,const int runnb = 1) { char name[100]; Char_t iChan; // Channel number Char_t iChip; // Channel number UShort_t iClLength; //number of samples UShort_t iClTime; // Time of sample UInt_t iEventnb; Int_t iEntry; Int_t iSamples[1024]; // Samples TH1F* hSignal[16]; TH1F* hClLength[16]; TH1F* hClusters; sprintf(name, "readout-%i_0.root", runnb); TFile *inFile = new TFile(name); TTree *tree = (TTree*) inFile->Get("tree"); if(!tree) { cerr << "Tree SALTRO events was not found: " << name << "\n"; return; } sprintf(name, "Event_%d", iEvent); TCanvas *c1 = new TCanvas("c1",name,800,800); tree->SetBranchAddress("iEventnb",&iEventnb); tree->SetBranchAddress("iSamples",&iSamples); tree->SetBranchAddress("iChan",&iChan); tree->SetBranchAddress("iChip",&iChip); tree->SetBranchAddress("iClLength",&iClLength); tree->SetBranchAddress("iClTime",&iClTime); iEventnb = 0; iEntry = 0; for (Int_t j = 0; j < 16; j++) { sprintf(name, "hSignal_%d", j); hSignal[j] = ((TH1F *)(gROOT->FindObject(name))); if (hSignal[j]) delete hSignal[j]; hSignal[j] = new TH1F(name, "",1024,-0.5,1023.5); hSignal[j]->SetMinimum(0); hSignal[j]->SetStats(0); } for (Int_t j = 0; j < 16; j++) { sprintf(name, "hClLegth_%d", j); hClLength[j] = ((TH1F *)(gROOT->FindObject(name))); if (hClLength[j]) delete hClLength[j]; hClLength[j] = new TH1F(name, "",1024,-0.5,1023.5); hClLength[j]->SetMinimum(0); } sprintf(name, "hClusters"); hClusters = ((TH1F *)(gROOT->FindObject(name))); if (hClusters) delete hClusters; hClusters = new TH1F(name, "",16,-0.5,15.5); hClusters->GetXaxis()->SetTitle("Clusters"); hClusters->GetYaxis()->SetTitle("Channel"); hClusters->SetMinimum(0); hClusters->SetStats(0); while (iEventnb < iEvent) { tree->GetEntry(iEntry++); } gStyle->SetOptStat(1110); int maxClLength = 0; while (iEventnb == iEvent) { for(Int_t l = 0; l < iClLength; l++) { hSignal[iChan]->AddBinContent(iClTime-l, iSamples[l]); } hClLength[iChan]->Fill(iClLength); if (iClLength > maxClLength) maxClLength = iClLength; hClusters->Fill(iChan); tree->GetEntry(iEntry++); } for (Int_t j = 0; j < 16; j++) { c1->cd(iChan+1); sprintf(name, "Channel %d",j); hSignal[j]->SetTitle(name); hSignal[j]->GetXaxis()->SetTitle("Sample #"); hSignal[j]->GetYaxis()->SetTitle("ADC value"); hSignal[j]->Draw(); if (j == 0) sprintf(name,"plotchipzsup-%d-%d-%d.pdf(",chip,iEventnb,runnb); else sprintf(name,"plotchipzsup-%d-%d-%d.pdf",chip,iEventnb,runnb); c1->SaveAs(name,"pdf"); } for (Int_t j = 0; j < 16; j++) { c1->cd(iChan+1); sprintf(name, "Channel %d Cluster Length",j); hClLength[j]->SetTitle(name); hClLength[j]->GetXaxis()->SetTitle("Entries"); hClLength[j]->GetYaxis()->SetTitle("Length"); hClLength[j]->SetAxisRange(0, maxClLength+5, "X"); hClLength[j]->Draw(); sprintf(name,"plotchipzsup-%d-%d-%d.pdf",chip,iEventnb,runnb); c1->SaveAs(name,"pdf"); } hClusters->Draw(); sprintf(name,"plotchipzsup-%d-%d-%d.pdf)",chip,iEventnb,runnb); c1->SaveAs(name,"pdf"); }