MUST2 SAMURAI_2018 S3-LEB-LPC SUPERNEMO MUGAST EXPAND SCALP GALATRON HiCARI VELO
  MUST2  Not logged in MUST2
Message ID: 81     Entry time: Wed Jun 28 15:07:43 2017
Author: Thomas 
ExpNbr: e748 
Type: CHIO 
Category: Software 
Status: Fixed 
Target-Source: N/A 
Subject: Trapezoidal filter for CHIO 
const int nCHIO=200; // nb samples. sera ajuste en manip

float SIG[nCHIO];
int k=25; /// PLATEAU
int l=5; /// INTEGRATION
float M=300.; /// PZC
float vn, vnk, vnl, vnkl, dkl[nCHIO], p[nCHIO], r[nCHIO], s[nCHIO];

float THR=2.E5; // Seuil a ajuster en fonction de "l"
float Max=0;
int nPREV=5; // pour calcul baseline, a ajuster en ligne
int nBL=5; // pour calcul baseline, a ajuster en ligne
int tTHR=0;
float BLmean=0;

for(int i=0;i<nCHIO;i++)
{
vn=CHIO; // vecteur CHIO[]: samples
if(i-k>=0) vnk=CHIO[i-k];
else vnk=0;
if(i-l>=0) vnl=CHIO[i-l];
else vnl=0;
if(i-k-l>=0) vnkl=CHIO[i-k-l];
else vnkl=0;

dkl=vn-vnk-vnl+vnkl;
if(i>0) p=p[i-1]+dkl;
else p=dkl;
r=p+M*dkl;
if(i>0) s=s[i-1]+r;
else s=r;

if(i>0) SIG=s[i-1]+r;
else SIG=r;

hCHIO_FILTER->SetBinContent(i+1,SIG);
//if(SIG>Max) Max=SIG;
if(SIG>THR && i>nPREV+nBL && tTHR==0) tTHR=i;
if(tTHR)
{
for(int j=tTHR-(nPREV+nBL);j<tTHR-nPREV;j++) BLmean+=SIG;
BLmean/=nBL;
if(SIG>Max) Max=SIG;
if(i<nCHIO-1 && SIG<Max && SIG[i+1]<Max)
{
hECHIO_RAW->Fill(Max);
tTHR=0;
}
}

}

ELOG Home Page