#include "AliMUONGeometryTransformer.h"
#include "AliMUONLocalTrigger.h"
#include "AliMUONLocalTriggerBoard.h"
+#include "AliMUONRecoParam.h"
#include "AliMUONTrack.h"
#include "AliMUONTrackExtrap.h"
#include "AliMUONTrackParam.h"
#include "AliMpVSegmentation.h"
#include "AliMpDEManager.h"
#include "AliMUONReconstructor.h"
-#include "AliMUONRecoParam.h"
#include "AliMUONTriggerTrack.h"
#include "AliMUONVTriggerTrackStore.h"
//______________________________________________________________________________
-AliMUONTrackHitPattern::AliMUONTrackHitPattern(const AliMUONGeometryTransformer& transformer,
+AliMUONTrackHitPattern::AliMUONTrackHitPattern(const AliMUONRecoParam* recoParam,
+ const AliMUONGeometryTransformer& transformer,
const AliMUONDigitMaker& digitMaker)
- : TObject(),
- fTransformer(transformer),
- fDigitMaker(digitMaker),
- fDeltaZ(0.0),
- fTrigCovariance(0x0),
- fkMaxDistance(99999.)
+: TObject(),
+fRecoParam(recoParam),
+fTransformer(transformer),
+fDigitMaker(digitMaker),
+fDeltaZ(0.0),
+fTrigCovariance(0x0),
+fkMaxDistance(99999.)
{
/// Default constructor
InitMembers();
}
chi2 /= 3.; // Normalized Chi2: 3 degrees of freedom (X,Y,slopeY)
- if (chi2 < AliMUONReconstructor::GetRecoParam()->GetMaxNormChi2MatchTrigger())
+ if (chi2 < GetRecoParam()->GetMaxNormChi2MatchTrigger())
{
Bool_t isDoubleTrack = (TMath::Abs(chi2 - minChi2MatchTrigger)<1.);
- if (chi2 < minChi2MatchTrigger && chi2 < AliMUONReconstructor::GetRecoParam()->GetMaxNormChi2MatchTrigger())
+ if (chi2 < minChi2MatchTrigger && chi2 < GetRecoParam()->GetMaxNormChi2MatchTrigger())
{
if(isDoubleTrack)
{
if (locTrg)
{
+ Int_t deviation = locTrg->GetDeviation();
track->SetLocalTrigger(locTrg->LoCircuit(),
locTrg->LoStripX(),
locTrg->LoStripY(),
- locTrg->LoDev(),
+ deviation,
locTrg->LoLpt(),
locTrg->LoHpt());
}
Float_t xTrackAtPad = trackParamAtPadZ.GetNonBendingCoor();
Float_t yTrackAtPad = trackParamAtPadZ.GetBendingCoor();
- const Float_t kNSigma = AliMUONReconstructor::GetRecoParam()->GetSigmaCutForTrigger();
+ const Float_t kNSigma = GetRecoParam()->GetSigmaCutForTrigger();
const TMatrixD& kCovParam = trackParamAtPadZ.GetCovariances();
Float_t dpx = pad.Dimensions().X();
Float_t dpy = pad.Dimensions().Y();
fTransformer.Local2Global(currDetElemId, xlocal1, ylocal1, 0, xpad, ypad, zpad);
- AliDebug(2, Form("DetElemId = %i\tCathode = %i\t(x,y) Pad = (%i,%i) = (%.2f,%.2f)\tDim = (%.2f,%.2f)\tTrack = (%.2f,%.2f)\n",currDetElemId,cathode,ix,iy,xpad,ypad,dpx,dpy,coor[0],coor[1]));
+ AliDebug(2, Form("\nDetElemId = %i Cathode = %i Pad = (%i,%i) = (%.2f,%.2f) Dim = (%.2f,%.2f) Track = (%.2f,%.2f)\n",currDetElemId,cathode,ix,iy,xpad,ypad,dpx,dpy,coor[0],coor[1]));
// searching track intersection with chambers (second approximation)
if(ch%2==1){
//if(iChamber%2==1){
/// Decides if the digit belongs to the trigger track.
//
- Float_t maxDist = 2.;//3. // cm
- Float_t maxDistCheckArea = 6.; // cm
+ Float_t maxDist = GetRecoParam()->GetStripCutForTrigger() * 2. * TMath::Min(dpx,dpy); // cm
+ if(maxDist<2.) maxDist = 2.;
+ Float_t maxDistCheckArea = GetRecoParam()->GetMaxStripAreaForTrigger() * 2. * TMath::Min(dpx,dpy); // cm
Float_t matchDist = fkMaxDistance;
for(Int_t ch=0; ch<fgkNchambers; ch++) { // chamber loop
Int_t currCh = chOrder[ch];
- AliDebug(2, Form("zMeanChamber[%i] = %.2f\tzRealMatch[0] = %.2f\n",currCh,zMeanChamber[currCh],zRealMatch[0]));
+ AliDebug(3, Form("zMeanChamber[%i] = %.2f\tzRealMatch[0] = %.2f\n",currCh,zMeanChamber[currCh],zRealMatch[0]));
for(Int_t cath=0; cath<fgkNcathodes; cath++){
correctFactor[cath]=1.;