Float_t AliTRDltuParam::fgLengthInnerPadC0 = 9.0;
Float_t AliTRDltuParam::fgLengthOuterPadC0 = 8.0;
Float_t AliTRDltuParam::fgScalePad = 256. * 32.;
-Float_t AliTRDltuParam::fgDriftLength = 3.e-2;
+Float_t AliTRDltuParam::fgDriftLength = 3.;
AliTRDltuParam::AliTRDltuParam() :
TObject(),
fScaleQ0(0),
fScaleQ1(0),
fPidTracklengthCorr(kFALSE),
- fTiltCorr(kFALSE)
+ fTiltCorr(kFALSE),
+ fPidGainCorr(kFALSE)
{
}
Int_t layer = det % 6;
- Float_t dyTilt = ( fgDriftLength * TMath::Tan(fgTiltingAngle[layer]) *
+ Float_t dyTilt = ( fgDriftLength * TMath::Tan(fgTiltingAngle[layer] * TMath::Pi()/180.) *
GetLocalZ(det, rob, mcm) / fgX[layer] );
// calculate Lorentz correction
dyMinInt = fgDyMin;
dyMaxInt = fgDyMax;
- if (fMagField < 0.1)
+ if (TMath::Abs(fMagField) < 0.1)
return;
Float_t e = 0.30;
}
void AliTRDltuParam::GetCorrectionFactors(Int_t det, Int_t rob, Int_t mcm, Int_t ch,
- UInt_t &cor0, UInt_t &cor1) const
+ UInt_t &cor0, UInt_t &cor1, Float_t gain) const
{
+ if (fPidGainCorr==kFALSE)
+ gain=1;
+
if (fPidTracklengthCorr == kTRUE ) {
- cor0 = Int_t ((1.0*fScaleQ0* (1./GetElongation(det, rob, mcm, ch)) ));
- cor1 = Int_t ((1.0*fScaleQ1* (1./GetElongation(det, rob, mcm, ch)) ));
+ cor0 = UInt_t ((1.0*fScaleQ0* (1./GetElongation(det, rob, mcm, ch))) / gain );
+ cor1 = UInt_t ((1.0*fScaleQ1* (1./GetElongation(det, rob, mcm, ch))) / gain );
}
else {
- cor0 = fScaleQ0;
- cor1 = fScaleQ1;
+ cor0 = UInt_t (fScaleQ0 / gain);
+ cor1 = UInt_t ( fScaleQ1 / gain);
}
}
{
Int_t layer = det%6;
// calculate the pad position as in the TRAP
- Float_t ypos = (-4 + (rob&0x1) * 4 + (mcm&0x3)) * 18 - ch - 0.5; // y position in bins of pad widths
+ Float_t ypos = (-4 + 1 + (rob&0x1) * 4 + (mcm&0x3)) * 18 - ch - 0.5; // y position in bins of pad widths
return ypos*fgWidthPad[layer];
}