mollerClass Class Reference

#include <mollerClass.h>

Public Member Functions

 mollerClass (TTree *tree=0)
virtual ~mollerClass ()
virtual Int_t Cut (Long64_t entry)
virtual Int_t GetEntry (Long64_t entry)
virtual Long64_t LoadTree (Long64_t entry)
virtual void Init (TTree *tree)
virtual void Loop ()
virtual Bool_t Notify ()
virtual void Show (Long64_t entry=-1)

Data Fields

TTree * fChain
Int_t fCurrent
 pointer to the analyzed TTree or TChain
Float_t ion
 current Tree number in a TChain
Float_t x
Float_t y
Float_t z
Float_t x0
Float_t y0
Float_t z0
Float_t kineE
Float_t px
Float_t py
Float_t pz
Float_t kineE0
Float_t px0
Float_t py0
Float_t pz0
Float_t kineE1
Float_t px1
Float_t py1
Float_t pz1
Float_t kineE2
Float_t px2
Float_t py2
Float_t pz2
Float_t type
Float_t volume
Float_t theta0
Float_t theta1
Float_t theta2
Float_t ev_num
Float_t process
Float_t event
Float_t creator
Float_t hit
Float_t kineE_org
Float_t theta_org
Float_t track
Float_t diffXS
Float_t totXS
Float_t rate
TBranch * b_ion
TBranch * b_x
TBranch * b_y
TBranch * b_z
TBranch * b_x0
TBranch * b_y0
TBranch * b_z0
TBranch * b_kineE
TBranch * b_px
TBranch * b_py
TBranch * b_pz
TBranch * b_kineE0
TBranch * b_px0
TBranch * b_py0
TBranch * b_pz0
TBranch * b_kineE1
TBranch * b_px1
TBranch * b_py1
TBranch * b_pz1
TBranch * b_kineE2
TBranch * b_px2
TBranch * b_py2
TBranch * b_pz2
TBranch * b_type
TBranch * b_volume
TBranch * b_theta0
TBranch * b_theta1
TBranch * b_theta2
TBranch * b_ev_num
TBranch * b_process
TBranch * b_event
TBranch * b_creator
TBranch * b_hit
TBranch * b_kineE_org
TBranch * b_theta_org
TBranch * b_track
TBranch * b_diffXS
TBranch * b_totXS
TBranch * b_rate

Detailed Description

Definition at line 14 of file mollerClass.h.


Constructor & Destructor Documentation

mollerClass::mollerClass ( TTree *  tree = 0  ) 

Definition at line 115 of file mollerClass.h.

References Init().

00116 {
00117 // if parameter tree is not specified (or zero), connect the file
00118 // used to generate this class and read the Tree.
00119    if (tree == 0) {
00120 
00121 #ifdef SINGLE_TREE
00122       // The following code should be used if you want this class to access
00123       // a single tree instead of a chain
00124       TFile *f = (TFile*)gROOT->GetListOfFiles()->FindObject("Memory Directory");
00125       if (!f) {
00126          f = new TFile("Memory Directory");
00127          f->cd("Rint:/");
00128       }
00129       tree = (TTree*)gDirectory->Get("geant");
00130 
00131 #else // SINGLE_TREE
00132 
00133       // The following code should be used if you want this class to access a chain
00134       // of trees.
00135       TChain * chain = new TChain("geant","");
00136       chain->Add("~/scratch/ROOTfiles/prod_Nov6_Nov17coll_widcoll10m_100k_1.root/geant");
00137       chain->Add("~/scratch/ROOTfiles/prod_Nov6_Nov17coll_widcoll10m_100k_2.root/geant");
00138       chain->Add("~/scratch/ROOTfiles/prod_Nov6_Nov17coll_widcoll10m_100k_3.root/geant");
00139       chain->Add("~/scratch/ROOTfiles/prod_Nov6_Nov17coll_widcoll10m_100k_4.root/geant");
00140       chain->Add("~/scratch/ROOTfiles/prod_Nov6_Nov17coll_widcoll10m_100k_5.root/geant");
00141       chain->Add("~/scratch/ROOTfiles/prod_Nov6_Nov17coll_widcoll10m_100k_6.root/geant");
00142       chain->Add("~/scratch/ROOTfiles/prod_Nov6_Nov17coll_widcoll10m_100k_7.root/geant");
00143       chain->Add("~/scratch/ROOTfiles/prod_Nov6_Nov17coll_widcoll10m_100k_8.root/geant");
00144       chain->Add("~/scratch/ROOTfiles/prod_Nov6_Nov17coll_widcoll10m_100k_9.root/geant");
00145       chain->Add("~/scratch/ROOTfiles/prod_Nov6_Nov17coll_widcoll10m_100k_10.root/geant");
00146       chain->Add("~/scratch/ROOTfiles/prod_Nov6_Nov17coll_widcoll10m_100k_11.root/geant");
00147       chain->Add("~/scratch/ROOTfiles/prod_Nov6_Nov17coll_widcoll10m_100k_12.root/geant");
00148       chain->Add("~/scratch/ROOTfiles/prod_Nov6_Nov17coll_widcoll10m_100k_13.root/geant");
00149       chain->Add("~/scratch/ROOTfiles/prod_Nov6_Nov17coll_widcoll10m_100k_14.root/geant");
00150       chain->Add("~/scratch/ROOTfiles/prod_Nov6_Nov17coll_widcoll10m_100k_15.root/geant");
00151       chain->Add("~/scratch/ROOTfiles/prod_Nov6_Nov17coll_widcoll10m_50k_1.root/geant");
00152       chain->Add("~/scratch/ROOTfiles/prod_Nov6_Nov17coll_widcoll10m_50k_2.root/geant");
00153       tree = chain;
00154 #endif // SINGLE_TREE
00155 
00156    }
00157    Init(tree);
00158 }

Here is the call graph for this function:

mollerClass::~mollerClass (  )  [virtual]

Definition at line 160 of file mollerClass.h.

References fChain.

00161 {
00162    if (!fChain) return;
00163    delete fChain->GetCurrentFile();
00164 }


Member Function Documentation

Int_t mollerClass::Cut ( Long64_t  entry  )  [virtual]

Definition at line 263 of file mollerClass.h.

00264 {
00265 // This function may be called from Loop.
00266 // returns  1 if entry is accepted.
00267 // returns -1 otherwise.
00268    return 1;
00269 }

Int_t mollerClass::GetEntry ( Long64_t  entry  )  [virtual]

Definition at line 166 of file mollerClass.h.

References fChain.

00167 {
00168 // Read contents of entry.
00169    if (!fChain) return 0;
00170    return fChain->GetEntry(entry);
00171 }

void mollerClass::Init ( TTree *  tree  )  [virtual]

Definition at line 187 of file mollerClass.h.

References b_creator, b_diffXS, b_ev_num, b_event, b_hit, b_ion, b_kineE, b_kineE0, b_kineE1, b_kineE2, b_kineE_org, b_process, b_px, b_px0, b_px1, b_px2, b_py, b_py0, b_py1, b_py2, b_pz, b_pz0, b_pz1, b_pz2, b_rate, b_theta0, b_theta1, b_theta2, b_theta_org, b_totXS, b_track, b_type, b_volume, b_x, b_x0, b_y, b_y0, b_z, b_z0, creator, diffXS, ev_num, event, fChain, fCurrent, hit, ion, kineE, kineE0, kineE1, kineE2, kineE_org, Notify(), process, px, px0, px1, px2, py, py0, py1, py2, pz, pz0, pz1, pz2, rate, theta0, theta1, theta2, theta_org, totXS, track, type, volume, x, x0, y, y0, z, and z0.

Referenced by mollerClass().

00188 {
00189    // The Init() function is called when the selector needs to initialize
00190    // a new tree or chain. Typically here the branch addresses and branch
00191    // pointers of the tree will be set.
00192    // It is normally not necessary to make changes to the generated
00193    // code, but the routine can be extended by the user if needed.
00194    // Init() will be called many times when running on PROOF
00195    // (once per file to be processed).
00196 
00197    // Set branch addresses and branch pointers
00198    if (!tree) return;
00199    fChain = tree;
00200    fCurrent = -1;
00201    fChain->SetMakeClass(1);
00202 
00203    fChain->SetBranchAddress("ion", &ion, &b_ion);
00204    fChain->SetBranchAddress("x", &x, &b_x);
00205    fChain->SetBranchAddress("y", &y, &b_y);
00206    fChain->SetBranchAddress("z", &z, &b_z);
00207    fChain->SetBranchAddress("x0", &x0, &b_x0);
00208    fChain->SetBranchAddress("y0", &y0, &b_y0);
00209    fChain->SetBranchAddress("z0", &z0, &b_z0);
00210    fChain->SetBranchAddress("kineE", &kineE, &b_kineE);
00211    fChain->SetBranchAddress("px", &px, &b_px);
00212    fChain->SetBranchAddress("py", &py, &b_py);
00213    fChain->SetBranchAddress("pz", &pz, &b_pz);
00214    fChain->SetBranchAddress("kineE0", &kineE0, &b_kineE0);
00215    fChain->SetBranchAddress("px0", &px0, &b_px0);
00216    fChain->SetBranchAddress("py0", &py0, &b_py0);
00217    fChain->SetBranchAddress("pz0", &pz0, &b_pz0);
00218    fChain->SetBranchAddress("kineE1", &kineE1, &b_kineE1);
00219    fChain->SetBranchAddress("px1", &px1, &b_px1);
00220    fChain->SetBranchAddress("py1", &py1, &b_py1);
00221    fChain->SetBranchAddress("pz1", &pz1, &b_pz1);
00222    fChain->SetBranchAddress("kineE2", &kineE2, &b_kineE2);
00223    fChain->SetBranchAddress("px2", &px2, &b_px2);
00224    fChain->SetBranchAddress("py2", &py2, &b_py2);
00225    fChain->SetBranchAddress("pz2", &pz2, &b_pz2);
00226    fChain->SetBranchAddress("type", &type, &b_type);
00227    fChain->SetBranchAddress("volume", &volume, &b_volume);
00228    fChain->SetBranchAddress("theta0", &theta0, &b_theta0);
00229    fChain->SetBranchAddress("theta1", &theta1, &b_theta1);
00230    fChain->SetBranchAddress("theta2", &theta2, &b_theta2);
00231    fChain->SetBranchAddress("ev_num", &ev_num, &b_ev_num);
00232    fChain->SetBranchAddress("process", &process, &b_process);
00233    fChain->SetBranchAddress("event", &event, &b_event);
00234    fChain->SetBranchAddress("creator", &creator, &b_creator);
00235    fChain->SetBranchAddress("hit", &hit, &b_hit);
00236    fChain->SetBranchAddress("kineE_org", &kineE_org, &b_kineE_org);
00237    fChain->SetBranchAddress("theta_org", &theta_org, &b_theta_org);
00238    fChain->SetBranchAddress("track", &track, &b_track);
00239    fChain->SetBranchAddress("diffXS", &diffXS, &b_diffXS);
00240    fChain->SetBranchAddress("totXS", &totXS, &b_totXS);
00241    fChain->SetBranchAddress("rate", &rate, &b_rate);
00242    Notify();
00243 }

Here is the call graph for this function:

Here is the caller graph for this function:

Long64_t mollerClass::LoadTree ( Long64_t  entry  )  [virtual]

Definition at line 172 of file mollerClass.h.

References fChain, fCurrent, and Notify().

Referenced by Loop().

00173 {
00174 // Set the environment to read one entry
00175    if (!fChain) return -5;
00176    Long64_t centry = fChain->LoadTree(entry);
00177    if (centry < 0) return centry;
00178    if (!fChain->InheritsFrom(TChain::Class()))  return centry;
00179    TChain *chain = (TChain*)fChain;
00180    if (chain->GetTreeNumber() != fCurrent) {
00181       fCurrent = chain->GetTreeNumber();
00182       Notify();
00183    }
00184    return centry;
00185 }

Here is the call graph for this function:

Here is the caller graph for this function:

void mollerClass::Loop (  )  [virtual]

Definition at line 204 of file mollerClass.C.

References alpha, eventtype, fChain, GetPrivateProfileString(), inifilename, kineE, kineE0, kineE1, kineE2, kineE_org, LoadTree(), num_thrown, pi, PrintHist(), PrintHist2D(), px1, px2, py1, py2, pz1, pz2, rate, SetupHist(), totXS, track, volume, x, y, and z0.

Referenced by main().

00205 {
00206 
00207   if (fChain == 0) return;
00208 
00209   Long64_t nentries = fChain->GetEntriesFast();
00210 
00211   TCanvas canvas("canvas","canvas",640,480);
00212 
00213   Double_t pi = TMath::Pi();
00214   gROOT->SetStyle("Plain");
00215   gStyle->SetOptStat(kFALSE);
00216   gStyle->SetPalette(1,0);
00217   gStyle->SetTitleBorderSize(0);
00218   gStyle->SetCanvasBorderMode(0);
00219 
00220   Int_t num_detectors = 28;
00221   char plotname[200],outdir[200],namestem[200],plottype[10];
00222 
00223 
00224   snprintf(namestem,200,"%sdets%i_",outdir,num_detectors);
00225   GetPrivateProfileString ("General", "outdir", "output", outdir, 200, inifilename);
00226   GetPrivateProfileString ("General", "plottype", ".gif", plottype, 20, inifilename);
00227 
00228 
00229   TH1F* std_ave_asym=new TH1F("ave_asym","Average transverse asymmetry;detector number;#bar{A_{T}}   (ppm)",
00230                 num_detectors/8,0,num_detectors); 
00231   TH1F* std_total_asym=new TH1F("total_asym","Total XSec and transverse asymmetry weighted events;detector number",
00232                   num_detectors/8,0,num_detectors); 
00233   TH1F* std_total_sample=new TH1F("total_sample","Total XSec weighted events;detector number",
00234                   num_detectors/8,0,num_detectors); 
00235   std_ave_asym->Sumw2();
00236   std_total_asym->Sumw2();
00237   std_total_sample->Sumw2();
00238   std_ave_asym->SetMarkerStyle(20);
00239   std_total_asym->SetMarkerStyle(20);
00240   std_total_sample->SetMarkerStyle(20);
00241   TH1F* std_red_ave_asym=new TH1F("std_red_ave_asym","Average transverse asymmetry;detector number;#bar{A_{T}}   (ppm)",
00242                   num_detectors,0,num_detectors); 
00243   TH1F* std_red_total_asym=new TH1F("std_red_total_asym","Total (XSec and transverse asymmetry weighted) events;detector number",
00244                     num_detectors,0,num_detectors); 
00245   TH1F* std_red_total_sample=new TH1F("std_red_total_sample","Total (XSec weighted) events;detector number",
00246                     num_detectors,0,num_detectors); 
00247   std_red_ave_asym->Sumw2();
00248   std_red_total_asym->Sumw2();
00249   std_red_total_sample->Sumw2();
00250   std_red_ave_asym->SetLineColor(kRed);
00251   std_red_total_asym->SetLineColor(kRed);
00252   std_red_total_sample->SetLineColor(kRed);
00253   std_red_ave_asym->SetMarkerColor(kRed);
00254   std_red_total_asym->SetMarkerColor(kRed);
00255   std_red_total_sample->SetMarkerColor(kRed);
00256   std_red_ave_asym->SetMarkerStyle(20);
00257   std_red_total_asym->SetMarkerStyle(20);
00258   std_red_total_sample->SetMarkerStyle(20);
00259   TH1F* std_green_ave_asym=new TH1F("std_green_ave_asym","Average transverse asymmetry;detector number;#bar{A_{T}}   (ppm)",
00260                     num_detectors,0,num_detectors); 
00261   TH1F* std_green_total_asym=new TH1F("std_green_total_asym","Total (XSec and transverse asymmetry weighted) events;detector number",
00262                     num_detectors,0,num_detectors); 
00263   TH1F* std_green_total_sample=new TH1F("std_green_total_sample","Total (XSec weighted) events;detector number",
00264                       num_detectors,0,num_detectors); 
00265   std_green_ave_asym->Sumw2();
00266   std_green_total_asym->Sumw2();
00267   std_green_total_sample->Sumw2();
00268   std_green_ave_asym->SetLineColor(kGreen);
00269   std_green_total_asym->SetLineColor(kGreen);
00270   std_green_total_sample->SetLineColor(kGreen);
00271   std_green_ave_asym->SetMarkerColor(kGreen);
00272   std_green_total_asym->SetMarkerColor(kGreen);
00273   std_green_total_sample->SetMarkerColor(kGreen);
00274   std_green_ave_asym->SetMarkerStyle(20);
00275   std_green_total_asym->SetMarkerStyle(20);
00276   std_green_total_sample->SetMarkerStyle(20);
00277   TH1F* std_blue_ave_asym=new TH1F("std_blue_ave_asym","Average transverse asymmetry;detector number;#bar{A_{T}}   (ppm)",
00278                    num_detectors,0,num_detectors); 
00279   TH1F* std_blue_total_asym=new TH1F("std_blue_total_asym","Total (XSec and transverse asymmetry weighted) events;detector number",
00280                      num_detectors,0,num_detectors); 
00281   TH1F* std_blue_total_sample=new TH1F("std_blue_total_sample","Total (XSec weighted) events;detector number",
00282                      num_detectors,0,num_detectors); 
00283   std_blue_ave_asym->Sumw2();
00284   std_blue_total_asym->Sumw2();
00285   std_blue_total_sample->Sumw2();
00286   std_blue_ave_asym->SetLineColor(kBlue);
00287   std_blue_total_asym->SetLineColor(kBlue);
00288   std_blue_total_sample->SetLineColor(kBlue);
00289   std_blue_ave_asym->SetMarkerColor(kBlue);
00290   std_blue_total_asym->SetMarkerColor(kBlue);
00291   std_blue_total_sample->SetMarkerColor(kBlue);
00292   std_blue_ave_asym->SetMarkerStyle(20);
00293   std_blue_total_asym->SetMarkerStyle(20);
00294   std_blue_total_sample->SetMarkerStyle(20);
00295 
00296 
00297 
00298 
00299   TH1F* eweight_ave_asym=new TH1F("eweight_ave_asym","Average transverse asymmetry, energy weighted detectors;detector number;#bar{A_{T}}   (ppm)",
00300                   num_detectors/8,0,num_detectors); 
00301   TH1F* eweight_total_asym=new TH1F("eweight_total_asym","Total (energy, XSec and transverse asymmetry weighted) events;detector number",
00302                     num_detectors/8,0,num_detectors); 
00303   TH1F* eweight_total_sample=new TH1F("eweight_total_sample","Total (energy and XSec weighted) events;detector number",
00304                     num_detectors/8,0,num_detectors); 
00305   eweight_ave_asym->Sumw2();
00306   eweight_total_asym->Sumw2();
00307   eweight_total_sample->Sumw2();
00308   eweight_ave_asym->SetMarkerStyle(20);
00309   eweight_total_asym->SetMarkerStyle(20);
00310   eweight_total_sample->SetMarkerStyle(20);
00311   TH1F* eweight_red_ave_asym=new TH1F("eweight_red_ave_asym","Average transverse asymmetry, energy weighted detectors;detector number;#bar{A_{T}}   (ppm)",
00312                     num_detectors,0,num_detectors); 
00313   TH1F* eweight_red_total_asym=new TH1F("eweight_red_total_asym","Total (energy, XSec and transverse asymmetry weighted) events;detector number",
00314                       num_detectors,0,num_detectors); 
00315   TH1F* eweight_red_total_sample=new TH1F("eweight_red_total_sample","Total (energy and XSec weighted) events;detector number",
00316                       num_detectors,0,num_detectors); 
00317   eweight_red_ave_asym->Sumw2();
00318   eweight_red_total_asym->Sumw2();
00319   eweight_red_total_sample->Sumw2();
00320   eweight_red_ave_asym->SetLineColor(kRed);
00321   eweight_red_total_asym->SetLineColor(kRed);
00322   eweight_red_total_sample->SetLineColor(kRed);
00323   eweight_red_ave_asym->SetMarkerColor(kRed);
00324   eweight_red_total_asym->SetMarkerColor(kRed);
00325   eweight_red_total_sample->SetMarkerColor(kRed);
00326   eweight_red_ave_asym->SetMarkerStyle(20);
00327   eweight_red_total_asym->SetMarkerStyle(20);
00328   eweight_red_total_sample->SetMarkerStyle(20);
00329   TH1F* eweight_green_ave_asym=new TH1F("eweight_green_ave_asym","Average transverse asymmetry, energy weighted detectors;detector number;#bar{A_{T}}   (ppm)",
00330                       num_detectors,0,num_detectors); 
00331   TH1F* eweight_green_total_asym=new TH1F("eweight_green_total_asym","Total (energy, XSec and transverse asymmetry weighted) events;detector number",
00332                       num_detectors,0,num_detectors); 
00333   TH1F* eweight_green_total_sample=new TH1F("eweight_green_total_sample","Total (energy and XSec weighted) events;detector number",
00334                         num_detectors,0,num_detectors); 
00335   eweight_green_ave_asym->Sumw2();
00336   eweight_green_total_asym->Sumw2();
00337   eweight_green_total_sample->Sumw2();
00338   eweight_green_ave_asym->SetLineColor(kGreen);
00339   eweight_green_total_asym->SetLineColor(kGreen);
00340   eweight_green_total_sample->SetLineColor(kGreen);
00341   eweight_green_ave_asym->SetMarkerColor(kGreen);
00342   eweight_green_total_asym->SetMarkerColor(kGreen);
00343   eweight_green_total_sample->SetMarkerColor(kGreen);
00344   eweight_green_ave_asym->SetMarkerStyle(20);
00345   eweight_green_total_asym->SetMarkerStyle(20);
00346   eweight_green_total_sample->SetMarkerStyle(20);
00347   TH1F* eweight_blue_ave_asym=new TH1F("eweight_blue_ave_asym","Average transverse asymmetry, energy weighted detectors;detector number;#bar{A_{T}}   (ppm)",
00348                      num_detectors,0,num_detectors); 
00349   TH1F* eweight_blue_total_asym=new TH1F("eweight_blue_total_asym","Total (energy, XSec and transverse asymmetry weighted) events;detector number",
00350                        num_detectors,0,num_detectors); 
00351   TH1F* eweight_blue_total_sample=new TH1F("eweight_blue_total_sample","Total (energy and XSec weighted) events;detector number",
00352                        num_detectors,0,num_detectors); 
00353   eweight_blue_ave_asym->Sumw2();
00354   eweight_blue_total_asym->Sumw2();
00355   eweight_blue_total_sample->Sumw2();
00356   eweight_blue_ave_asym->SetLineColor(kBlue);
00357   eweight_blue_total_asym->SetLineColor(kBlue);
00358   eweight_blue_total_sample->SetLineColor(kBlue);
00359   eweight_blue_ave_asym->SetMarkerColor(kBlue);
00360   eweight_blue_total_asym->SetMarkerColor(kBlue);
00361   eweight_blue_total_sample->SetMarkerColor(kBlue);
00362   eweight_blue_ave_asym->SetMarkerStyle(20);
00363   eweight_blue_total_asym->SetMarkerStyle(20);
00364   eweight_blue_total_sample->SetMarkerStyle(20);
00365 
00366 
00367   TH1F* rate_total=new TH1F("rate_total","Total rate for 85  #muA;detector number;rate   [Hz]",num_detectors,0,num_detectors);
00368   TH1F* num_events=new TH1F("num_events","Number of Moller e^{-}  in 1 hour at 85  #muA;detector number",num_detectors,0,num_detectors);
00369   TH1F* error=new TH1F("error","Uncertainty in 1 hour at 85  #muA;detector number;#Delta A_{T}   (ppm)",num_detectors,0,num_detectors);
00370 
00371   rate_total->SetMarkerStyle(20);
00372   num_events->SetMarkerStyle(20);
00373   error->SetMarkerStyle(20);
00374   rate_total->Sumw2();
00375   num_events->Sumw2();
00376   error->Sumw2();
00377   //  std_total_asym->SetMarkerStyle(20);
00378   //  std_total_sample->SetMarkerStyle(20);
00379 
00380 
00381 
00382   TH2F* test=new TH2F("test","test",num_detectors*2,-pi,pi,num_detectors*2,0,num_detectors);
00383   TH2F* paperfig=new TH2F("paperfig","A_{T}/sin#phi for E_{vert}=11 GeV;cos#theta_{c.m.};A_{T}/sin#phi   (ppm)",
00384               400,-1,1,400,-15,15);
00385   TH3F* paperfig2=new TH3F("paperfig2","A_{T};cos#theta_{c.m.};#phi_{c.m.};A_{T}   (ppm)",
00386                200,-1,1,200,-pi,pi,200,-15,15);
00387   TH2F* distro_red=new TH2F("distro_red","Distribution of red events;cos#theta_{c.m.};#phi_{c.m.}",
00388                 400,-1,1,400,-pi,pi);
00389   distro_red->SetMarkerColor(kRed);
00390   TH2F* distro_green=new TH2F("distro_green","Distribution of green events;cos#theta_{c.m.};#phi_{c.m.}",
00391                 400,-1,1,400,-pi,pi);
00392   distro_green->SetMarkerColor(kGreen);
00393   TH2F* distro_blue=new TH2F("distro_blue","Distribution of blue events;cos#theta_{c.m.};#phi_{c.m.}",
00394                  400,-1,1,400,-pi,pi);
00395   distro_blue->SetMarkerColor(kBlue);
00396 
00397 
00398   TH2F* distro_rphi=new TH2F("distro_rphi",";r   (m);#phi_{c.m.}", 400,0,1.3,400,-pi,pi);
00399   TH2F* distro_r_edet=new TH2F("distro_r_edet",";r   (m);E_{det}   (MeV)", 400,0,1.3,400,0,11000);
00400   TH2F* distro_r_evert=new TH2F("distro_r_evert",";r   (m);E_{vert}   (MeV)", 400,0,1.3,400,0,11000);
00401   TH1F* distro_r;
00402   if (eventtype==0) {
00403     distro_r=new TH1F("moller_distro_r",";r   (m);rate   (GHz)", 260,0,1.3);
00404   } else {
00405     if (eventtype==1) {
00406       distro_r=new TH1F("mott_distro_r",";r   (m);rate   (GHz)", 260,0,1.3);
00407     } else {
00408       if (eventtype==2) {
00409         distro_r=new TH1F("epinel_distro_r",";r   (m);rate   (GHz)", 260,0,1.3);
00410       }
00411     }
00412   }
00413 
00414 
00415 
00416   // **** Each quantity gets 5 histograms, within the r cut the three detectors [0],[1],[2] their sum [3] and 
00417   // **** outside the the r cut [4].
00418   Int_t numhistos = 5;
00419   TH1F *theta_cm[numhistos], *Eprime_vert_hist[numhistos], *Eprime_det_hist[numhistos], *theta_lab_hist[numhistos];
00420   TH1F *phi_wrap_hist[numhistos], *Q2_hist[numhistos], *W2_hist[numhistos], *W_hist[numhistos], *asym_hist[numhistos], *depol_hist[numhistos], *asymd_hist[numhistos], *asymEep_hist[numhistos],*asymIep_hist[numhistos],*z0_hist[numhistos];
00421   TH1F *Q2_eweight_hist[numhistos], *W2_Q2weight_hist[numhistos];
00422   TH1F *r_hist[numhistos], *r_asymtot[numhistos], *r_asymave[numhistos], *r_eweight[numhistos];
00423   TH2F *r_phi_hist[numhistos],*r_asym_hist[numhistos];
00424   char name[200];
00425   for (Int_t i=0; i<numhistos; i++) {
00426     // **** Setup the 1D histograms
00427     snprintf(name,200,"theta_cm_%i_%i",eventtype,i);
00428     theta_cm[i]=new TH1F(name,";#theta_{c.m.};rate   (GHz)/deg", 180,0,180);
00429     SetupHist(theta_cm[i],i);
00430     snprintf(name,200,"Eprime_vert_%i_%i",eventtype,i);
00431     Eprime_vert_hist[i]=new TH1F(name,";E'_{vert}   (GeV);rate   (GHz)/100MeV",110,0,11);
00432     SetupHist(Eprime_vert_hist[i],i);
00433     snprintf(name,200,"Eprime_det_%i_%i",eventtype,i);
00434     Eprime_det_hist[i]=new TH1F(name,";E'_{det}   (GeV);rate   (GHz)/100MeV",110,0,11);
00435     SetupHist(Eprime_det_hist[i],i);
00436     snprintf(name,200,"theta_lab_%i_%i",eventtype,i);
00437     theta_lab_hist[i]=new TH1F(name,";#theta_{lab}   (millirad);rate   (GHz)/0.3mrad", 100, 0,30);
00438     SetupHist(theta_lab_hist[i],i);
00439     snprintf(name,200,"phi_wrap_%i_%i",eventtype,i);
00440     phi_wrap_hist[i]=new TH1F(name,";#phi_{wrap};rate   (GHz)/0.402deg", 128,-25.7142857142857153,25.7142857142857153);
00441     SetupHist(phi_wrap_hist[i],i);
00442     snprintf(name,200,"Q2_%i_%i",eventtype,i);
00443     Q2_hist[i]=new TH1F(name,";Q^{2}   (GeV/c)^{2};rate   (GHz)/80(MeV/c)^{2}",200,0,0.016);
00444     SetupHist(Q2_hist[i],i);
00445     snprintf(name,200,"Q2_eweight_%i_%i",eventtype,i);
00446     Q2_eweight_hist[i]=new TH1F(name,";Q^{2}   (GeV/c)^{2};Energy weighted rate   (MeV*GHz)/80(MeV/c)^{2}",200,0,0.016);
00447     SetupHist(Q2_eweight_hist[i],i);
00448     snprintf(name,200,"W2_Q2weight_%i_%i",eventtype,i);
00449     W2_Q2weight_hist[i]=new TH1F(name,";W^{2}   (GeV^{2});Q^{2} weighted rate   ((GeV/c)^{2} *GHz)/0.1GeV^{2}",200,0,20);//0.880352,0.880357);
00450     SetupHist(W2_Q2weight_hist[i],i);
00451     snprintf(name,200,"W2_%i_%i",eventtype,i);
00452     W2_hist[i]=new TH1F(name,";W^{2}   (GeV^{2});rate   (GHz)/0.1GeV^{2}",200,0,20);//,0.880352,0.880357);
00453     SetupHist(W2_hist[i],i);
00454     snprintf(name,200,"W_%i_%i",eventtype,i);
00455     W_hist[i]=new TH1F(name,";W   (GeV);rate   (GHz)/30MeV",200,0,6);
00456     SetupHist(W_hist[i],i);
00457     snprintf(name,200,"asym_hist_%i_%i",eventtype,i);
00458     asym_hist[i]=new TH1F(name,";A_{PV}   (ppb);rate   (GHz)/0.2ppb",300,0,60);
00459     SetupHist(asym_hist[i],i);
00460     snprintf(name,200,"depol_hist_%i_%i",eventtype,i);
00461     depol_hist[i]=new TH1F(name,";Depolarization Factor  ;rate   (GHz)/1%",125,0,1.25);
00462     SetupHist(depol_hist[i],i);
00463     snprintf(name,200,"asymd_hist_%i_%i",eventtype,i);
00464     if(eventtype==0) asymd_hist[i]=new TH1F(name,";A_{PV}   (ppb);rate   (GHz)/0.2ppb",300,0,60);
00465     else if(eventtype==1) asymd_hist[i]=new TH1F(name,";A_{PV}   (ppb);rate   (GHz)/3ppb",200,0,600);
00466     else if(eventtype==2) asymd_hist[i]=new TH1F(name,";A_{PV}   (ppb);rate   (GHz)/5ppb",400,0,2000);
00467     SetupHist(asymd_hist[i],i);
00468 
00469     snprintf(name,200,"asymEep_hist_%i_%i",eventtype,i);
00470     asymEep_hist[i]=new TH1F(name,";A_{PV}   (ppb);rate   (GHz)/3ppb",200,0,600);
00471     SetupHist(asymEep_hist[i],i);
00472     snprintf(name,200,"asymIep_hist_%i_%i",eventtype,i);
00473     asymIep_hist[i]=new TH1F(name,";A_{PV}   (ppb);rate   (GHz)/5ppb",400,0,2000);
00474     SetupHist(asymIep_hist[i],i);
00475 
00476     snprintf(name,200,"z0_hist_%i_%i",eventtype,i);
00477     z0_hist[i]=new TH1F(name,";Target z   (mm);rate   (GHz)/cm",160,-800,800);
00478     SetupHist(z0_hist[i],i);
00479     // **** 1D histogrms for averages
00480     snprintf(name,200,"r_%i_%i",eventtype,i);
00481     r_hist[i]=new TH1F(name,";r   (m);rate   (GHz)/5mm",140,0.6,1.3);
00482     SetupHist(r_hist[i],i);
00483     snprintf(name,200,"r_eweight_%i_%i",eventtype,i);
00484     r_eweight[i]=new TH1F(name,";r   (m);Energy weighted rate   (MeV*GHz)/5mm",140,0.6,1.3);
00485     SetupHist(r_eweight[i],i);
00486     snprintf(name,200,"r_asymtot_%i_%i",eventtype,i);
00487     r_asymtot[i]=new TH1F(name,";r   (m);Asymmetry weighted rate (ppb*GHz)/5mm",140,0.6,1.3);
00488     SetupHist(r_asymtot[i],i);
00489     snprintf(name,200,"r_asymave_%i_%i",eventtype,i);
00490     r_asymave[i]=new TH1F(name,";r   (m);#bar{A_{PV}}   (ppb)/5mm",140,0.6,1.3);
00491     SetupHist(r_asymave[i],i);
00492     // **** Setup the 2D histograms
00493     snprintf(name,200,"r_phi_%i_%i",eventtype,i);
00494     r_phi_hist[i]=new TH2F(name,";#phi   (degrees);r   (m)",224,0,360,210,0.6,1.3);
00495     snprintf(name,200,"r_asym_%i_%i",eventtype,i);
00496     r_asym_hist[i]=new TH2F(name,";asym;r   (m)",42,0,42,70,0.6,1.3);
00497   }
00498 
00499   Long_t totalevents=0, numevcut_rcut=0, numevcut_thetacut=0, numevcut_volumecut=0,numevcut_kinecut=0,numevallpass=0;
00500 
00501   // *****  Here begins the loop
00502 
00503   Long64_t nbytes = 0, nb = 0;
00504   for (Long64_t jentry=0; jentry<nentries;jentry++) {
00505     Long64_t ientry = LoadTree(jentry);
00506     if (ientry < 0) break;
00507     nb = fChain->GetEntry(jentry);   nbytes += nb;
00508     // if (Cut(ientry) < 0) continue;
00509 
00510     totalevents++;
00511 
00512     Double_t r = sqrt(x*x+y*y);
00513 //    Double_t phi_wrap  = TMath::ATan2(y,x)-pi/3.5*(TMath::Floor((TMath::ATan2(y,x)+pi/7)/(pi/3.5)));
00514     Double_t phi_wrap  = (TMath::ATan2(y,x)-pi)-pi/3.5*(TMath::Floor((TMath::ATan2(y,x)+pi/7-pi)/(pi/3.5)));
00515     //    Double_t phi_org_wrap = TMath::ATan2(y0,x0)-pi/3.5*(TMath::Floor((TMath::ATan2(y0,x0)+pi/7)/(pi/3.5)));
00516     Double_t theta_lab;
00517     if (eventtype!=2) {
00518       if(kineE2==kineE_org&&kineE1==kineE_org) {
00519         theta_lab = acos(pz2/sqrt(px2*px2+py2*py2+pz2*pz2)) + acos(pz1/sqrt(px1*px1+py1*py1+pz1*pz1));  
00520       }else if(kineE2==kineE_org&&kineE1!=kineE_org) {
00521         theta_lab = acos(pz2/sqrt(px2*px2+py2*py2+pz2*pz2));
00522       }else if(kineE2!=kineE_org&&kineE1==kineE_org) {
00523         theta_lab = acos(pz1/sqrt(px1*px1+py1*py1+pz1*pz1));  
00524       }else {
00525         theta_lab = 0;
00526       }
00527     } else {
00528       theta_lab = acos(pz1/sqrt(px1*px1+py1*py1+pz1*pz1));
00529     }
00530 //    if (eventtype!=2) {
00531 //      theta_lab = (kineE2==kineE_org)*acos(pz2/sqrt(px2*px2+py2*py2+pz2*pz2)) +
00532 //        (kineE1==kineE_org)*acos(pz1/sqrt(px1*px1+py1*py1+pz1*pz1));  
00533 //      // only if (kineE2==kineE_org) does px2 represent the detected particle
00534 //    } else {
00535 //      theta_lab = acos(pz1/sqrt(px1*px1+py1*py1+pz1*pz1));
00536 //    }
00537 
00538     Double_t Q2_org = 4*kineE0/1000*(kineE_org/1000)*sin(theta_lab/2)*sin(theta_lab/2);
00539     Double_t mp=0.938272;
00540     Double_t nu=(kineE0-kineE_org)/1000;
00541     Double_t W_org = sqrt(-Q2_org + mp*mp + 2*mp*nu);
00542     Double_t y_org = 1-kineE_org/kineE0;
00543     Double_t asymMol_org = 10e8*0.0000116639/sqrt(2)/3.14159/0.0072973*(1-4*0.2388)*Q2_org*(1-y_org)/(1+pow(y_org,4)+pow((1-y_org),4)); 
00544     //10e8 to give ppb
00545     Double_t Din = 1.0 - (2./3.)*(11000. - kineE0)*(11000. - kineE0)/(kineE0*kineE0+11000.*11000. - (2./3.)*kineE0*11000.);
00546 
00547     Double_t asymEep_org = 1E9*0.0000116639/sqrt(2)/3.14159/0.0072973*(0.072/2.0)*Q2_org;
00548     Double_t asymIep_org = 1E9*(0.8E-4)*Q2_org;
00549 
00550 //Set proper Asymetry for the generator eventtype
00551     Double_t asym_org;
00552     if(eventtype==0) asym_org = asymMol_org;
00553     else if(eventtype==1) asym_org = asymEep_org;
00554     else if(eventtype==2) asym_org = asymIep_org;
00555 
00556     Double_t asymd_org = Din*asym_org; //depolarization effect
00557 
00558     Double_t ecm = sqrt(2*0.000511*0.000511+2.*0.000511*kineE0/1000);
00559     Double_t gammap = kineE0/1000/ecm;
00560     Double_t betap = 1/gammap*sqrt(gammap*gammap-1);
00561     Double_t e1cm = gammap*0.000511;
00562     Double_t pcm2_org = (kineE_org/1000-gammap*e1cm)/gammap/betap;
00563     Double_t costheta_cms_org = pcm2_org/e1cm;
00564 
00565     Double_t theta_cms_org = acos(pcm2_org/e1cm);
00566     Double_t phi_org =  (kineE2==kineE_org)*TMath::ATan2(py2,px2)+(kineE1==kineE_org)*TMath::ATan2(py1,px1);
00567     Double_t phi_det = TMath::ATan2(y,x);
00568     Double_t phi_det_deg = (phi_det+TMath::Pi())*180/TMath::Pi();
00569     Double_t m_e = 0.000511;
00570     Double_t E_vert = kineE0/1000;
00571 
00572     Double_t s = 2*m_e*E_vert;
00573     Double_t t = -s/2*(1-costheta_cms_org);
00574     Double_t u = -s/2*(1+costheta_cms_org);
00575     Double_t alpha = 1/137.;
00576     Double_t dsigma_born = alpha*alpha/2/s*((t*t+t*u+u*u)/t/u)*((t*t+t*u+u*u)/t/u);
00577     Double_t bracket_term = 3*s*(t*(u-s)*TMath::Log(-t/s)-u*(t-s)*TMath::Log(-u/s))-2*(t-u)*t*u;
00578     Double_t proton_term = -alpha*alpha*alpha/8*m_e/sqrt(s)*sin(theta_cms_org)*sin(phi_org)/t/t/u/u;
00579     Double_t dsigma_phi = proton_term*bracket_term;
00580     Double_t asym_trans = dsigma_phi/dsigma_born*1000000;
00581 
00582 
00583     Double_t rate_GHz = 85*rate/(num_thrown)/1000000000;
00584     //    Double_t pi = TMath::Pi();
00585 
00586         //This may need to be changed depending on the field map:
00587     //Bool_t rcut = (r>880 && r<1000);// for proposal maps
00588     //Bool_t rcut = (r>900 && r<1100);// for default TOSCA 
00589     //Bool_t rcut = (r>700 && r<740);// 
00590     //Bool_t rcut = (r>740 && r<820);// 
00591     //Bool_t rcut = (r>820 && r<860);// 
00592     //Bool_t rcut = (r>860 && r<900);// 
00593     //Bool_t rcut = (r>900 && r<1060);// 
00594     //Bool_t rcut = (r>1060 && r<1160);// 
00595     Bool_t rcut = (r>0 && r<10000);// 
00596 
00597     //Bool_t thetacut = (theta_lab>0.0095);
00598     Bool_t thetacut = (theta_lab>0.004);
00599     Bool_t volumecut;
00600     if (eventtype==0) {
00601       volumecut = volume==0;
00602     } else {
00603       volumecut = ((volume==0)&&(track==1));
00604     }
00605 //    Bool_t volumecut = volume==1;
00606     Bool_t kinecut = kineE_org>0;
00607 
00608     if (! rcut) numevcut_rcut++;
00609     if (! thetacut) numevcut_thetacut++;
00610     if (! volumecut) numevcut_volumecut++;
00611     if (! kinecut) numevcut_kinecut++;
00612 
00613     Bool_t maincut = volumecut && kinecut && thetacut;
00614     if (maincut && !thetacut) {
00615       printf("theta_lab=%f  kineE2=%f, kineE1=%f, kineE_org=%f   px1=%f, py1=%f, pz1=%f,  px2=%f, py2=%f, pz2=%f\n",
00616            theta_lab, kineE2, kineE1, kineE_org, px1, py1, pz1, px2, py2, pz2);
00617     }
00618 
00619     if (eventtype==2) {
00620       maincut = maincut && kineE2==0;
00621     }
00622     if (maincut) { // This is for stuff that may not make into the detectors
00623 
00624       distro_r->Fill(r/1000,rate_GHz);
00625       distro_rphi->Fill(r/1000,phi_org,rate_GHz);
00626       distro_r_evert->Fill(r/1000,kineE_org,rate_GHz);
00627       distro_r_edet->Fill(r/1000,kineE,rate_GHz);
00628       theta_cm[4]->Fill(acos(costheta_cms_org)*180/TMath::Pi(),rate_GHz);
00629       Eprime_vert_hist[4]->Fill(kineE_org/1000,rate_GHz);
00630       Eprime_det_hist[4]->Fill(kineE/1000,rate_GHz);
00631       theta_lab_hist[4]->Fill(theta_lab*1000,rate_GHz);
00632       phi_wrap_hist[4]->Fill(phi_wrap*180/TMath::Pi(),rate_GHz);
00633       Q2_hist[4]->Fill(Q2_org,rate_GHz);
00634       Q2_eweight_hist[4]->Fill(Q2_org,kineE*rate_GHz);
00635       W2_Q2weight_hist[4]->Fill(W_org*W_org,Q2_org*rate_GHz);
00636       W2_hist[4]->Fill(W_org*W_org,rate_GHz);
00637       W_hist[4]->Fill(W_org,rate_GHz);
00638       r_hist[4]->Fill(r/1000,rate_GHz);
00639       r_eweight[4]->Fill(r/1000,kineE*rate_GHz);
00640       r_asymtot[4]->Fill(r/1000,rate_GHz*asym_org);
00641       asym_hist[4]->Fill(asym_org,rate_GHz);
00642       depol_hist[4]->Fill(Din,rate_GHz);
00643       asymd_hist[4]->Fill(asymd_org,rate_GHz);
00644       asymEep_hist[4]->Fill(asymEep_org,rate_GHz);
00645       asymIep_hist[4]->Fill(asymIep_org,rate_GHz);
00646       z0_hist[4]->Fill(z0,rate_GHz);
00647 
00648       if (!(rcut)) {
00649         r_phi_hist[3]->Fill(phi_det_deg,r/1000,rate_GHz);
00650         r_asym_hist[3]->Fill(asym_org,r/1000,rate_GHz);
00651       }
00652       r_phi_hist[4]->Fill(phi_det_deg,r/1000,rate_GHz);
00653       r_asym_hist[4]->Fill(asym_org,r/1000,rate_GHz);
00654     }
00655     if (rcut and maincut) {
00656       numevallpass++;
00657       //if (1) printf("|");
00658       Double_t fillval;
00659       //fillval=num_detectors*((phi_det+pi)/(2.*pi));
00660       fillval=num_detectors*((phi_det+pi)/(2.*pi)-(1./56.));
00661       if (fillval<0) {
00662         //printf("%f  %f\n",fillval,fillval + num_detectors);
00663         fillval = fillval + num_detectors;
00664       }
00665       std_total_asym->Fill(fillval,asym_trans*totXS);
00666       std_total_sample->Fill(fillval,totXS);
00667       eweight_total_asym->Fill(fillval,kineE*asym_trans*totXS);
00668       eweight_total_sample->Fill(fillval,kineE*totXS);
00669       rate_total->Fill(fillval,85*rate/(num_thrown));
00670       
00671       num_events->Fill(fillval,60*60*85*rate/(num_thrown));
00672 
00673 
00674       if (TMath::Abs(phi_wrap)<pi/28.) {
00675         r_phi_hist[0]->Fill(phi_det_deg,r/1000,rate_GHz);
00676         r_asym_hist[0]->Fill(asym_org,r/1000,rate_GHz);
00677         //r_phi_hist[0]->Fill(r/1000,phi_det_deg);
00678       } else {
00679         if (TMath::Abs(phi_wrap)>pi/28.&&TMath::Abs(phi_wrap)<3*pi/28.) {
00680           r_phi_hist[1]->Fill(phi_det_deg,r/1000,rate_GHz);
00681           r_asym_hist[1]->Fill(asym_org,r/1000,rate_GHz);
00682           //r_phi_hist[1]->Fill(r/1000,phi_det_deg);
00683         } else {
00684           if (TMath::Abs(phi_wrap)>3*pi/28.) {
00685             //r_phi_hist[2]->Fill(r/1000,phi_det_deg);
00686             r_phi_hist[2]->Fill(phi_det_deg,r/1000,rate_GHz);
00687             r_asym_hist[2]->Fill(asym_org,r/1000,rate_GHz);
00688           }
00689         }
00690       }
00691       
00692       //if (Q2_org<0 || Q2_org>
00693       theta_cm[3]->Fill(acos(costheta_cms_org)*180/TMath::Pi(),rate_GHz);
00694       Eprime_vert_hist[3]->Fill(kineE_org/1000,rate_GHz);
00695       Eprime_det_hist[3]->Fill(kineE/1000,rate_GHz);
00696       theta_lab_hist[3]->Fill(theta_lab*1000,rate_GHz);
00697       phi_wrap_hist[3]->Fill(phi_wrap*180/TMath::Pi(),rate_GHz);
00698       Q2_hist[3]->Fill(Q2_org,rate_GHz);
00699       Q2_eweight_hist[3]->Fill(Q2_org,kineE*rate_GHz);
00700       W2_Q2weight_hist[3]->Fill(W_org*W_org,Q2_org*rate_GHz);
00701       W2_hist[3]->Fill(W_org*W_org,rate_GHz);
00702       W_hist[3]->Fill(W_org,rate_GHz);
00703       r_hist[3]->Fill(r/1000,rate_GHz);
00704       r_eweight[3]->Fill(r/1000,kineE*rate_GHz);
00705       r_asymtot[3]->Fill(r/1000,rate_GHz*asym_org);
00706       asym_hist[3]->Fill(asym_org,rate_GHz);
00707       depol_hist[3]->Fill(Din,rate_GHz);
00708       asymd_hist[3]->Fill(asymd_org,rate_GHz);
00709       asymEep_hist[3]->Fill(asymEep_org,rate_GHz);
00710       asymIep_hist[3]->Fill(asymIep_org,rate_GHz);
00711       z0_hist[3]->Fill(z0,rate_GHz);
00712       if (TMath::Abs(phi_wrap)<pi/28.) {
00713         eweight_red_total_asym->Fill(fillval,kineE*asym_trans*totXS);
00714         eweight_red_total_sample->Fill(fillval,kineE*totXS);
00715         std_red_total_asym->Fill(fillval,asym_trans*totXS);
00716         std_red_total_sample->Fill(fillval,totXS);
00717         distro_red->Fill(costheta_cms_org,phi_org, rate_GHz);
00718         theta_cm[0]->Fill(acos(costheta_cms_org)*180/TMath::Pi(),rate_GHz);
00719         Eprime_vert_hist[0]->Fill(kineE_org/1000,rate_GHz);
00720         Eprime_det_hist[0]->Fill(kineE/1000,rate_GHz);
00721         theta_lab_hist[0]->Fill(theta_lab*1000,rate_GHz);
00722         phi_wrap_hist[0]->Fill(phi_wrap*180/TMath::Pi(),rate_GHz);
00723         Q2_hist[0]->Fill(Q2_org,rate_GHz);
00724         Q2_eweight_hist[0]->Fill(Q2_org,kineE*rate_GHz);
00725         W2_Q2weight_hist[0]->Fill(W_org*W_org,Q2_org*rate_GHz);
00726         W2_hist[0]->Fill(W_org*W_org,rate_GHz);
00727         W_hist[0]->Fill(W_org,rate_GHz);
00728         r_hist[0]->Fill(r/1000,rate_GHz);
00729         r_eweight[0]->Fill(r/1000,kineE*rate_GHz);
00730         r_asymtot[0]->Fill(r/1000,rate_GHz*asym_org);
00731         asym_hist[0]->Fill(asym_org,rate_GHz);
00732         depol_hist[0]->Fill(Din,rate_GHz);
00733         asymd_hist[0]->Fill(asymd_org,rate_GHz);
00734         asymEep_hist[0]->Fill(asymEep_org,rate_GHz);
00735         asymIep_hist[0]->Fill(asymIep_org,rate_GHz);
00736         z0_hist[0]->Fill(z0,rate_GHz);
00737       } else {
00738         if (TMath::Abs(phi_wrap)>pi/28.&&TMath::Abs(phi_wrap)<3*pi/28.) {
00739           eweight_green_total_asym->Fill(fillval,kineE*asym_trans*totXS);
00740           eweight_green_total_sample->Fill(fillval,kineE*totXS);
00741           std_green_total_asym->Fill(fillval,asym_trans*totXS);
00742           std_green_total_sample->Fill(fillval,totXS);
00743           distro_green->Fill(costheta_cms_org,phi_org);
00744           theta_cm[1]->Fill(acos(costheta_cms_org)*180/TMath::Pi(),rate_GHz);
00745           Eprime_vert_hist[1]->Fill(kineE_org/1000,rate_GHz);
00746           Eprime_det_hist[1]->Fill(kineE/1000,rate_GHz);
00747           theta_lab_hist[1]->Fill(theta_lab*1000,rate_GHz);
00748           phi_wrap_hist[1]->Fill(phi_wrap*180/TMath::Pi(),rate_GHz);
00749           Q2_hist[1]->Fill(Q2_org,rate_GHz);
00750           Q2_eweight_hist[1]->Fill(Q2_org,kineE*rate_GHz);
00751           W2_Q2weight_hist[1]->Fill(W_org*W_org,Q2_org*rate_GHz);
00752           W2_hist[1]->Fill(W_org*W_org,rate_GHz);
00753           W_hist[1]->Fill(W_org,rate_GHz);
00754           r_hist[1]->Fill(r/1000,rate_GHz);
00755           r_eweight[1]->Fill(r/1000,kineE*rate_GHz);
00756           asym_hist[1]->Fill(asym_org,rate_GHz);
00757           depol_hist[1]->Fill(Din,rate_GHz);
00758           asymd_hist[1]->Fill(asymd_org,rate_GHz);
00759           asymEep_hist[1]->Fill(asymEep_org,rate_GHz);
00760           asymIep_hist[1]->Fill(asymIep_org,rate_GHz);
00761           r_asymtot[1]->Fill(r/1000,rate_GHz*asym_org);
00762           z0_hist[1]->Fill(z0,rate_GHz);
00763         } else {
00764           if (TMath::Abs(phi_wrap)>3*pi/28.) {
00765             eweight_blue_total_asym->Fill(fillval,kineE*asym_trans*totXS);
00766             eweight_blue_total_sample->Fill(fillval,kineE*totXS);
00767             std_blue_total_asym->Fill(fillval,asym_trans*totXS);
00768             std_blue_total_sample->Fill(fillval,totXS);
00769             distro_blue->Fill(costheta_cms_org,phi_org, rate_GHz);
00770             theta_cm[2]->Fill(acos(costheta_cms_org)*180/TMath::Pi(),rate_GHz);
00771             Eprime_vert_hist[2]->Fill(kineE_org/1000,rate_GHz);
00772             Eprime_det_hist[2]->Fill(kineE/1000,rate_GHz);
00773             theta_lab_hist[2]->Fill(theta_lab*1000,rate_GHz);
00774             phi_wrap_hist[2]->Fill(phi_wrap*180/TMath::Pi(),rate_GHz);
00775             Q2_hist[2]->Fill(Q2_org,rate_GHz);
00776             Q2_eweight_hist[2]->Fill(Q2_org,kineE*rate_GHz);
00777             W2_Q2weight_hist[2]->Fill(W_org*W_org,Q2_org*rate_GHz);
00778             W2_hist[2]->Fill(W_org*W_org,rate_GHz);
00779             W_hist[2]->Fill(W_org,rate_GHz);
00780             r_hist[2]->Fill(r/1000,rate_GHz);
00781             r_eweight[2]->Fill(r/1000,kineE*rate_GHz);
00782             r_asymtot[2]->Fill(r/1000,rate_GHz*asym_org);
00783             asym_hist[2]->Fill(asym_org,rate_GHz);
00784             depol_hist[2]->Fill(Din,rate_GHz);
00785             asymd_hist[2]->Fill(asymd_org,rate_GHz);
00786             asymEep_hist[2]->Fill(asymEep_org,rate_GHz);
00787             asymIep_hist[2]->Fill(asymIep_org,rate_GHz);
00788             z0_hist[2]->Fill(z0,rate_GHz);
00789           }
00790         }
00791       }
00792       test->Fill(phi_det,fillval);
00793       if (kineE0>10999.999) {
00794         paperfig->Fill(costheta_cms_org,asym_trans/sin(phi_org));
00795         paperfig2->Fill(costheta_cms_org,phi_org,asym_trans);
00796       }
00797     }
00798     
00799   }
00800 
00801   if (0) {
00802     rate_total->Draw();
00803     snprintf(plotname,200,"%sratetotal.gif",namestem);
00804     canvas.Print(plotname);
00805     num_events->Draw();
00806     snprintf(plotname,200,"%snumevents.gif",namestem);
00807     canvas.Print(plotname);
00808 
00809     std_red_ave_asym->Divide(std_red_total_asym,std_red_total_sample);
00810     std_green_ave_asym->Divide(std_green_total_asym,std_green_total_sample);
00811     std_blue_ave_asym->Divide(std_blue_total_asym,std_blue_total_sample);
00812     eweight_red_ave_asym->Divide(eweight_red_total_asym,eweight_red_total_sample);
00813     eweight_green_ave_asym->Divide(eweight_green_total_asym,eweight_green_total_sample);
00814     eweight_blue_ave_asym->Divide(eweight_blue_total_asym,eweight_blue_total_sample);
00815     Double_t errorfactor;
00816     // Set error bars expected for 1 hour of running at 85 uA
00817     for (Int_t i = 1; i<=num_detectors; i++) {
00818       errorfactor = 1000000/sqrt(num_events->GetBinContent(i));
00819       error->SetBinContent(i,errorfactor);
00820       if (std_red_ave_asym->GetBinContent(i)!=0) std_red_ave_asym->SetBinError(i,errorfactor);
00821       if (std_green_ave_asym->GetBinContent(i)!=0) std_green_ave_asym->SetBinError(i,errorfactor);
00822       if (std_blue_ave_asym->GetBinContent(i)!=0) std_blue_ave_asym->SetBinError(i,errorfactor);
00823       if (eweight_red_ave_asym->GetBinContent(i)!=0) eweight_red_ave_asym->SetBinError(i,errorfactor);
00824       if (eweight_green_ave_asym->GetBinContent(i)!=0) eweight_green_ave_asym->SetBinError(i,errorfactor);
00825       if (eweight_blue_ave_asym->GetBinContent(i)!=0) eweight_blue_ave_asym->SetBinError(i,errorfactor);
00826     }
00827     error->Draw();
00828     snprintf(plotname,200,"%serror.gif",namestem);
00829     canvas.Print(plotname);
00830 
00831     TF1 *fa1 = new TF1("fa1","1.5*sin(2*TMath::Pi()*(x+0.5)/28.)",0,28);
00832     fa1->SetLineWidth(2);
00833     snprintf(plotname,200,"%sstd_color_dettotal.gif",namestem);
00834     std_red_total_asym->Draw();
00835     std_green_total_asym->Draw("same");
00836     std_blue_total_asym->Draw("same");
00837     canvas.Print(plotname);
00838     snprintf(plotname,200,"%sstd_color_detsample.gif",namestem);
00839     std_red_total_sample->Draw();
00840     std_green_total_sample->Draw("same");
00841     std_blue_total_sample->Draw("same");
00842     canvas.Print(plotname);
00843     snprintf(plotname,200,"%sstd_color_detave.gif",namestem);
00844     std_blue_ave_asym->Draw();
00845     std_red_ave_asym->Draw("same");
00846     std_green_ave_asym->Draw("same");
00847     fa1->Draw("same");
00848     std_ave_asym->Divide(std_total_asym,std_total_sample);
00849     //  std_ave_asym->Draw("same");
00850     canvas.Print(plotname);
00851 
00852 
00853 
00854     TF1 *fa2 = new TF1("fa2","-2*sin(2*TMath::Pi()*(x+0.5)/28.)",0,28);
00855     fa2->SetLineWidth(2);
00856 
00857     snprintf(plotname,200,"%seweight_color_dettotal.gif",namestem);
00858     eweight_red_total_asym->Draw();
00859     eweight_green_total_asym->Draw("same");
00860     eweight_blue_total_asym->Draw("same");
00861     canvas.Print(plotname);
00862     snprintf(plotname,200,"%seweight_color_detsample.gif",namestem);
00863     eweight_red_total_sample->Draw();
00864     eweight_green_total_sample->Draw("same");
00865     eweight_blue_total_sample->Draw("same");
00866     canvas.Print(plotname);
00867     snprintf(plotname,200,"%seweight_color_detave.gif",namestem);
00868     eweight_blue_ave_asym->Draw();
00869     eweight_red_ave_asym->Draw("same");
00870     eweight_green_ave_asym->Draw("same");
00871     eweight_ave_asym->Divide(eweight_total_asym,eweight_total_sample);
00872     //  eweight_ave_asym->Draw("same");
00873     fa2->Draw("same");
00874     canvas.Print(plotname);
00875 
00876 
00877     test->Draw("colz");
00878     snprintf(plotname,200,"%stest.gif",namestem);
00879     canvas.Print(plotname);
00880   }
00881 
00882   // *** Draw the 1D histograms
00883   snprintf(plotname,200,"%stheta_cm%s",outdir,plottype);
00884   PrintHist(theta_cm,plotname,4,0);
00885   snprintf(plotname,200,"%sEprime_vert%s",outdir,plottype);
00886   PrintHist(Eprime_vert_hist,plotname,4,0);
00887   snprintf(plotname,200,"%sEprime_det%s",outdir,plottype);
00888   PrintHist(Eprime_det_hist,plotname,4,0);
00889   snprintf(plotname,200,"%stheta_lab%s",outdir,plottype);
00890   PrintHist(theta_lab_hist,plotname,4,0);
00891   snprintf(plotname,200,"%sphi_wrap%s",outdir,plottype);
00892   PrintHist(phi_wrap_hist,plotname);
00893   snprintf(plotname,200,"%sQ2%s",outdir,plottype);
00894   PrintHist(Q2_hist,plotname,4,0);
00895   snprintf(plotname,200,"%sQ2_eweight%s",outdir,plottype);
00896   PrintHist(Q2_eweight_hist,plotname,4,0);
00897   snprintf(plotname,200,"%sW2_Q2weight%s",outdir,plottype);
00898   PrintHist(W2_Q2weight_hist,plotname,4,0);
00899   snprintf(plotname,200,"%sW2%s",outdir,plottype);
00900   PrintHist(W2_hist,plotname,4,0);
00901   snprintf(plotname,200,"%sW%s",outdir,plottype);
00902   PrintHist(W_hist,plotname,4,0);
00903   snprintf(plotname,200,"%sr%s",outdir,plottype);
00904   PrintHist(r_hist,plotname,5,0);
00905   for (Int_t i=0; i<numhistos; i++) {
00906     r_asymave[i]->Divide(r_asymtot[i],r_hist[i]);
00907   }
00908   snprintf(plotname,200,"%sr_asymtot%s",outdir,plottype);
00909   PrintHist(r_asymtot,plotname,5,0);
00910   snprintf(plotname,200,"%sr_asymave%s",outdir,plottype);
00911   PrintHist(r_asymave,plotname,5,0);
00912   snprintf(plotname,200,"%sasym%s",outdir,plottype);
00913   PrintHist(asym_hist,plotname,4,0);
00914   snprintf(plotname,200,"%sdepol%s",outdir,plottype);
00915   PrintHist(depol_hist,plotname,5,1);
00916   snprintf(plotname,200,"%sasymd%s",outdir,plottype);
00917   PrintHist(asymd_hist,plotname,4,0);
00918 
00919   snprintf(plotname,200,"%sasymEep%s",outdir,plottype);
00920   PrintHist(asymEep_hist,plotname,4,0);
00921   snprintf(plotname,200,"%sasymIep%s",outdir,plottype);
00922   PrintHist(asymIep_hist,plotname,4,0);
00923   snprintf(plotname,200,"%sz0%s",outdir,plottype);
00924   PrintHist(z0_hist,plotname);
00925   // *** Draw the 2D histograms
00926   snprintf(plotname,200,"%s2Dr_phi%s",outdir,plottype);
00927   PrintHist2D(r_phi_hist,plotname);
00928   snprintf(plotname,200,"%s2D_r_asym%s",outdir,plottype);
00929   PrintHist2D(r_asym_hist,plotname);
00930 
00931 
00932   distro_r->Draw();
00933   snprintf(plotname,200,"%sdistro_r.gif",outdir);
00934   canvas.SetLogy(1);
00935   canvas.Print(plotname);
00936   if (0) {
00937     paperfig->Draw();
00938     snprintf(plotname,200,"%spaperfig.gif",outdir);
00939     canvas.Print(plotname);
00940     paperfig2->Project3DProfile("yx")->Draw("colz");
00941     snprintf(plotname,200,"%sasym_mag.gif",outdir);
00942     canvas.Print(plotname);
00943     distro_red->Draw("contourz");
00944     snprintf(plotname,200,"%sdistro_red.gif",outdir);
00945     canvas.Print(plotname);
00946     distro_green->Draw("contourz");
00947     snprintf(plotname,200,"%sdistro_green.gif",outdir);
00948     canvas.Print(plotname);
00949     distro_blue->Draw("contourz");
00950     snprintf(plotname,200,"%sdistro_blue.gif",outdir);
00951     canvas.Print(plotname);
00952 
00953     distro_rphi->Draw("contourz");
00954     snprintf(plotname,200,"%sdistro_rphi.gif",outdir);
00955     canvas.Print(plotname);
00956     distro_r_evert->Draw("contourz");
00957     snprintf(plotname,200,"%sdistro_r_evert.gif",outdir);
00958     canvas.Print(plotname);
00959     distro_r_edet->Draw("contourz");
00960     snprintf(plotname,200,"%sdistro_r_edet.gif",outdir);
00961     canvas.Print(plotname);
00962   }
00963 
00964   printf("Total number of events       = %8li\n", totalevents);
00965   printf("number not passing rcut      = %8li\n", numevcut_rcut);
00966   printf("number not passing thetacut  = %8li\n", numevcut_thetacut);
00967   printf("number not passing volumecut = %8li\n", numevcut_volumecut);
00968   printf("number not passing kinecut   = %8li\n", numevcut_kinecut);
00969   printf("number passing all cuts      = %8li\n", numevallpass);
00970 
00971   printf("Total rate is %5g GHz\n",distro_r->Integral());
00972   printf("Rate in detector zone is %5g GHz\n",distro_r->Integral(176,200));
00973   printf("Red   detector rate: %5g GHz,   energy weighted rate: %5g MeV*GHz\n",r_hist[0]->Integral(),r_eweight[0]->Integral());
00974   printf("Green detector rate: %5g GHz,   energy weighted rate: %5g MeV*GHz\n",r_hist[1]->Integral(),r_eweight[1]->Integral());
00975   printf("Blue  detector rate: %5g GHz,   energy weighted rate: %5g MeV*GHz\n",r_hist[2]->Integral(),r_eweight[2]->Integral());
00976   printf("Total detector rate: %5g GHz,   energy weighted rate: %5g MeV*GHz\n",r_hist[3]->Integral(),r_eweight[3]->Integral());
00977 
00978   printf("Rates between 0.66 and 0.82 m\n");
00979   printf("Red   detector rate: %5g GHz,   energy weighted rate: %5g MeV*GHz\n",r_hist[0]->Integral(12,44),r_eweight[0]->Integral(12,44));
00980   printf("Green detector rate: %5g GHz,   energy weighted rate: %5g MeV*GHz\n",r_hist[1]->Integral(12,44),r_eweight[1]->Integral(12,44));
00981   printf("Blue  detector rate: %5g GHz,   energy weighted rate: %5g MeV*GHz\n",r_hist[2]->Integral(12,44),r_eweight[2]->Integral(12,44));
00982   printf("Total detector rate: %5g GHz,   energy weighted rate: %5g MeV*GHz\n",r_hist[3]->Integral(12,44),r_eweight[3]->Integral(12,44));
00983   printf("All detector plane rate between 0.66 and 0.82 m: %5g GHz,   energy weighted rate: %5g MeV*GHz\n",
00984        r_hist[4]->Integral(12,44),r_eweight[4]->Integral(12,44));
00985 
00986   printf("Red   ave asymmetry: %5g ppb\n",asym_hist[0]->GetMean());
00987   printf("Green ave asymmetry: %5g ppb\n",asym_hist[1]->GetMean());
00988   printf("Blue  ave asymmetry: %5g ppb\n",asym_hist[2]->GetMean());
00989   printf("Total ave asymmetry: %5g ppb\n",asym_hist[3]->GetMean());
00990   printf("{%5g ppb, %5g ppb, %5g ppb, %5g ppb}\n",
00991        asym_hist[0]->GetMean(), asym_hist[1]->GetMean(), asym_hist[2]->GetMean(),asym_hist[3]->GetMean());
00992 
00993   printf("Red   ave depol factor: %5.3f\n",depol_hist[0]->GetMean());
00994   printf("Green ave depol factor: %5.3f\n",depol_hist[1]->GetMean());
00995   printf("Blue  ave depol factor: %5.3f\n",depol_hist[2]->GetMean());
00996   printf("Total ave depol factor: %5.3f\n",depol_hist[3]->GetMean());
00997   printf("{%5.3f, %5.3f, %5.3f, %5.3f}\n",
00998        depol_hist[0]->GetMean(), depol_hist[1]->GetMean(), depol_hist[2]->GetMean(),depol_hist[3]->GetMean());
00999 
01000   printf("Red   ave asymmetry: %5g ppb\n",asymd_hist[0]->GetMean());
01001   printf("Green ave asymmetry: %5g ppb\n",asymd_hist[1]->GetMean());
01002   printf("Blue  ave asymmetry: %5g ppb\n",asymd_hist[2]->GetMean());
01003   printf("Total ave asymmetry: %5g ppb\n",asymd_hist[3]->GetMean());
01004   printf("{%5g ppb, %5g ppb, %5g ppb, %5g ppb}\n",
01005        asymd_hist[0]->GetMean(), asymd_hist[1]->GetMean(), asymd_hist[2]->GetMean(),asymd_hist[3]->GetMean());
01006 
01007   printf("Red   ave asymmetry: %5g ppb\n",asymEep_hist[0]->GetMean());
01008   printf("Green ave asymmetry: %5g ppb\n",asymEep_hist[1]->GetMean());
01009   printf("Blue  ave asymmetry: %5g ppb\n",asymEep_hist[2]->GetMean());
01010   printf("Total ave asymmetry: %5g ppb\n",asymEep_hist[3]->GetMean());
01011   printf("{%5g ppb, %5g ppb, %5g ppb, %5g ppb}\n",
01012        asymEep_hist[0]->GetMean(), asymEep_hist[1]->GetMean(), asymEep_hist[2]->GetMean(),asymEep_hist[3]->GetMean());
01013 
01014   printf("Red   ave asymmetry: %5g ppb\n",asymIep_hist[0]->GetMean());
01015   printf("Green ave asymmetry: %5g ppb\n",asymIep_hist[1]->GetMean());
01016   printf("Blue  ave asymmetry: %5g ppb\n",asymIep_hist[2]->GetMean());
01017   printf("Total ave asymmetry: %5g ppb\n",asymIep_hist[3]->GetMean());
01018   printf("{%5g ppb, %5g ppb, %5g ppb, %5g ppb}\n",
01019        asymIep_hist[0]->GetMean(), asymIep_hist[1]->GetMean(), asymIep_hist[2]->GetMean(),asymIep_hist[3]->GetMean());
01020 
01021   // Write some output to file
01022   char rootoutfilename[256];
01023   GetPrivateProfileString ("General", "rootoutfile", "defaultout.root", rootoutfilename, 256, inifilename);
01024   TFile *outfile=new TFile(rootoutfilename,"update");
01025   if (outfile->IsZombie()) {
01026     cerr << "\nError opening file " <<  rootoutfilename << endl << endl;
01027     exit(-1);
01028   }
01029   for (Int_t i=0; i<numhistos; i++) {
01030     r_hist[i]->Write("", TObject::kOverwrite);
01031     Eprime_det_hist[i]->Write("", TObject::kOverwrite);
01032     Eprime_vert_hist[i]->Write("", TObject::kOverwrite);
01033     theta_cm[i]->Write("", TObject::kOverwrite);
01034     theta_lab_hist[i]->Write("", TObject::kOverwrite);
01035     phi_wrap_hist[i]->Write("", TObject::kOverwrite);
01036     Q2_hist[i]->Write("", TObject::kOverwrite);
01037     Q2_eweight_hist[i]->Write("", TObject::kOverwrite);
01038     W_hist[i]->Write("", TObject::kOverwrite);
01039     W2_hist[i]->Write("", TObject::kOverwrite);
01040     W2_Q2weight_hist[i]->Write("", TObject::kOverwrite);
01041     r_asymave[i]->Write("", TObject::kOverwrite);
01042     asym_hist[i]->Write("", TObject::kOverwrite);
01043     asymd_hist[i]->Write("", TObject::kOverwrite);
01044     depol_hist[i]->Write("", TObject::kOverwrite);
01045     asymEep_hist[i]->Write("", TObject::kOverwrite);
01046     asymIep_hist[i]->Write("", TObject::kOverwrite);
01047 
01048 
01049   }
01050   outfile->Close();
01051 
01052 }

Here is the call graph for this function:

Here is the caller graph for this function:

Bool_t mollerClass::Notify (  )  [virtual]

Definition at line 245 of file mollerClass.h.

Referenced by Init(), and LoadTree().

00246 {
00247    // The Notify() function is called when a new file is opened. This
00248    // can be either for a new TTree in a TChain or when when a new TTree
00249    // is started when using PROOF. It is normally not necessary to make changes
00250    // to the generated code, but the routine can be extended by the
00251    // user if needed. The return value is currently not used.
00252 
00253    return kTRUE;
00254 }

Here is the caller graph for this function:

void mollerClass::Show ( Long64_t  entry = -1  )  [virtual]

Definition at line 256 of file mollerClass.h.

References fChain.

00257 {
00258 // Print contents of entry.
00259 // If entry is not specified, print current entry
00260    if (!fChain) return;
00261    fChain->Show(entry);
00262 }


Field Documentation

Definition at line 92 of file mollerClass.h.

Referenced by Init().

Definition at line 97 of file mollerClass.h.

Referenced by Init().

Definition at line 89 of file mollerClass.h.

Referenced by Init().

Definition at line 91 of file mollerClass.h.

Referenced by Init().

Definition at line 93 of file mollerClass.h.

Referenced by Init().

Definition at line 61 of file mollerClass.h.

Referenced by Init().

Definition at line 68 of file mollerClass.h.

Referenced by Init().

Definition at line 72 of file mollerClass.h.

Referenced by Init().

Definition at line 76 of file mollerClass.h.

Referenced by Init().

Definition at line 80 of file mollerClass.h.

Referenced by Init().

Definition at line 94 of file mollerClass.h.

Referenced by Init().

Definition at line 90 of file mollerClass.h.

Referenced by Init().

Definition at line 69 of file mollerClass.h.

Referenced by Init().

Definition at line 73 of file mollerClass.h.

Referenced by Init().

Definition at line 77 of file mollerClass.h.

Referenced by Init().

Definition at line 81 of file mollerClass.h.

Referenced by Init().

Definition at line 70 of file mollerClass.h.

Referenced by Init().

Definition at line 74 of file mollerClass.h.

Referenced by Init().

Definition at line 78 of file mollerClass.h.

Referenced by Init().

Definition at line 82 of file mollerClass.h.

Referenced by Init().

Definition at line 71 of file mollerClass.h.

Referenced by Init().

Definition at line 75 of file mollerClass.h.

Referenced by Init().

Definition at line 79 of file mollerClass.h.

Referenced by Init().

Definition at line 83 of file mollerClass.h.

Referenced by Init().

Definition at line 99 of file mollerClass.h.

Referenced by Init().

Definition at line 86 of file mollerClass.h.

Referenced by Init().

Definition at line 87 of file mollerClass.h.

Referenced by Init().

Definition at line 88 of file mollerClass.h.

Referenced by Init().

Definition at line 95 of file mollerClass.h.

Referenced by Init().

Definition at line 98 of file mollerClass.h.

Referenced by Init().

Definition at line 96 of file mollerClass.h.

Referenced by Init().

Definition at line 84 of file mollerClass.h.

Referenced by Init().

Definition at line 85 of file mollerClass.h.

Referenced by Init().

TBranch* mollerClass::b_x

Definition at line 62 of file mollerClass.h.

Referenced by Init().

Definition at line 65 of file mollerClass.h.

Referenced by Init().

TBranch* mollerClass::b_y

Definition at line 63 of file mollerClass.h.

Referenced by Init().

Definition at line 66 of file mollerClass.h.

Referenced by Init().

TBranch* mollerClass::b_z

Definition at line 64 of file mollerClass.h.

Referenced by Init().

Definition at line 67 of file mollerClass.h.

Referenced by Init().

Definition at line 51 of file mollerClass.h.

Referenced by Init().

Definition at line 56 of file mollerClass.h.

Referenced by Init().

Definition at line 48 of file mollerClass.h.

Referenced by Init().

Definition at line 50 of file mollerClass.h.

Referenced by Init().

Definition at line 16 of file mollerClass.h.

Referenced by GetEntry(), Init(), LoadTree(), Loop(), Show(), and ~mollerClass().

pointer to the analyzed TTree or TChain

Definition at line 17 of file mollerClass.h.

Referenced by Init(), and LoadTree().

Definition at line 52 of file mollerClass.h.

Referenced by Init().

current Tree number in a TChain

Definition at line 20 of file mollerClass.h.

Referenced by Init().

Definition at line 27 of file mollerClass.h.

Referenced by Init(), and Loop().

Definition at line 31 of file mollerClass.h.

Referenced by Init(), and Loop().

Definition at line 35 of file mollerClass.h.

Referenced by Init(), and Loop().

Definition at line 39 of file mollerClass.h.

Referenced by Init(), and Loop().

Definition at line 53 of file mollerClass.h.

Referenced by Init(), and Loop().

Definition at line 49 of file mollerClass.h.

Referenced by Init().

Float_t mollerClass::px

Definition at line 28 of file mollerClass.h.

Referenced by Init().

Definition at line 32 of file mollerClass.h.

Referenced by Init().

Definition at line 36 of file mollerClass.h.

Referenced by Init(), and Loop().

Definition at line 40 of file mollerClass.h.

Referenced by Init(), and Loop().

Float_t mollerClass::py

Definition at line 29 of file mollerClass.h.

Referenced by Init().

Definition at line 33 of file mollerClass.h.

Referenced by Init().

Definition at line 37 of file mollerClass.h.

Referenced by Init(), and Loop().

Definition at line 41 of file mollerClass.h.

Referenced by Init(), and Loop().

Float_t mollerClass::pz

Definition at line 30 of file mollerClass.h.

Referenced by Init().

Definition at line 34 of file mollerClass.h.

Referenced by Init().

Definition at line 38 of file mollerClass.h.

Referenced by Init(), and Loop().

Definition at line 42 of file mollerClass.h.

Referenced by Init(), and Loop().

Definition at line 58 of file mollerClass.h.

Referenced by Init(), and Loop().

Definition at line 45 of file mollerClass.h.

Referenced by Init().

Definition at line 46 of file mollerClass.h.

Referenced by Init().

Definition at line 47 of file mollerClass.h.

Referenced by Init().

Definition at line 54 of file mollerClass.h.

Referenced by Init().

Definition at line 57 of file mollerClass.h.

Referenced by Init(), and Loop().

Definition at line 55 of file mollerClass.h.

Referenced by Init(), and Loop().

Definition at line 43 of file mollerClass.h.

Referenced by Init().

Definition at line 44 of file mollerClass.h.

Referenced by Init(), and Loop().

Float_t mollerClass::x

Definition at line 21 of file mollerClass.h.

Referenced by Init(), and Loop().

Float_t mollerClass::x0

Definition at line 24 of file mollerClass.h.

Referenced by Init().

Float_t mollerClass::y

Definition at line 22 of file mollerClass.h.

Referenced by Init(), and Loop().

Float_t mollerClass::y0

Definition at line 25 of file mollerClass.h.

Referenced by Init().

Float_t mollerClass::z

Definition at line 23 of file mollerClass.h.

Referenced by Init().

Float_t mollerClass::z0

Definition at line 26 of file mollerClass.h.

Referenced by Init(), and Loop().


The documentation for this class was generated from the following files:

Generated on 16 Jun 2013 for mollersim by  doxygen 1.6.1