October 22, 2008

From New IAC Wiki
Revision as of 00:55, 3 January 2009 by Oborn (talk | contribs) (→‎run 140)
Jump to navigation Jump to search

Unpolarized Measurents:

A 2x4x8" aluminum brick was placed at the HRRL export in order to destroy the photon polarization. Rate measurements were made with the descriminator and HV settings used the past week. Then the constant fraction descriminator was replaced with a threshold descriminator on two detectors but not the reference detector.

ADC =0 => Reference Detector D

ADC = 1 => NaI

ADC=2 => Detector C

ADC = 3 => Detector A

channel # * 0.1675 ns/chan => ns


Default HV and CF descriminator

Matched HV and Threshold Descriminator

2 Runs were taken with the following settings

100 ms Threshold descrimnaotr

[math]HV_{Det A}[/math] =

[math]HV_{Det_C}[/math] =

Run 234

NaI spectrum monitoring the photon flux during run 234

Run234RefDet.gif

Run234DetAside.gif

Run234DetCup.gif


Run234RefDetNorm.gif

If I normalize using the Reference detector I see

Run234DetAsideOverRef.gif Run234DetCupOverRef.gif

If I normalize using the NaI detector I see:

Run234DetAsideNorm.gif Run234DetCupNorm.gif

The Difference and Asymmetry measurements.

Run234AsideSubCupNorm.gif Run234AsymAsideCupNorm.gif

The above is just an example of how to analyze the data. Students should take my bad example and improve upon it.


The program I used to generate the above pictures from a ROOT file is given below.

I used the "PhotoFis->MakeClass()" command within root to generate the skeleton program which has 2 files called Media:PhotoFis.h.txt and Media:PhotoFis.C.txt.

You define your histogram variables and the file you are opening to analyze in the file Media:PhotoFis.h.txt.

see the lines which look like

  TH1F *NaiInt229, *RefDetRun229, *Aup, *Cside, *Nai229, *Unity;
  TH1F *NaiInt234, *RefDetRun234, *Aside, *Cup, *Nai234;
  TH1F *AsideOverRefDetRun234, *CupOverRefDet234, , *AupOverRefDet229, *CsideOverRefDet229;
  TH1F *AsideNormSubCupNorm, *AsideNormAddCupNorm, *AsymAsideNormCupNorm;
     TFile *f = (TFile*)gROOT->GetListOfFiles()->FindObject("DetCup_10_10_08_00234.root");
     if (!f) {
        f = new TFile("DetCup_10_10_08_00234.root");


You create your histograms, loop over the ntuple entries , and perform histogram operations in the file Media:PhotoFis.C.txt

Run 229

NaI spectrum monitoring the photon flux during run 229


The root commands

root [24] TH1F *RefDetRun229=new TH1F("RefDetRun229","RefDetRun229",800,0,800);
root [25] PhotoFis->Draw("evt.ADCval*0.1675 >> RefDetRun229","evt.ADCnum==0 && evt.LastADCval>0");

Will create histogram with 800 channels and 800 bins so we have 1 bin per channel (ns).

Run229RefDet.gif Run229DetAup.gif Run229DetCside.gif


To normalize the data you need to integrate the NaI histogram. To do this a skeleton program is creates using ROOT which will loop through the ROOT ntuple using the command

PhotoFis->MakeClass();

You will see a file called PhotoFis.C after you execute the above command within the ROOT interpreter window.


300 px 300 px 300 px

Asym

Now do Asym plots using the same detector normalize by the Reference detector in one case and the NaI detector in another.

H20 runs

run 140

Det A on top

uses file 199.lst

The spectrum below shows the Time of Flight spectrum for Detectors "A" and "C". The bottom figures represent the energy calculated from the time of flight when a neutron is assumed as the detected particle. Events beyond 50 MeV are from the photon peak. In order to determine the time of flight the average ToF for a photon (140 ns) was used as the start time. Photon events above this average will appear at energies beyond 50 MeV and photon events below this average will have negative times and appear as Underflows in histogram AupNErun199. There are 7640 events in Histogram Auprun199 above 146 ns correspond to the (15050-7410=7640) events shown in AupNErun199 histogram.

Run140 RawToF.gif

Neutrons from the target should have energies below 14 MeV. The spectra below were normalized by the number of NaI events observed during the run.

Run140 NormNeutronEspectrum.gif

run 136

Det A on side

uses file 194.lst

ROOT Commands

1.)How to save histograms from several different files to a single file


root [0] TFile *f1=new TFile("Run194Histos.root")                    
root [1] TH1F *AsideNormRun194_H=((TH1F*)f1->Get("AsideNormRun194"));
root [2] TFile* file = TFile::Open("UnpolResults.root","RECREATE");  
root [3] file->cd();                                                 
root [4] AsideNormRun194_H->Write();                                 
root [5] TFile *f2=new TFile("Run199Histos.root")                    
root [6] TH1F *AupNormRun199_H=((TH1F*)f2->Get("AupNormRun199"));    
root [7] file->cd();                                                 
root [8] AupNormRun199_H->Write();                                   


2.) How to manipulate histograms in the saved file

 TFile *f1=new TFile("UnpolResults.root");                    
f1->cd();
TH1F *AupNormRun199_H=((TH1F*)f1->Get("AupNormRun199"));
AupNormRun199_H->Draw();                                
TH1F *AsideNormRun194_H=((TH1F*)f1->Get("AsideNormRun194"));
AsideNormRun194_H->Draw();   
TH1F *AsideNormRun194_H=((TH1F*)f1->Get("AsideNormRun194"));
AupNormRun199_H->Sumw2();                           
AsideNormRun194_H->Sumw2();   
TH1F H2OdiffDetA= (*AupNormRun199_H - *AsideNormRun194_H);
H2OdiffDetA->Draw();                                      
TH1F H2OsumDetA= (*AupNormRun199_H + *AsideNormRun194_H); 
H2OsumDetA->Draw();                                      


Background subtracted Det A

TFile *f1=new TFile("Run194Histos.root"); // H2O Aside
TFile *f2=new TFile("Run199Histos.root"); // H2O Aup
TFile *f3=new TFile("Run229Histos.root"); // D2O Aup
TFile *f4=new TFile("Run234Histos.root"); // D2O A side
f1->cd();
TH1F *AsideNormRun194=((TH1F*)f1->Get("AsideNormRun194"));
f2->cd();
TH1F *AupNormRun199=((TH1F*)f2->Get("AupNormRun199"));
f3->cd();
TH1F *AupNormRun229=((TH1F*)f3->Get("AupNormRun229"));
f4->cd();
TH1F *AsideNormRun234=((TH1F*)f4->Get("AsideNormRun234"));
TFile* file = TFile::Open("UnpolResultsDetA.root","RECREATE");  
file->cd();
AsideNormRun194->Write();
AupNormRun199->Write();
AupNormRun229->Write();
AsideNormRun234->Write();
AsideNormRun194->Sumw2();
AupNormRun199->Sumw2();
AupNormRun229->Sumw2();
AsideNormRun234->Sumw2();

TH1F DetAdiffH20= ( *AupNormRun199 - *AsideNormRun194);
DetAdiffH20->SetName("DetAdiffH20");
TH1F DetAup_D2OsubH20= ( *AupNormRun229 - *AupNormRun199);
DetAup_D2OsubH20->SetName("DetAup_D2OsubH20");
TH1F DetAside_D2OsubH20= ( *AsideNormRun234 - *AsideNormRun194);

DetAside_D2OsubH20->SetName("DetAside_D2OsubH20");

TH1F DetAdiff= (DetAup_D2OsubH20 - DetAside_D2OsubH20);
 DetAdiff->SetName("DetAdiff");
DetAdiffH20->Write();

TH1F DetAsum= (DetAup_D2OsubH20 + DetAside_D2OsubH20);

 DetAsum->SetName("DetAsum");
DetAsumH20->Write();
DetAup_D2OsubH20->Write();
DetAside_D2OsubH20->Write();
DetAdiff->Write();

TH1F *AsymDetA=(TH1F*)DetAdiff->Clone("AsymDetA");

AsymDetB->Scale(25000); // 100 * 0.004 from the DetA sum histogram

Det A Asym Unpol BackGrdSubtrctd 10-22-08.gif

go back