Brian Wilt's Daily Log -- Archive, Week Ending Friday, 6/30
Finishing up the Sum ADC vs. Eta
Friday, July 14, 2006
I made more significant progress in the ADC vs. corrected eta plot. I've been in contact with Vincenzo Chiochia and Patrizia Azzi about mapping the PSimHits to the RecHits, and found a really useful object called the
TrackerHitAssociator which makes things extremely easy.
Funny side note -- turns out that Vincenzo is the convenor of the pixel reconstruction, and wanted to know if I was interesting in working for them ... not quite sure how to respond yet, given that I'm only out at CERN for another two weeks, but that my involvement will likely continue through the school year. Will talk to Bolek ... no doubt, I have too much on my plate already ...
But anyway, the
TrackerHitAssociator does everything for us; all you do is input a RecHit and out pops a vector of PSimHits -- what more could you want? From there, I can call PSimHit.getProcessType(), which outputs an int in one of these categories:
mapProcesses["Undefined"] = 0;
mapProcesses["Unknown"] = 1;
mapProcesses["Primary"] = 2;
mapProcesses["Hadronic"] = 3;
mapProcesses["Decay"] = 4;
mapProcesses["Compton"] = 5;
mapProcesses["Annihilation"] = 6;
mapProcesses["EIoni"] = 7;
mapProcesses["HIoni"] = 8;
mapProcesses["MuIoni"] = 9;
mapProcesses["Photon"] = 10;
mapProcesses["MuPairProd"] = 11;
mapProcesses["Conversions"] = 12;
mapProcesses["EBrem"] = 13;
mapProcesses["SynchrotronRadiation"] = 14;
mapProcesses["MuBrem"] = 15;
mapProcesses["MuNucl"] = 16;
"Hadronic" has many subtypes as well, but those aren't stored in the PSimHits. I believe that it will be sufficient to plot
Primary processes in one color and all other hits in another color -- hopefully, we will be able to see the relationship developing! In the mean time, I will generate graphs for each of the processes, as well as additional ones for RecHits with (a) no PSimHits and (b) multiple PSimHit processes. From there, we can sum them up in any combination we would like. I will probably meet with Bolek in the morning to discuss how to proceed.
Sum ADC vs. Eta
Thursday, July 13, 2006
I've created a preliminary plot of the summed ADC vs. corrected eta:
Some caveats:
- In the original C. Smith paper, he only plotted for the first barrel layer. However, I think that you should be able to reasonably plot all three barrel layers on the same plot -- the theta angle of incidence should still be the same. It helps with the visualization since I'm only working with 70 events.
- The ADC charge may be off by a factor. To get the charge, I call
SiPixelCluster.charge(), which may or may be in ADC or fundamental charges (where 1 ADC = 135 fundamental charges according to Smith) I think that I'm correct to divide by the factor of 135, since that brings my plot and Smith's into the same order of magnitude
- It's going to be more difficult to get how the particle was created than I initially suspected. I believe that I need to make use of a
PixelDigiSimLink object, which links between the simulated hits and the digital response. It makes sense that they're separated ... of course, in the real thing there won't be any simulated anything, so they won't have that garbage code floating around in the pixel cluster objects. I will be investigating these pathways this afternoon.
Neat Plots!
Wednesday, July 12, 2006
Getting more interesting pictures ... trying to play with ROOT and see what we can do.
Figured out how to get all the hits on one plot! With pretty colors, too! Here's two pictures, one looking down the Z axis and one looking down the Y axis:
First Plots
Tuesday, July 11, 2006
Got my first interesting results from my module, here's some screenshots. I spent a bunch of the day learning how to manipulate plots in ROOT:
Pictures of all the hits in each pixel barrel layer for 70 minbias pp events:
Eta for all the hits, calculated from the pixel position, and the momentum at entry (which, of course, won't be available):
Phi distribution for the hits on the first pixel barrel layer, peaks are due to overlaps of the ladders:
p_T distribution in a forward layer and a barrel layer. Kind of strange that it looks more exponential -- should have a peak around 0.5. Is it a background? To be studied this week.
Future work:
- ADC vs. cluster pseudorapidity (corrected?) I need to talk to Bolek about the difference between RecHits and Clusters more to clarify about this Lorentz shift.
- Higher resolution work for the phi distribution of the hits -- and hopefully a check to see that the peaks are located where the ladder crossovers are.
- General differentiating between secondaries (background) and particles produced in the interaction. Also, a Pythia check with Bolek to make sure I have the correct interactions, etc. selected (or Christoph) would probably be a good idea.
- Check -- what's the deal with all the low p_T garbage? Is that an exponential background of background particles or something strange?
- Can I plot multiple TGraph2D 's on the same plot, scaled, in ROOT? That would be really helpful.
- What's the deal with how Tracks and Vertexes are related? Is there a way I could just ... draw a track ina ROOT plot? What's with the parameters for a helix?
- Eventually, I'm going to have to get heavy ion interactions rolling.
Putting PSimHitGlobal into the Event
Monday, July 10, 2006
Right now I'm having a little difficultly inserting into the event -- right now,
SealPluginDump returns this:
[bwilt@pc4mit] /home/bwilt/CMSSW_0_7_2/src >SealPluginDump | grep PSimHit
LCGReflex/PSimHit
LCGReflex/PSimHitGlobal
LCGReflex/edm::Wrapper<PSimHitGlobal>
LCGReflex/edm::Wrapper<std::vector<PSimHit> >
LCGReflex/edm::Wrapper<std::vector<PSimHitGlobal> >
LCGReflex/std::map<std::basic_string<char>,std::vector<PSimHit> >
LCGReflex/std::map<std::basic_string<char>,std::vector<std::vector<PSimHit> > >
LCGReflex/std::vector<PSimHit>
LCGReflex/std::vector<PSimHitGlobal>
LCGReflex/std::vector<std::vector<PSimHit> >
And a copy of what I see when it runs:
...
%MSG-w GeometryGrabber : GeometryGrabber:gg 10-Jul-2006 09:34:15 XYZ 1/5
Adding global coordinates for hit 74.
%MSG-w GeometryGrabber : GeometryGrabber:gg 10-Jul-2006 09:34:15 XYZ 1/5
Global Entry: (8.77374,-5.61765,-6.38088) , Global Exit: (8.73663,-5.62493,-6.40054) .
%MSG-w GeometryGrabber : GeometryGrabber:gg 10-Jul-2006 09:34:15 XYZ 1/5
Putting detector data in the event
%MSG-w ScheduleExecutionFailure: BetweenModules 10-Jul-2006 09:34:15 XYZ
BetweenEvents
an exception occurred and event is being skipped:
---- ScheduleExecutionFailure BEGIN
ProcessingStopped
---- InsertFailure BEGIN
Not Registered put: Problem found while adding product. No product is registered for (PSimHitGlobals,gg,PixelBarrelGlobalHits,PROD)
cms::Exception going through module GeometryGrabber/gg run: 1 event: 5
---- InsertFailure END
Exception going through path p1
---- ScheduleExecutionFailure END
There are two places where this error could be coming from --
EventPrincipal::put(auto_ptr edp, auto_ptr prov) or
Event::getBranchDescription(std::string const& friendlyClassName, std::string const& productInstanceName).
--
BrianWilt - 20 Jul 2006