Linear Collider Forum

Home » Analysis and Reconstruction » EUDET Telescope » A Marlin processor for pedestal calculation
A Marlin processor for pedestal calculation [message #678] Thu, 01 February 2007 06:14 Go to previous message
Messages: 66
Registered: January 2007
Location: INFN - Roma3

Dear all,
as promised, I'm trying to write a first attempt of a Marlin processor able to calculate pedestal and estimate noise from a LCIO input file containing pixel detector data.

Since I hope that in some time (see this thread) we will be able to save a full detector (when I say detector I mean one telescope plane) output in a TrackerRawData structure, I'm basing the processor on the idea that the input LCIO file will contain for each event a collection of TrackerRawData's, one for each detector plane.

In my standard analysis procedure, I do the following:
  1. In a loop over all events (or a user selected subset, say the first 100) I calculate the first approximation to pedestal and noise using the average and the variance of each pixel signal distribution. In this first loop, I usually do not apply neither common mode suppression nor hit rejection algorithms, but I flag very noisy pixel as bad so that they are not considered in the following analysis steps.
  2. The first order correction to the pedestal and noise values is obtained in a second loop on events in this way:
    1. Since we already have an indication about each pixel noise, for each event we can reject hit pixels on a signal to noise ratio base.
    2. For each event the common mode level is calculated and consequently a new pedestal value is calculated.
    3. Again, at the end of the event loop, I flag other too noisy pixels. Usually this second bad pixel masking is much weaker than the first.
  3. The previous point can be reiterated several times depending on the residual common-mode level. Usually not needed.

So my first idea was to create a PedeNoiseProcessor doing the full procedure. But how to convince Marlin to loop at least twice on all events? Is it possible?

The second idea, probably easier and (maybe) more elegant is to write a PedeNoiseProcessor that is just doing point 1. And then write a second processor, say CommonModeSupProcessor that, using some initial pedestal and noise value, produces the second order approximation. In this way, one can decide how many time the common mode sup algo should be applied just adding CommonModeSupProcessor's to the steering file. Do you think is doable?

Now, I have a more general question on how the framework works. Consider a steering file in which three processors (processorA, processorB and processorC) are active and properly configured. How is Marlin working? It is something like:

Case 1

for (iEvt = 0; iEvt < nEvt; iEvt++) {

or something like

Case 2

for (iEvt = 0; iEvt < nEvt; iEvt++) processorA(iEvt);
for (iEvt = 0; iEvt < nEvt; iEvt++) processorB(iEvt);
for (iEvt = 0; iEvt < nEvt; iEvt++) processorC(iEvt);

If it is like in case 1, my idea is not feasible, because I need to loop on all event with PedeNoiseProcess before starting with CommonModeSupProcess.

Thanks, for your help

Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic:Important steps toward the EUDET telescope analysis
Next Topic:ilcinstall: configuration file for Eutelescope
Goto Forum:

Current Time: Thu Feb 27 03:43:30 Pacific Standard Time 2020
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.1.
Copyright ©2001-2010 FUDforum Bulletin Board Software