void TMRCScanner::HITSummary(int channel) { ffile = new TFile(foutfile); if (ffile->IsOpen()) { ftree = (TTree*) ffile->Get("T"); ftree->SetMarkerStyle(23); Double_t w =600; Double_t h = 600; TCanvas * myc = new TCanvas("c",Form("HIT Summary - channel %d",channel),w,h); myc->SetWindowSize(w+(w-myc->GetWw()),h +(h-myc->GetWh())); myc->Divide(3,2); myc->Update(); myc->cd(1); myc->Update(); ftree->Draw(Form("HITEntries[%d]:DAC",channel)); myc->cd(6); myc->Update(); ftree->Draw(Form("HITMin[%d]:DAC",channel)); myc->cd(3); myc->Update(); ftree->Draw(Form("HITMax[%d]:DAC",channel)); myc->cd(2); myc->Update(); ftree->Draw(Form("HITMean[%d]:DAC",channel)); myc->cd(5); myc->Update(); ftree->Draw(Form("HITRms[%d]:DAC",channel)); }else { printf("File %s not opened \n",foutfile); } delete ffile; }
void arrowPlot(){ gROOT->Reset(); gROOT->SetStyle("Plain"); TChain *mc = new TChain("ntupleR2S"); //MC reco mc->Add("./ntuple_conversion_MinBiasMC_01.root"); mc->Add("./ntuple_conversion_MinBiasMC_02.root"); mc->Add("./ntuple_conversion_MinBiasMC_03.root"); mc->Add("./ntuple_conversion_MinBiasMC_04.root"); TString rSIM = "sqrt((x+deltax)*(x+deltax)+(y+deltay)*(y+deltay))"; TString xSIM = "(x+deltax)"; TString ySIM = "(y+deltay)"; TString zSIM = "(z+deltaz)"; TString deltar = "sqrt((deltax)*(deltax)+(deltay)*(deltay))"; TString deltax = "(deltax)"; TString deltay = "(deltay)"; TString deltaz = "(deltaz)"; //Z Int_t nbinU = 64; Double_t minU = -80.; Double_t maxU = 80.; //R Int_t nbinV = 26; Double_t minV = 0.; Double_t maxV = 65.; TString varU = zSIM; TString varV = rSIM; TString deltaU = deltaz; TString deltaV = deltar; // TCanvas * canrz = makeNiceCanvas(15, nbinU, nbinV, 0.04, 0.11, 0.07, 0.02); TCanvas * canrz = makeNiceCanvas(15, nbinU, nbinV, 20, 60, 70, 20); canrz->cd(); drawFrame("true Z (cm)", "true R (cm)", minU, maxU, minV, maxV, canrz->GetWh()); drawArrowPlot(mc, varU, deltaU, varV, deltaV, nbinU, minU, maxU, nbinV, minV, maxV); canrz->SaveAs("RZ_Arrow.png"); //X nbinU = 52; minU = -65.; maxU = 65.; //Y nbinV = 52; minV = -65.; maxV = 65.; varU = xSIM; varV = ySIM; deltaU = deltax; deltaV = deltay; TCanvas * canxy = makeNiceCanvas(15, nbinU, nbinV, 20, 60, 70, 20); canxy->cd(); drawFrame("true X (cm)", "true Y (cm)", minU, maxU, minV, maxV, canxy->GetWh()); drawArrowPlot(mc, varU, deltaU, varV, deltaV, nbinU, minU, maxU, nbinV, minV, maxV); canxy->SaveAs("XY_Arrow.png"); }
void pmt_testing(char* input_file) { Double_t width = 1000; Double_t height = 1000; TCanvas * canvas = new TCanvas("canvas", "PMT Testing", 0, 0, width, height); canvas->SetWindowSize(width + (width - canvas->GetWw()), height + (height - canvas->GetWh())); //Parameters Int_t nbins = 40; Double_t min = 550000; //hist min/max values Double_t max = 600000; //Must be better way to get these! //Initialized variables Int_t num_data_points = 0; Int_t pulse; Int_t channel; Int_t total_channels; const Int_t pedestal = 2020; //how to determine this? TFile *file = new TFile("adc_data.root", "recreate"); //Style settings gROOT->SetStyle("Plain"); gStyle->SetPalette(53); gStyle->SetOptStat(111111); gStyle->SetOptFit(1111); gStyle->SetStatBorderSize(0); gStyle->SetOptTitle(1); //Prepare Data //Create nTuple TTree *t1 = new TTree("t1", "ADC Data"); t1->Branch("pulse", &pulse, "pulse/I"); t1->Branch("channel", &channel, "channel/I"); ifstream in; in.open(input_file); //Fill TTree while ( in >> channel) { if (num_data_points % 2520 == 0) pulse++; t1->Fill(); num_data_points++; } in.close(); TH1F * spectrum = new TH1F("spectrum", "ADC Spectrum; Accumulated Channels; Counts", nbins, min, max); //spectrum->SetBit(TH1::kCanRebin); spectrum->Sumw2(); for(Int_t i = 0; i < t1->GetEntries(); i++) { t1->GetEntry(i); if (i % 2520 == 0) { cout << "total_channels = " << total_channels << endl; spectrum->Fill(total_channels); total_channels = 0; } total_channels += TMath::Abs(channel - pedestal); } spectrum->SetLineWidth(2); spectrum->SetMarkerColor(kBlack); spectrum->SetLineColor(kBlack); // Fit Gaussian to curve and Draw spectrum->Fit("gaus"); spectrum->GetFunction("gaus")->SetLineColor(kRed); spectrum->Draw("Same"); t1->Write(); spectrum->Write(); }