X-Git-Url: http://git.uio.no/git/?p=u%2Fmrichter%2FAliRoot.git;a=blobdiff_plain;f=EVE%2FAlieve%2FTPCSectorData.cxx;h=4bff842117a6991959ab44ee1e42f7f491630eec;hp=454d5d886a34ef22fda53eff8a4d26471ec5ec87;hb=d6433e5d71afaf2247f9ea41d28a8712d324b6f6;hpb=2aef44c1066b0185dbcfaddd53434cfaf7dfe3a0 diff --git a/EVE/Alieve/TPCSectorData.cxx b/EVE/Alieve/TPCSectorData.cxx index 454d5d886a3..4bff842117a 100644 --- a/EVE/Alieve/TPCSectorData.cxx +++ b/EVE/Alieve/TPCSectorData.cxx @@ -193,7 +193,7 @@ void TPCSectorData::BeginPad(Int_t row, Int_t pad, Bool_t reverseTime) } } -void TPCSectorData::EndPad() +void TPCSectorData::EndPad(Bool_t autoPedestal, Short_t threshold) { Short_t *beg, *end; if(fCurrentStep > 0) { @@ -203,6 +203,34 @@ void TPCSectorData::EndPad() beg = fPadBuffer + fCurrentPos + 2; end = fPadBuffer + 2048; } + + if(autoPedestal) { + Short_t array[1024]; + Short_t* val; + val = beg + 1; + while(val <= end) { + array[(val-beg)/2] = *val; + val += 2; + } + Short_t pedestal = TMath::Nint(TMath::Median((end-beg)/2, array)); + val = beg + 1; + while(val <= end) { + *val -= pedestal; + val += 2; + } + Short_t* wpos = beg; + Short_t* rpos = beg; + while(rpos < end) { + if(rpos[1] > threshold) { + wpos[0] = rpos[0]; + wpos[1] = rpos[1]; + wpos += 2; + } + rpos += 2; + } + end = wpos; + } + Short_t* wpos = beg; Short_t* rpos = beg;