Forward Hadron Calorimeter |
|
We'll begin by assuming you have some familiarity with the setup of the cosmic test stand in the high bay (enough that you understand Nathan's introductory web page). We define 'trigger' as the calorimeter modules that are used in the trigger, typically 4 sets of two, creatively labeled 1A, 1B, 2A, 2B, 3A, 3B, 4A, and 4B. A 'tower' is one of the calorimeter modules that is being read out to determine its attenuation. The analysis of the runs is what has changed from Nathan's introduction to the cosmic test stand. Now we use the code afterburner.cc which
You run the code similarly to the way you ran the montest code. First, start up root. Then load the afterburner library root [0] gSystem->Load("libafterburn.so"); Then load the run number file of interest (or the pool) root [1] poncsopen("/calodata/run_00567.evt") Start the analysis root [2] pstart() While the analysis is taking it's own sweet time, we should make sure all of the elements are available for the fits. The afterburner code expects you to provide the positions of all of the trigger modules and the break between the pedestal and signal for both the triggers and towers. If these files don't exist, then when you ask the afterburner code to do the fits with root[3] pend(567) it will spit back at you with Run #567 is not located in the distances file! So, while the pstart() is still running, you can determine the pedestal positions by simply plotting each and determining by eye the break between the pedestal and signal. (Yes, yes, I know I should be able to do this in code, but I tried a simple pattern recognition algorithm and it only worked 80% of the time -- if you have the free time, write it yourself.) So, for example, here is a tower histogram. And the break is at ~200. Enter these break points for the triggers in triggerPed.txt located in the ~/test1/ directory. The format of this file is: run# trigger_1A trigger_2A trigger_3A trigger_4A trigger_1B trigger_2B trigger_3B trigger_4B All of the numbers should be integers with spaces between them. The break points for the tower is located in (surprise) towerPed.txt. Here the format is run# tower_0 tower_2 tower_3 tower_4 tower_5 tower_6 tower_7 tower_8 tower_9 Again, all integers with single spaces. Simple enough. Now make sure that the file distances.txt has the appropriate distances for all of the triggers from the light guides of the towers. Here the format is run# trigger1_position trigger2_position trigger3_position trigger4_position Once you have entered all of these numbers you can run pend root [5] pend(567) And after some gyrations it returns for you the fitted parameters for the attenuation: The Attenuation of each of the modules is: and amplitude extrapolated to position = 0: The Amplitude of each of the modules is: In this particular case, a couple light guides were broken and one of the phototubes wasn't working appropriately. Further, plots of the fits to the signals are now located in ~/test1/plots/ as .eps files labeled according to the convention: atten_x_y.eps where x = tower # and y = run#. That should do it for now. Let me know if you have any questions. |
|