void plotpedchipx(int chip = 0,int iMinSample = 0, int iMaxSample = 1000,const char *title = "",const char *filelist = "allped.txt") { char name[100]; char filename[256]; char sPath[256]; Char_t iChan; // Channel number Char_t iChip; // Channel number UShort_t iClLength; //number of samples UInt_t iEventnb; Int_t iSamples[1024]; // Samples Int_t iMax = 0; Int_t nRun; Int_t iGain = 0; Int_t iShaper = 0; TH1F* hSignal[16]; int chvschip[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) { if (name[0] == 'G') sscanf(name,"G%d",&iGain); else if(name[0] == 'S') sscanf(name,"S%d",&iShaper); else { sscanf(name,"readout-%d_0.root",&nRun); sprintf(filename,"%s/root/%s",sPath,name); ch.Add(filename); cout << "Added file: " << filename << "Run " << nRun << "\n"; } } cout << "Gain " << iGain << " Shaper " << iShaper << "\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(4,4); Int_t nentries = ch.GetEntries(); printf("ENTRIES %d\n",nentries); for (Int_t j = 0; j < 16; j++) { chvschip[iChan] = -1; 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]->SetMaximum(1024); } gStyle->SetOptStat(1100); for (Int_t j = 0; j < nentries; j++) { ch.GetEntry(j); // if (iEventnb < 600) { chvschip[iChip] = iChan; if (iClLength < iMaxSample) iMaxSample = iClLength; // cout << iClLength << " " << iChip << "\n"; for(Int_t l = iMinSample; l < iMaxSample; l++) { hSignal[iChan]->Fill(iSamples[iClLength - l]); } // } } cout << "Minsample " << iMinSample << " MaxSample " << iMaxSample << "\n"; for (Int_t j = 0; j < 16; j++) { c1->cd(j+1); sprintf(name, "Pedestals chip %d mcm %d ch %d %s",iChip,chip,j,title); hSignal[j]->SetTitle(name); hSignal[j]->GetYaxis()->SetTitle("Entries"); hSignal[j]->GetXaxis()->SetTitle("ADC value"); hSignal[j]->SetAxisRange(0, 100, "X"); // hSignal[j]->SetAxisRange(30, 90, "Y"); hSignal[j]->Draw(); printf("%d\t%5.2f\t%5.3f\t%5.1f\n",j+iChip*16,hSignal[j]->GetMean(),hSignal[j]->GetRMS(),hSignal[j]->GetEntries()); } sprintf(name,"ch-chip%d-%d-%d-pedchip0x-%d-%s-gain%d-shaper%d.pdf",chip,iMinSample,iMaxSample,nRun,title,iGain,iShaper); c1->SaveAs(name); }