#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 |
Definition at line 14 of file mollerClass.h.
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 }
mollerClass::~mollerClass | ( | ) | [virtual] |
Definition at line 160 of file mollerClass.h.
References fChain.
Int_t mollerClass::Cut | ( | Long64_t | entry | ) | [virtual] |
Definition at line 263 of file mollerClass.h.
Int_t mollerClass::GetEntry | ( | Long64_t | entry | ) | [virtual] |
Definition at line 166 of file mollerClass.h.
References fChain.
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 }
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 }
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 }
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 }
void mollerClass::Show | ( | Long64_t | entry = -1 |
) | [virtual] |
Definition at line 256 of file mollerClass.h.
References fChain.
TBranch* mollerClass::b_creator |
Definition at line 92 of file mollerClass.h.
Referenced by Init().
TBranch* mollerClass::b_diffXS |
Definition at line 97 of file mollerClass.h.
Referenced by Init().
TBranch* mollerClass::b_ev_num |
Definition at line 89 of file mollerClass.h.
Referenced by Init().
TBranch* mollerClass::b_event |
Definition at line 91 of file mollerClass.h.
Referenced by Init().
TBranch* mollerClass::b_hit |
Definition at line 93 of file mollerClass.h.
Referenced by Init().
TBranch* mollerClass::b_ion |
Definition at line 61 of file mollerClass.h.
Referenced by Init().
TBranch* mollerClass::b_kineE |
Definition at line 68 of file mollerClass.h.
Referenced by Init().
TBranch* mollerClass::b_kineE0 |
Definition at line 72 of file mollerClass.h.
Referenced by Init().
TBranch* mollerClass::b_kineE1 |
Definition at line 76 of file mollerClass.h.
Referenced by Init().
TBranch* mollerClass::b_kineE2 |
Definition at line 80 of file mollerClass.h.
Referenced by Init().
TBranch* mollerClass::b_kineE_org |
Definition at line 94 of file mollerClass.h.
Referenced by Init().
TBranch* mollerClass::b_process |
Definition at line 90 of file mollerClass.h.
Referenced by Init().
TBranch* mollerClass::b_px |
Definition at line 69 of file mollerClass.h.
Referenced by Init().
TBranch* mollerClass::b_px0 |
Definition at line 73 of file mollerClass.h.
Referenced by Init().
TBranch* mollerClass::b_px1 |
Definition at line 77 of file mollerClass.h.
Referenced by Init().
TBranch* mollerClass::b_px2 |
Definition at line 81 of file mollerClass.h.
Referenced by Init().
TBranch* mollerClass::b_py |
Definition at line 70 of file mollerClass.h.
Referenced by Init().
TBranch* mollerClass::b_py0 |
Definition at line 74 of file mollerClass.h.
Referenced by Init().
TBranch* mollerClass::b_py1 |
Definition at line 78 of file mollerClass.h.
Referenced by Init().
TBranch* mollerClass::b_py2 |
Definition at line 82 of file mollerClass.h.
Referenced by Init().
TBranch* mollerClass::b_pz |
Definition at line 71 of file mollerClass.h.
Referenced by Init().
TBranch* mollerClass::b_pz0 |
Definition at line 75 of file mollerClass.h.
Referenced by Init().
TBranch* mollerClass::b_pz1 |
Definition at line 79 of file mollerClass.h.
Referenced by Init().
TBranch* mollerClass::b_pz2 |
Definition at line 83 of file mollerClass.h.
Referenced by Init().
TBranch* mollerClass::b_rate |
Definition at line 99 of file mollerClass.h.
Referenced by Init().
TBranch* mollerClass::b_theta0 |
Definition at line 86 of file mollerClass.h.
Referenced by Init().
TBranch* mollerClass::b_theta1 |
Definition at line 87 of file mollerClass.h.
Referenced by Init().
TBranch* mollerClass::b_theta2 |
Definition at line 88 of file mollerClass.h.
Referenced by Init().
TBranch* mollerClass::b_theta_org |
Definition at line 95 of file mollerClass.h.
Referenced by Init().
TBranch* mollerClass::b_totXS |
Definition at line 98 of file mollerClass.h.
Referenced by Init().
TBranch* mollerClass::b_track |
Definition at line 96 of file mollerClass.h.
Referenced by Init().
TBranch* mollerClass::b_type |
Definition at line 84 of file mollerClass.h.
Referenced by Init().
TBranch* mollerClass::b_volume |
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().
TBranch* mollerClass::b_x0 |
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().
TBranch* mollerClass::b_y0 |
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().
TBranch* mollerClass::b_z0 |
Definition at line 67 of file mollerClass.h.
Referenced by Init().
Float_t mollerClass::creator |
Definition at line 51 of file mollerClass.h.
Referenced by Init().
Float_t mollerClass::diffXS |
Definition at line 56 of file mollerClass.h.
Referenced by Init().
Float_t mollerClass::ev_num |
Definition at line 48 of file mollerClass.h.
Referenced by Init().
Float_t mollerClass::event |
Definition at line 50 of file mollerClass.h.
Referenced by Init().
TTree* mollerClass::fChain |
Definition at line 16 of file mollerClass.h.
Referenced by GetEntry(), Init(), LoadTree(), Loop(), Show(), and ~mollerClass().
Int_t mollerClass::fCurrent |
pointer to the analyzed TTree or TChain
Definition at line 17 of file mollerClass.h.
Referenced by Init(), and LoadTree().
Float_t mollerClass::hit |
Definition at line 52 of file mollerClass.h.
Referenced by Init().
Float_t mollerClass::ion |
Float_t mollerClass::kineE |
Definition at line 27 of file mollerClass.h.
Float_t mollerClass::kineE0 |
Definition at line 31 of file mollerClass.h.
Float_t mollerClass::kineE1 |
Definition at line 35 of file mollerClass.h.
Float_t mollerClass::kineE2 |
Definition at line 39 of file mollerClass.h.
Float_t mollerClass::kineE_org |
Definition at line 53 of file mollerClass.h.
Float_t mollerClass::process |
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().
Float_t mollerClass::px0 |
Definition at line 32 of file mollerClass.h.
Referenced by Init().
Float_t mollerClass::px1 |
Definition at line 36 of file mollerClass.h.
Float_t mollerClass::px2 |
Definition at line 40 of file mollerClass.h.
Float_t mollerClass::py |
Definition at line 29 of file mollerClass.h.
Referenced by Init().
Float_t mollerClass::py0 |
Definition at line 33 of file mollerClass.h.
Referenced by Init().
Float_t mollerClass::py1 |
Definition at line 37 of file mollerClass.h.
Float_t mollerClass::py2 |
Definition at line 41 of file mollerClass.h.
Float_t mollerClass::pz |
Definition at line 30 of file mollerClass.h.
Referenced by Init().
Float_t mollerClass::pz0 |
Definition at line 34 of file mollerClass.h.
Referenced by Init().
Float_t mollerClass::pz1 |
Definition at line 38 of file mollerClass.h.
Float_t mollerClass::pz2 |
Definition at line 42 of file mollerClass.h.
Float_t mollerClass::rate |
Definition at line 58 of file mollerClass.h.
Float_t mollerClass::theta0 |
Definition at line 45 of file mollerClass.h.
Referenced by Init().
Float_t mollerClass::theta1 |
Definition at line 46 of file mollerClass.h.
Referenced by Init().
Float_t mollerClass::theta2 |
Definition at line 47 of file mollerClass.h.
Referenced by Init().
Float_t mollerClass::theta_org |
Definition at line 54 of file mollerClass.h.
Referenced by Init().
Float_t mollerClass::totXS |
Definition at line 57 of file mollerClass.h.
Float_t mollerClass::track |
Definition at line 55 of file mollerClass.h.
Float_t mollerClass::type |
Definition at line 43 of file mollerClass.h.
Referenced by Init().
Float_t mollerClass::volume |
Definition at line 44 of file mollerClass.h.
Float_t mollerClass::x |
Definition at line 21 of file mollerClass.h.
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.
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.