#include "AliTRDdEdxBaseUtils.h"
#include "AliTRDdEdxReconUtils.h"
-#define EPSILON 1e-12
+#define EPSILON 1e-8
Int_t AliTRDdEdxReconUtils::ApplyCalib(const Int_t nc0, TVectorD *arrayQ, TVectorD *arrayX, const TObjArray *cobj)
{
return coQ;
}
-Double_t AliTRDdEdxReconUtils::GetAngularCorrection(const AliTRDseedV1 *seed)
-{
- //
- //return angular normalization factor
- //
-
- return TMath::Sqrt(1+seed->GetYref(1)*seed->GetYref(1)+seed->GetZref(1)*seed->GetZref(1));
-}
-
Double_t AliTRDdEdxReconUtils::GetPadGain(const Int_t det, const Int_t icol, const Int_t irow)
{
//
return padgain;
}
-Double_t AliTRDdEdxReconUtils::GetRNDClusterQ(AliTRDcluster *cl)
+Double_t AliTRDdEdxReconUtils::GetRNDClusterQ(AliTRDcluster *cl, const Double_t baseline)
{
//
//get cluter q from GetRawQ, apply baseline and Kr pad-calibration
const Int_t pad3col = cl->GetPadCol();
const Int_t padrow = cl->GetPadRow();
- const Double_t baseline = 10;
-
Double_t rndqsum = 0;
for(Int_t ii=0; ii<7; ii++){
if(cl->GetSignals()[ii] < EPSILON){//bad pad marked by electronics
continue;
}
- const Double_t rndsignal = (cl->GetSignals()[ii] - baseline)/(AliTRDdEdxBaseUtils::IsPadGainOn()? padgain : 1);
+ const Double_t rndsignal = (cl->GetSignals()[ii] - baseline )/(AliTRDdEdxBaseUtils::IsPadGainOn()? padgain : 1);
//sum it anyway even if signal below baseline, as long as the total is positive
rndqsum += rndsignal;
Double_t dq = 0;
AliTRDcluster *cl = 0x0;
+ const Double_t baseline = 10;
+
//GetRNDClusterQ(cl)>0 ensures that the total sum of q is above baseline*NsignalPhysical.
- cl = seed->GetClusters(itb); if(cl && GetRNDClusterQ(cl)>0 ) dq+= GetRNDClusterQ(cl);//cl->GetRawQ();
- cl = seed->GetClusters(itb+AliTRDseedV1::kNtb); if(cl && GetRNDClusterQ(cl)>0 ) dq+= GetRNDClusterQ(cl);//cl->GetRawQ();
+ cl = seed->GetClusters(itb); if(cl && GetRNDClusterQ(cl, baseline)>0 ) dq+= GetRNDClusterQ(cl, baseline);
+ cl = seed->GetClusters(itb+AliTRDseedV1::kNtb); if(cl && GetRNDClusterQ(cl, baseline)>0 ) dq+= GetRNDClusterQ(cl, baseline);
- dq /= GetAngularCorrection(seed);
+ dq /= AliTRDdEdxBaseUtils::Getdldx(seed);
dq /= AliTRDdEdxBaseUtils::QScale();
if(!seed){
printf("error seed null!!\n"); exit(1);
}
- const Double_t rawq = (*arrayQ)[iq] * 45. * GetAngularCorrection(seed);
+ const Double_t rawq = (*arrayQ)[iq] * 45. * AliTRDdEdxBaseUtils::Getdldx(seed);
printf("esdid=%d; chamber=%d; timebin=%d; rawq= %.3f; myq[%d]= %e;\n", trdtrack->GetESDid(), ichamber, AliTRDdEdxBaseUtils::ToTimeBin((*arrayX)[iq]), rawq, iq, (*arrayQ)[iq]);
}
printf("\n");