Difference between revisions of "Kyle's Log"

From Nuclear Physics Group Documentation Pages
Jump to navigationJump to search
 
(159 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
=Progress and Task Log for Kyle=
 
=Progress and Task Log for Kyle=
  
 +
[[Image:Sched.png|Schedule]]
  
==In Progress==
+
==Tasks==
*Implementing scale to zoom paning, including pushbutton interface.
+
<pre>
*Push buttion zoom
+
Shared G4 libraries - Testing
*Make sure we can rotate 2pi in both theta and phi
+
Single G4 source - Testing
*Fix phi
+
Review GEMC Output code
 +
Determine coordinate system
 +
Replicate more graphs, put in Elog
 +
</pre>
  
*Got Griffith's Particles. Sam has an excellent book on hardware by W. R. Leo
+
==Notes==
 +
'''Getting a histo from GEMC ROOT data'''
 +
<pre>
 +
To get a histogram from GEMC data do something akin to:
 +
  TH2F *edep_p = new TH2F("edep_p","edep vs p (Protons)",100,0.0,4000.0,100,0.0,2.2);
 +
  edep_p->SetMarkerColor(40); 
 +
  edep_p->SetMarkerSize(20.0);
 +
  bst->Draw("Edep:p>>edep_p","Edep<2");
 +
First we create the histo, set up some attributes, and then finally we pipe a graph into
 +
it. After this, you probably want to use Clear() in whatever pad your using to remove
 +
any graphs it draws in the process.
 +
</pre>
  
===Tasks===
+
'''Specifying exactly which histo to grab'''
*Get tasks from Maurik
+
<pre>
*Learn the XML, build a primer so we can set up simple test strips.
+
In something like:
*GEMC simulation beginner's guide
+
  bst->Draw("Edep:p","Edep<2");
*Simulating single SVT, in GEMC.
+
Edep may be in the bst tree while p is in the generated tree. To specify which ones to use:
**Geometry built
+
  bst->Draw("Edep:genT.p","Edep<2");
**Photoelectric finangles
+
</pre>
  
==Notes==
+
'''Drawing A Legend'''
 +
<pre>
 +
Try something like:
 +
  TLegend *leg = new TLegend(0.4,0.6,0.89,0.89);
 +
  leg->SetTextSize(.03);
 +
  leg->AddEntry(histo,"title","p"); //p specifies marker as key
 +
  leg->SetFillColor(0); //white BG instead of yellow default
 +
  leg->Draw();
 +
And to change the marker color of a histo:
 +
  histo->SetMarkerColor(int color);
 +
</pre>
  
===Colors!===
+
===Log===
  
===Log===
+
[[Kyle's Old Logs]]
  
====October====
+
====June====
'''Tue 23'''
+
'''Wed 4'''
 
<pre>
 
<pre>
Off clock - building Sim12 on Fedora 7, some linking errors with JGeant4
+
In 12:00pm
 +
Sarah gave Dan and I example root scripts which we are to modify for use with data collected in GEMC.
 +
Can now open root files from interpreter or program, explore trees and draw histos. I want to be able
 +
to recreate some of these: http://clasweb.jlab.org/wiki/index.php/First_SVT_results
 +
Out 4:00pm
 +
</pre>
  
Arrived 12pm
+
'''Thur 5'''
Familiarizing with batch mode, xml files
+
<pre>
Put together common batch mode commands from http://clasweb.jlab.org/wiki/index.php/Sim12_Manual.
+
In 1:00pm
Creating log for hours, things done.
+
Made theta dependence event detection graph. Recreated Edep vs. p graph using AddFriend method on TTree svt.
Read SVT and silicon detector papers
+
Then everything took a strange turn as root began to fail to do things. Worked with sarah trying to figure
Out 3:00pm
+
out what was going on. Affecting different programs, different versions of root.
 +
Out 4:00pm
 +
</pre>
  
tonight: more reading, fix linking problem
+
'''Tue 10'''
 +
<pre>
 +
In 1:00pm
 +
Met with Sarah, Maurik. Frustratingly tried to manipulate GEMC data trees. Finally reached the point
 +
where we can create copies of histograms. Many root things not working or working strangely.
 +
Need to get bin content of individual histos and manipulate them manually.
 +
Out 4:00pm
 
</pre>
 
</pre>
  
'''Thur 25'''
+
'''Wed 11'''
 
<pre>
 
<pre>
Off clock - picking up Introduction to Elementary Particles by Griffiths today or tomorrow.
+
In 12:00pm
 +
Trying to create one 2d histogram from two 1d histograms...can't find anything similar online.
 +
Maurizio got back to us, piped output into a 2d histogram and it worked. Changed drawing,
 +
binning options. Looks great! Dan is running a 50000 event simulation with the same inputs
 +
as our current 5000 event data for further refined data.
  
Arrived 12pm
+
gemc_evio2root has been updated and our current version of root does not have RIO libraries.
Reading through HDDS-1_0.xsd - XML documentation
+
Another version did but we found it to be incompatible.  
Put together a simulation with just 2 SVTs (or maybe 1 double layered SVT) and a target.
+
Out 3:45pm
Simulation runs a LOT faster with reduced geometry.
+
</pre>
  
Wrote XML guide.
+
'''Wed 18'''
Left 2:45pm
+
<pre>
 +
In 2:00pm
 +
The hub is not working, Hovannes, Dan and I tried to get ennui and benfranklin up to no avail.  
 +
Hovannes and I just used our laptops, with Dan on benfranklin going direct to an ethernet jack in the wall.
 +
Talked to sarah, recreating graphs. Have Edep v. p, working on theta with threshold cutting and phi v. z.
 +
Our Phi v. z plot is very sparsely populated. I emailed maurizio about this.
 +
One can see two distinct signals in the proton & pion edep v p graph, however we may need to widen
 +
our energy scale (lower) to see this more clearly. Running simulation with wider energy allowances.
 +
Out 5:00pm
 
</pre>
 
</pre>
  
'''Fri 26'''
+
'''Tue 24'''
 
<pre>
 
<pre>
Off clock - picking up Introduction to Elementary Particles by Griffiths today or tomorrow.
+
In 1:00
 +
Elog is up but needs a proper template - Dan is on that. Making images of the graphs to put in elog. Fixed wiki log error.
 +
Running 500,000 events proton and pion simultaneously. Need more statistics to replicate Maurizio's graphs. Proton data was
 +
damaged and I am running it again. Running another pion experiment to add to our current one.
 +
Out 3:30
 +
Ran to James hall fossil/map giveaway
 +
In 4:15
 +
Creating pion-proton graph with new data
 +
Out 4:30
 +
</pre>
  
Arrived 10am
+
'''Thur 26'''
Set up single 'strip' simulation. Trying to figure out color meaning.
+
<pre>
Color crazy! Perhaps seperated by charge, optical or 'other' emag radiation. All leptons so far are red.
+
In 11:15am
Note: I do not get the vertical red lines I did when first running the simulation. Perhaps there is too
+
Working on pion-proton graph.
much geometry when the entire site is loaded and it breaks?
+
Out 12:00pm Lunch
  
Applying fields to the region. (Uniform) Seem to have some effect on charged particles in jets but not
+
In 1:15
in incoming beam...not much of an effect though. Need to run more tests, check field strength. I don't think
+
Had Katie sign timesheets
it's doing anything.
+
I cannot figure out why our data isn't succesfully piping to histograms.
 +
Talked to sarah, she didn't know. Checking root documentation.
 +
Can we directly refer to histograms?
 +
Out 4:30
 +
</pre>
  
Rotation in the phi dimension is broken for theta = 0.
+
'''Mon 30'''
 +
<pre>
 +
In 12:15
 +
Contacted jlab, my password has changed and I can't svn or get my email.
 +
Dan gone until tommorow, he's in NJ. I shall investigate why my program
 +
isn't working.
 +
Finally fixed the pion & proton edep_p graph! Cool!
 +
Updated some wiki information on availability and versions of programs
 +
in the CLAS12ROOT directory. Created a notes section for me, in this log.
 +
Updated summer, fall schedule.
  
Sim12 registered hit for an optical photon, gave lots of nice information. Hasn't done that for other
+
Made theta graph with current data. Maurizio's cuts are different than mine.
particle hits. Trying to get Sim12 to dump particle info to a file rather than just the terminal.
+
Making phi vs. z graph. I need to combine lots of data for a statistical view,
Out - 12:30pm
+
running more proton simulations.
 +
Out 3:15pm
 
</pre>
 
</pre>
  
====November====
+
====July====
 +
'''Tue 1st'''
 +
<pre>
 +
In 1:30pm
 +
Organized goals with Sarah. Dan has elog running on mariecurie, but does Maurik want
 +
us using it? Emailing maurizio for coordinate system and other things.
 +
Maurizio got back to us. /home ran out of space! We alerted matt and spoke with him
 +
about the new server. Organized CLAS12ROOT. Data will now be in CLAS12ROOT/Experiments/data
 +
to keep home directories smaller. Removed older data.
 +
Out 4:45pm
 +
</pre>
  
'''Mon 5'''
+
'''Thur 3rd'''
 
<pre>
 
<pre>
Arrived 10:30AM
+
In 7:45am
Will G4 simulate semicondcutor SVT? - should...simulates photoelectric effect
+
Edited RHEL5_x64 env script to reflect a new $DATA variable pointing to the folder containing
Building detector piece as descriped in the diagrom in the SVT notes. Fixing geometry.
+
all the data from gemc runs.
Out 12:15PM
+
 
 +
The data I set running Tue 1st seems to have not been properly closed. Someone must have killed
 +
benfranklin's internet connection before my run finished last night. Rerunning.
 +
 
 +
I created an Index.txt in $DATA in which we can keep the command used to generate data next to
 +
it's filename, alleviating the need for long rootfile names.
 +
 
 +
I don't understand why we register so few hits in layers 2, 3, and 4 in our data, for the theta
 +
graph. You can see it again, in the Edep graphs.
 +
 
 +
I do not know the cause of the phenomenon, but I nearly sure there are 8 layers in total between
 +
all four barrels of the SVT. I would think this would mean 2 per layer but histograms I have
 +
generated beg to differ. Made x_y_z for all 8 layers.
 +
Out 10:30am
 
</pre>
 
</pre>
  
'''Wed 7'''
+
'''Thur 10th'''
 
<pre>
 
<pre>
Arrived 10:00AM
+
In 12:00pm
It seems references to geometry in the xml files use the center of a volume for it's
+
Hobo and Ben Franklin are not of good health, so Dan and I are using the physics lounge computers.  
referencing index. I've built the first layer of the SVT cross section. What are we
+
We asked maurizio about the layers confusion and it works as such:
using for n, n+, and p+? Spoke to Sam about this, he will get back to me.
 
  
For the laser test-bed we are trying to assemble:
+
"layer[0] == 1 means "plot all events where the first hit was in layer 1".
Is this laserlight polarized? Geant4 cannot yet simulate
+
layer[1] == 2 means "plot all events where the second hit was in layer 2"  - that means the first hit is somewhere else
polarized light.
+
layer[4] == 3 means "plot all events where the fifth hit was in layer 3"  - that means the first 4 hits are somewhere else (very unlikely)."
  
Trying to simulate photoelectric effect.
+
So my question is how do I specify showing the hits in just a single layer?
-what is the opticalphoton wavelength -controlled by energy?
+
out 2:45
Out 12:30pm
 
 
</pre>
 
</pre>
  
'''Fri 9'''
+
'''Tue 15th'''
 
<pre>
 
<pre>
Arrived 10:15AM
+
In 1:00
Met with Sam on thursday, he recommended a great detector book, explaining the + designation on p and n semiconductors.
+
Prepared for meeting with Maurik. Fixed X_Y_Z graph.
I spoke with grad student Georgi Nenchev on Solid State physics, and he recommended I pick up a book.
+
Lunch 2:45
Modeling SVT from the cross section.
+
In 3:45
What semiconductor materials are we using? (notes: p-gallium,boron,indium n-arsenic,phosphorus,antimony)
+
Looking through gemc's output code. Trying to find evio documentation.
How must the geometry be defined for pn junctions?
+
Out 4:30
out 12:45pm
 
 
</pre>
 
</pre>
  
'''Wed 14'''
+
'''16th-19th'''
 
<pre>
 
<pre>
Arrived 10:15AM
+
Trying to decipher GEMC and gemc2evio code. Just following it, not producing anything
Got scons, qt4, already have mysql, geant4 and python. Building qt4. Need gemc source. Filled out early time sheet.
+
so I'm not recording any hours.
Out 12:45PM
 
 
</pre>
 
</pre>
  
'''Thur 15'''
+
'''Tue 22'''
 
<pre>
 
<pre>
Arrived 12:30PM
+
In 1:00
Needed to set some env vars. Had to recompile qt4 with mysql support, recycling geant4 in sim12 build for gemc.
+
Checking out GEMC code. Trying to form questions to ask Maurik.
Lunch/Class Out: 2:15PM
+
Out 2:00
  
Arrived 5:00PM
+
Our advisors were busy! Reading code. Perhaps if we can create our own dummy item in gemc and
make install qt - still getting mysql errors. Rebuild scons.
+
run it through the processes until we can see it in a root file we will understand more.
Out 6:15pm
 
 
</pre>
 
</pre>
  
'''Fri 16'''
+
'''Thur 24'''
 
<pre>
 
<pre>
Arrived 9:00AM
+
In 3:00pm
Still getting MYSQL errors. Needed to export MYSQL=/. Getting a library error.
+
Did timesheets for past two weeks.
Looking at G4 source. Trying to implement a simple log. I see references to a file stream named LOG_MSG in gemc's source but can't find the file.
+
Inside output/evio_output.cc is an interesting method, called WriteGenerated, which takes a vector<MGeneratedParticle>
Out: 11:30PM
+
called MGP. I'm trying to find where WriteGenerated is called to see where MGP originates.
 +
 
 +
WriteGenerated is referenced in src/MEventAction.cc
 +
 
 +
More interesting things inside /hitprocess/clas12/svt/BST_hitprocess.cc
 +
Out:4:30
 
</pre>
 
</pre>
  
 +
'''Fri 25'''
 +
<pre>
 +
Supposed to come in 8-11am, stuck in Hanover with brake problems.
 +
Will work monday afternoon for three hours.
 +
</pre>
  
'''Wed 19'''
+
'''Mon 28'''
 
<pre>
 
<pre>
Arrived 10:00AM
+
Came in at 12:15 but the physics lounge computers were inaccessable. Tried to boot up BF but it was
Compiled GEMC with maurizio's file logging, it works just fine. Checking out the source, brushing up on Qt4
+
taking a long time so I went to an early lunch. Saw Maurik! Meeting with Sarah later. Amrit may have
Out: 11:30PM
+
a student? Also need to coordinate a time to move computers in the nuc server room.
 +
 
 +
In 1:30
 +
Physics lounge still being buffed. Bypassed router in JLAB room, BF booted up fine. It occurred to me
 +
during lunch that MGeneratedParticle is probably a Geant4 object and I can use the G4 documentation.
 +
 
 +
-Strike that. Haven't found anything online. $GEMC/grep -R -i mgeneratedparticle ./
 +
 
 +
Nice find: /src/MHit.cc:
 +
int MHit::mc_number_scheme(string pid)
 +
{
 +
if(pid=="e-")            return 11;
 +
if(pid=="e+")            return -11;
 +
if(pid=="gamma")        return 22;
 +
if(pid=="neutron")      return 2112;
 +
if(pid=="proton")        return 2212;
 +
if(pid=="kaon+")        return 321;
 +
if(pid=="kaon-")        return -321;
 +
if(pid=="kaon0")        return 311;
 +
if(pid=="kaon0L")        return 130;
 +
if(pid=="pi+")          return 211;
 +
if(pid=="pi-")          return -211;
 +
if(pid=="p0")            return 111;
 +
if(pid=="opticalphoton") return -22;
 +
else return 0;
 +
}
 +
 
 +
Made some changes to GEMC code. MHit.cc and MSensitiveDetector.cc. compiled, but not putting my changes into the output.
 +
 
 +
Out 4:30
 +
 
 
</pre>
 
</pre>
  
'''Mon 26'''
+
'''Tue 29'''
 
<pre>
 
<pre>
Arrived 10:15AM
+
In 11:30
Implemented panning with respect to zoom. Compiles fine, but I can't test it as Maurizio must be playing with the geometry server. Implementing buttons for panning.
+
 
Out: 12:45PM
+
  "G4Colour colour_touch (0.0, 0.0, 1.0);
 +
    G4Colour colour_hit  (1.0, 0.0, 0.0);
 +
    G4Colour colour_passby(0.0, 1.0, 0.0);
 +
 
 +
    // If the energy is above threshold, red circle.
 +
    // If the energy is below threshold, blue smaller circle.
 +
    // If no energy deposited, green smaller circle."
 +
 
 +
Added extra output to GEMC. Trying to get it through evio2root but getting segfaults.
 +
 
 +
Met with Maurik at 2:00.  
 +
 
 +
Out 2:30
 +
 
 
</pre>
 
</pre>
  
'''Tue 27'''
+
===August===
 +
'''Move Week'''
 
<pre>
 
<pre>
Arrived 12:30AM
+
Dan and I were here Mon-Thur for 8-9 hours a day helping, but I'm not sure if it's work or not.
Implemented test button for panning. Again, geometry server is not functioning, so I can't really test it yet. Trying to compile new version of GEMC, getting EVIO errors
+
We recorded three hours a day, will check with sarah.
on building.
+
</pre>
 +
 
 +
'''Mon 11'''
 +
<pre>
 +
In 11:30
 +
Dan is investigating Elog problems. Sarah has the guidelines for the electrical output methods
 +
that we are to implement, but I am still reading the code, trying to write a variable out.
 +
 
 +
I'm trying to identify a clear chain of events in processing a hit, and writing it out. It's not yet
 +
completely clear where we will need to interrupt this chain to insert our ADC to TDC code
 +
however it has become apparent to me that evio_output.cc has a much higher importance than
 +
I had originally given it in processing and writing an event.
 +
 
 +
2:00 - ran to nesmith, getting a table for dawn.
 +
2:10 - back
 +
 
 +
mariecurie seems to have gone down for some reason. We are trying to transition to Elog.
 +
 
 +
Updating GEMC. I will try to get a variable written out through the generated info tree.
 +
 
 +
Moved desks for Sarah.
 +
 
 +
Out 5:10
  
Just tested, scale to zoom panning works great!
 
Button isn't working. I don't know if I can pass an argument to a function using a slot.
 
Created seperate method for button panning, works great! Now I need to just put it all together so it looks good.
 
Updated notes and tasks on this page.
 
Can't get new GEMC to build, with evio from taro/maurik or evio from jlab. It can't link evioxx. I can't even find anything called evioxx.
 
Out: 3:00PM
 
 
</pre>
 
</pre>
  
'''Wed 28'''
+
'''Wed 13'''
 
<pre>
 
<pre>
Arrived 10:15AM
+
In 11:00
Helping Dan with Command line box
 
Implemented buttons for panning. Trying to get them in their own box, not working yet.
 
I see maurizio wants a google-maps like interface. I assume he means drag to pan/rotate and scroll zoom.
 
  
I'm going to pick up a book on QT.
+
Pumpkin slow for some reason. Using Einstein.
Left 12:15
+
 
 +
Ok. So I think most of the actual writing and suck happens inside evio_output.cc|Record_and_Clear(). However, I
 +
don't yet speak EVIO and will begin reading EVIO's code more in depth.
 +
 
 +
Out 11:30 Lunch
 +
 
 +
In 1:00
 +
 
 +
Reading EVIO source files - make that example scripts.
 +
 
 +
Using Elog
 +
 
 +
Out 3:30
 
</pre>
 
</pre>
  
'''Fri 30'''
+
'''Tue 19'''
 
<pre>
 
<pre>
Arrived 10:00AM
+
In 12:00
got latest evio/gemc from taro/maurik
+
I cannot get into elog for some reason. Waiting to talk to sarah-more office drama.
got evio to install, but scons'ing gemc results in the same linking evioxx error
+
Reading through code, wondering about the << operator. I will email Maurizio.
 +
Out 2:00
 +
</pre>
  
reading through qt tutorial
+
'''Wed 20'''
 +
<pre>
 +
In 10:30
 +
Checking out Geant4 examples recommended by sarah. Reading M. Brigada's paper.
 +
Out 12:00 Lunch
 +
In 1:00
 +
Reading.
 +
Finished Brigada's paper. Emphasis on part 4.
 +
Out 2:00 - going to financial aid
 +
In 2:15
 +
Read G4 examples sent by Sarah, Simulation study for a single TOF
 +
scintillator using GEANT4. Brigada's paper was more accessible in the fourth part,
 +
which is directly relevant to our interests. I'd like to see the code as well.
 +
 
 +
Out 3:30
 
</pre>
 
</pre>
  
 +
'''Thur 21'''
 +
<pre>
 +
In 10:00am
 +
Met with Sarah, discussed questions for her SVT meeting. She recommends I steer clear of the
 +
Brigada code and look at the G4 examples.
  
====December====
+
Reading GammaRayTele example
'''Mon 3'''
+
 
 +
Out Lunch 12:20
 +
 
 +
In 12:50
 +
GRT
 +
Out 2:20
 +
</pre>
 +
 
 +
'''Fri 22'''
 
<pre>
 
<pre>
Arrived 1015
+
In 10:00am
built new gemc, sent code to maurizio
+
 
checking out dan's code
+
Creating a method to write out digital info in GEMC.
future ideas for buttons: pan factor
+
Success! It writes out a file called digitalouts.txt. With information like:
Out 1215
+
 
 +
layer: 1    sector: 5    strip: 18    Edep: 0.215085 MeV
 +
layer: 2    sector: 5    strip: 220    Edep: 0.283442 MeV
 +
layer: 3    sector: 8    strip: 190    Edep: 0.129059 MeV
 +
layer: 3    sector: 8    strip: 191    Edep: 0.177371 MeV
 +
layer: 4    sector: 8    strip: 13    Edep: 0.255779 MeV
 +
layer: 5    sector: 10    strip: 17    Edep: 0.172112 MeV
 +
layer: 6    sector: 10    strip: 170    Edep: 0.160031 MeV
 +
layer: 7    sector: 14    strip: 58    Edep: 0.153398 MeV
 +
 
 +
Of course, to use this data it is much more likely we will
 +
be organising more like:
 +
 
 +
layer  sector  strip  Edep
 +
1          5            18      .21508
 +
etc
 +
 
 +
In fact, this system is probably not directly suited for
 +
simulated electronics output as we want to integrate
 +
the energy deposited in a strip over a certain amount
 +
of time, and then read that out. Right?
 +
 
 +
Out 1:30
 +
I think I went .5 hrs over the timesheet.
 
</pre>
 
</pre>
  
'''Tue 11'''
+
'''Tue 26'''
 
<pre>
 
<pre>
In 1215
+
In 1:30pm
Implemented compass-rose type buttons, put into new
+
My old routine had a few logical errors, I've fixed those now. Meeting with Maurizio.
code with command box
+
Out 4:00pm
Implemented pan factor slider
 
Out 2:15
 
 
</pre>
 
</pre>
  
'''Wed 13'''
+
'''Wed 27'''
 
<pre>
 
<pre>
In 100
+
In 9:30
Implemented coord boxes. Displays current x,y and allows
+
 
one to jump to any x,y. What is wrong with phi? Fix it.
+
Trying to add an ADC variable to the hitprocess. Maurizio confirmed my suspicions that
Tommorow add reset button. Move on.
+
variables have to be added database side.
Out 300
+
Waiting for an email back from sarah
 +
Out 12:00pm
 
</pre>
 
</pre>
  
 +
'''Thu 28'''
 +
<pre>
 +
In 11:15am
 +
What variables do we need added to the banks?
 +
Out 1:15 Lunch with Sarah, Matt, Dan
 +
In 2:30
 +
Trying to print sys-admin flyers. Printer drivers on MarieCurie all messed up.
 +
Put up flyers in Mub, Kingsbury, took down old flyers.
 +
Out 4:00
 +
</pre>
  
====January====
+
'''Fri 29'''
'''Thur 10'''
 
 
<pre>
 
<pre>
In 11:30
+
In 10:30am
Got updated code from maurik,
+
Fleshed out wiki from yesterday. I would like to meet with Sarah and Dan today and decide
integrating my gui changes into the new code.
+
which variables we need Maurizio to add to the bank definition so we can create our
Arg! Scons errors. Emailed Maurizio.
+
digitization methods.
Out 12:15
+
 
 +
Met with Sarah. Moved Furniture.
 +
Out 12:30pm
 
</pre>
 
</pre>
  
'''Tue 15'''
+
===September===
 +
 
 +
'''Wed 3'''
 
<pre>
 
<pre>
In 115
+
In 8:30
Built g4.9.1, assembly el4/5 32/64 bit builds of all
+
Maurizio has not emailed us back. Updated GEMC. Our ADC variable has not
gemc things.
+
been implemented. We are thinking each step in the electronics chain should be
 +
a method called by ProcessHit in BST_hitprocess. Creating blank methods.
 +
Out 9:40
  
Gemc will not build. There is a linking error with a QT4 .so
+
in 2:30
however QTDIR and QTHOME are specified, QTHOME/lib is in  
+
We talked to Sarah about the electronics, and if Maurizio doesn't add the
LD_LIBRARY_PATH, and the .so exists within the directory.
+
variable soon we will shoot the information to a text file.
Out 5:00PM
+
out 3:30
 
</pre>
 
</pre>
  
 
+
'''Thur 4'''
'''Wed 16'''
 
 
<pre>
 
<pre>
In 12:30
+
In 8:35
Still trying to figure out this linking error.
+
Filling out digi methods
-seems we need the latest gemc to resolve
+
Out 9:35
building RHEL4_x32 gemc dependencies on pumpkin
 
Out 4:45
 
 
</pre>
 
</pre>
  
'''Mon 21'''
+
'''Fun Fun Friday the 5th'''
 
<pre>
 
<pre>
In 11:00
+
In 11:00am
GEANT built successfully. Building scons. Got BMS and built EVIO.
+
 
SCons and pyscripts are in the main CLAS12 directory.
+
Talked to Sarah about ADC methods. I've decided to implement all or our
Getting new GEMC...maurik is writing to JLab for access.
+
changes within our own class, as spaghetti code was beginning to form.
Out 1:00
+
 
 +
Out 12:30pm
 +
 
 +
Lunch with Sarah, Karl
  
In-SSH: 2:25
+
In 1:30pm
Fixed the scons install. Putting GEMC in my home directory and attempting
+
Implementing class. It's much much easier to maintain this way.
to build it from the dependencies on pumpkin2/taro
+
Out 5:45pm
 
</pre>
 
</pre>

Latest revision as of 21:45, 5 September 2008

Progress and Task Log for Kyle

Schedule

Tasks

Shared G4 libraries - Testing
Single G4 source - Testing
Review GEMC Output code
Determine coordinate system
Replicate more graphs, put in Elog

Notes

Getting a histo from GEMC ROOT data

To get a histogram from GEMC data do something akin to:
  TH2F *edep_p = new TH2F("edep_p","edep vs p (Protons)",100,0.0,4000.0,100,0.0,2.2);
  edep_p->SetMarkerColor(40);  
  edep_p->SetMarkerSize(20.0); 
  bst->Draw("Edep:p>>edep_p","Edep<2");
First we create the histo, set up some attributes, and then finally we pipe a graph into
it. After this, you probably want to use Clear() in whatever pad your using to remove
any graphs it draws in the process.

Specifying exactly which histo to grab

In something like:
  bst->Draw("Edep:p","Edep<2");
Edep may be in the bst tree while p is in the generated tree. To specify which ones to use:
  bst->Draw("Edep:genT.p","Edep<2");

Drawing A Legend

Try something like:
  TLegend *leg = new TLegend(0.4,0.6,0.89,0.89);
  leg->SetTextSize(.03);	
  leg->AddEntry(histo,"title","p"); //p specifies marker as key
  leg->SetFillColor(0); //white BG instead of yellow default
  leg->Draw();
And to change the marker color of a histo:
  histo->SetMarkerColor(int color);

Log

Kyle's Old Logs

June

Wed 4

In 12:00pm
Sarah gave Dan and I example root scripts which we are to modify for use with data collected in GEMC.
Can now open root files from interpreter or program, explore trees and draw histos. I want to be able
to recreate some of these: http://clasweb.jlab.org/wiki/index.php/First_SVT_results
Out 4:00pm

Thur 5

In 1:00pm
Made theta dependence event detection graph. Recreated Edep vs. p graph using AddFriend method on TTree svt.
Then everything took a strange turn as root began to fail to do things. Worked with sarah trying to figure 
out what was going on. Affecting different programs, different versions of root.
Out 4:00pm

Tue 10

In 1:00pm
Met with Sarah, Maurik. Frustratingly tried to manipulate GEMC data trees. Finally reached the point 
where we can create copies of histograms. Many root things not working or working strangely. 
Need to get bin content of individual histos and manipulate them manually.
Out 4:00pm

Wed 11

In 12:00pm
Trying to create one 2d histogram from two 1d histograms...can't find anything similar online. 
Maurizio got back to us, piped output into a 2d histogram and it worked. Changed drawing, 
binning options. Looks great! Dan is running a 50000 event simulation with the same inputs 
as our current 5000 event data for further refined data.

gemc_evio2root has been updated and our current version of root does not have RIO libraries.
 Another version did but we found it to be incompatible. 
Out 3:45pm 

Wed 18

In 2:00pm
The hub is not working, Hovannes, Dan and I tried to get ennui and benfranklin up to no avail. 
Hovannes and I just used our laptops, with Dan on benfranklin going direct to an ethernet jack in the wall.
Talked to sarah, recreating graphs. Have Edep v. p, working on theta with threshold cutting and phi v. z. 
Our Phi v. z plot is very sparsely populated. I emailed maurizio about this.
One can see two distinct signals in the proton & pion edep v p graph, however we may need to widen
 our energy scale (lower) to see this more clearly. Running simulation with wider energy allowances.
Out 5:00pm

Tue 24

In 1:00
Elog is up but needs a proper template - Dan is on that. Making images of the graphs to put in elog. Fixed wiki log error.
Running 500,000 events proton and pion simultaneously. Need more statistics to replicate Maurizio's graphs. Proton data was
damaged and I am running it again. Running another pion experiment to add to our current one.
Out 3:30
Ran to James hall fossil/map giveaway
In 4:15
Creating pion-proton graph with new data
Out 4:30

Thur 26

In 11:15am
Working on pion-proton graph.
Out 12:00pm Lunch

In 1:15
Had Katie sign timesheets
I cannot figure out why our data isn't succesfully piping to histograms.
Talked to sarah, she didn't know. Checking root documentation.
Can we directly refer to histograms? 
Out 4:30

Mon 30

In 12:15
Contacted jlab, my password has changed and I can't svn or get my email.
Dan gone until tommorow, he's in NJ. I shall investigate why my program
isn't working.
Finally fixed the pion & proton edep_p graph! Cool!
Updated some wiki information on availability and versions of programs
in the CLAS12ROOT directory. Created a notes section for me, in this log.
Updated summer, fall schedule.

Made theta graph with current data. Maurizio's cuts are different than mine.
Making phi vs. z graph. I need to combine lots of data for a statistical view,
running more proton simulations.
Out 3:15pm

July

Tue 1st

In 1:30pm
Organized goals with Sarah. Dan has elog running on mariecurie, but does Maurik want
us using it? Emailing maurizio for coordinate system and other things.
Maurizio got back to us. /home ran out of space! We alerted matt and spoke with him
about the new server. Organized CLAS12ROOT. Data will now be in CLAS12ROOT/Experiments/data
to keep home directories smaller. Removed older data.
Out 4:45pm

Thur 3rd

In 7:45am
Edited RHEL5_x64 env script to reflect a new $DATA variable pointing to the folder containing
all the data from gemc runs.

The data I set running Tue 1st seems to have not been properly closed. Someone must have killed
benfranklin's internet connection before my run finished last night. Rerunning.

I created an Index.txt in $DATA in which we can keep the command used to generate data next to
it's filename, alleviating the need for long rootfile names.

I don't understand why we register so few hits in layers 2, 3, and 4 in our data, for the theta
graph. You can see it again, in the Edep graphs. 

I do not know the cause of the phenomenon, but I nearly sure there are 8 layers in total between
all four barrels of the SVT. I would think this would mean 2 per layer but histograms I have
generated beg to differ. Made x_y_z for all 8 layers.
Out 10:30am

Thur 10th

In 12:00pm
Hobo and Ben Franklin are not of good health, so Dan and I are using the physics lounge computers. 
We asked maurizio about the layers confusion and it works as such:

"layer[0] == 1 means "plot all events where the first hit was in layer 1".
layer[1] == 2 means "plot all events where the second hit was in layer 2"  - that means the first hit is somewhere else
layer[4] == 3 means "plot all events where the fifth hit was in layer 3"  - that means the first 4 hits are somewhere else (very unlikely)."

So my question is how do I specify showing the hits in just a single layer?
out 2:45

Tue 15th

In 1:00
Prepared for meeting with Maurik. Fixed X_Y_Z graph.
Lunch 2:45
In 3:45
Looking through gemc's output code. Trying to find evio documentation.
Out 4:30

16th-19th

Trying to decipher GEMC and gemc2evio code. Just following it, not producing anything
so I'm not recording any hours.

Tue 22

In 1:00
Checking out GEMC code. Trying to form questions to ask Maurik.
Out 2:00

Our advisors were busy! Reading code. Perhaps if we can create our own dummy item in gemc and 
run it through the processes until we can see it in a root file we will understand more.

Thur 24

In 3:00pm
Did timesheets for past two weeks.
Inside output/evio_output.cc is an interesting method, called WriteGenerated, which takes a vector<MGeneratedParticle>
called MGP. I'm trying to find where WriteGenerated is called to see where MGP originates.

WriteGenerated is referenced in src/MEventAction.cc

More interesting things inside /hitprocess/clas12/svt/BST_hitprocess.cc
Out:4:30

Fri 25

Supposed to come in 8-11am, stuck in Hanover with brake problems.
Will work monday afternoon for three hours.

Mon 28

Came in at 12:15 but the physics lounge computers were inaccessable. Tried to boot up BF but it was 
taking a long time so I went to an early lunch. Saw Maurik! Meeting with Sarah later. Amrit may have
a student? Also need to coordinate a time to move computers in the nuc server room.

In 1:30
Physics lounge still being buffed. Bypassed router in JLAB room, BF booted up fine. It occurred to me
during lunch that MGeneratedParticle is probably a Geant4 object and I can use the G4 documentation.

-Strike that. Haven't found anything online. $GEMC/grep -R -i mgeneratedparticle ./ 

Nice find: /src/MHit.cc:
int MHit::mc_number_scheme(string pid)
{
 if(pid=="e-")            return 11;
 if(pid=="e+")            return -11;
 if(pid=="gamma")         return 22;
 if(pid=="neutron")       return 2112;
 if(pid=="proton")        return 2212;
 if(pid=="kaon+")         return 321;
 if(pid=="kaon-")         return -321;
 if(pid=="kaon0")         return 311;
 if(pid=="kaon0L")        return 130;
 if(pid=="pi+")           return 211;
 if(pid=="pi-")           return -211;
 if(pid=="p0")            return 111;
 if(pid=="opticalphoton") return -22;
 else return 0;
}
  
Made some changes to GEMC code. MHit.cc and MSensitiveDetector.cc. compiled, but not putting my changes into the output.

Out 4:30

Tue 29

In 11:30

   "G4Colour colour_touch (0.0, 0.0, 1.0);
    G4Colour colour_hit   (1.0, 0.0, 0.0);
    G4Colour colour_passby(0.0, 1.0, 0.0);

    // If the energy is above threshold, red circle.
    // If the energy is below threshold, blue smaller circle.
    // If no energy deposited, green smaller circle."

Added extra output to GEMC. Trying to get it through evio2root but getting segfaults.

Met with Maurik at 2:00. 

Out 2:30

August

Move Week

Dan and I were here Mon-Thur for 8-9 hours a day helping, but I'm not sure if it's work or not. 
We recorded three hours a day, will check with sarah.

Mon 11

In 11:30
Dan is investigating Elog problems. Sarah has the guidelines for the electrical output methods 
that we are to implement, but I am still reading the code, trying to write a variable out.

I'm trying to identify a clear chain of events in processing a hit, and writing it out. It's not yet
completely clear where we will need to interrupt this chain to insert our ADC to TDC code
however it has become apparent to me that evio_output.cc has a much higher importance than
I had originally given it in processing and writing an event.

2:00 - ran to nesmith, getting a table for dawn.
2:10 - back

mariecurie seems to have gone down for some reason. We are trying to transition to Elog.

Updating GEMC. I will try to get a variable written out through the generated info tree.

Moved desks for Sarah.

Out 5:10

Wed 13

In 11:00

Pumpkin slow for some reason. Using Einstein.

Ok. So I think most of the actual writing and suck happens inside evio_output.cc|Record_and_Clear(). However, I
don't yet speak EVIO and will begin reading EVIO's code more in depth.

Out 11:30 Lunch

In 1:00

Reading EVIO source files - make that example scripts.

Using Elog

Out 3:30

Tue 19

In 12:00
I cannot get into elog for some reason. Waiting to talk to sarah-more office drama.
Reading through code, wondering about the << operator. I will email Maurizio.
Out 2:00

Wed 20

In 10:30
Checking out Geant4 examples recommended by sarah. Reading M. Brigada's paper.
Out 12:00 Lunch
In 1:00
Reading.
Finished Brigada's paper. Emphasis on part 4.
Out 2:00 - going to financial aid
In 2:15
Read G4 examples sent by Sarah, Simulation study for a single TOF 
scintillator using GEANT4. Brigada's paper was more accessible in the fourth part,
which is directly relevant to our interests. I'd like to see the code as well.

Out 3:30

Thur 21

In 10:00am
Met with Sarah, discussed questions for her SVT meeting. She recommends I steer clear of the
Brigada code and look at the G4 examples.

Reading GammaRayTele example

Out Lunch 12:20

In 12:50
GRT
Out 2:20

Fri 22

In 10:00am

Creating a method to write out digital info in GEMC.
Success! It writes out a file called digitalouts.txt. With information like:

layer: 1    sector: 5    strip: 18    Edep: 0.215085 MeV
layer: 2    sector: 5    strip: 220    Edep: 0.283442 MeV
layer: 3    sector: 8    strip: 190    Edep: 0.129059 MeV
layer: 3    sector: 8    strip: 191    Edep: 0.177371 MeV
layer: 4    sector: 8    strip: 13    Edep: 0.255779 MeV
layer: 5    sector: 10    strip: 17    Edep: 0.172112 MeV
layer: 6    sector: 10    strip: 170    Edep: 0.160031 MeV
layer: 7    sector: 14    strip: 58    Edep: 0.153398 MeV

Of course, to use this data it is much more likely we will
be organising more like:

layer   sector   strip   Edep
1          5            18      .21508
etc

In fact, this system is probably not directly suited for
simulated electronics output as we want to integrate
the energy deposited in a strip over a certain amount
of time, and then read that out. Right?

Out 1:30
I think I went .5 hrs over the timesheet.

Tue 26

In 1:30pm
My old routine had a few logical errors, I've fixed those now. Meeting with Maurizio.
Out 4:00pm

Wed 27

In 9:30

Trying to add an ADC variable to the hitprocess. Maurizio confirmed my suspicions that
variables have to be added database side.
Waiting for an email back from sarah
Out 12:00pm

Thu 28

In 11:15am 
What variables do we need added to the banks?
Out 1:15 Lunch with Sarah, Matt, Dan
In 2:30
Trying to print sys-admin flyers. Printer drivers on MarieCurie all messed up.
Put up flyers in Mub, Kingsbury, took down old flyers.
Out 4:00

Fri 29

In 10:30am
Fleshed out wiki from yesterday. I would like to meet with Sarah and Dan today and decide
which variables we need Maurizio to add to the bank definition so we can create our
digitization methods.

Met with Sarah. Moved Furniture.
Out 12:30pm

September

Wed 3

In 8:30
Maurizio has not emailed us back. Updated GEMC. Our ADC variable has not
been implemented. We are thinking each step in the electronics chain should be
a method called by ProcessHit in BST_hitprocess. Creating blank methods.
Out 9:40

in 2:30
We talked to Sarah about the electronics, and if Maurizio doesn't add the
variable soon we will shoot the information to a text file.
out 3:30

Thur 4

In 8:35
Filling out digi methods
Out 9:35

Fun Fun Friday the 5th

In 11:00am

Talked to Sarah about ADC methods. I've decided to implement all or our
changes within our own class, as spaghetti code was beginning to form.

Out 12:30pm

Lunch with Sarah, Karl

In 1:30pm
Implementing class. It's much much easier to maintain this way.
Out 5:45pm