X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=MUON%2FAliMUONTrackHitPattern.cxx;h=57c59848b2e1b0ec96c43b1c4700e5a0c4fb70e0;hb=1afb990632992830c51016c8f066f86db9a90b4c;hp=06f7873e62768ea0f4e68d9e0615da965107fda6;hpb=7035694f8ed974c060763a4f2ecb18f388a0445c;p=u%2Fmrichter%2FAliRoot.git diff --git a/MUON/AliMUONTrackHitPattern.cxx b/MUON/AliMUONTrackHitPattern.cxx index 06f7873e627..57c59848b2e 100644 --- a/MUON/AliMUONTrackHitPattern.cxx +++ b/MUON/AliMUONTrackHitPattern.cxx @@ -47,6 +47,7 @@ #include "AliMUONGeometryTransformer.h" #include "AliMUONLocalTrigger.h" #include "AliMUONLocalTriggerBoard.h" +#include "AliMUONRecoParam.h" #include "AliMUONTrack.h" #include "AliMUONTrackExtrap.h" #include "AliMUONTrackParam.h" @@ -57,7 +58,6 @@ #include "AliMpVSegmentation.h" #include "AliMpDEManager.h" #include "AliMUONReconstructor.h" -#include "AliMUONRecoParam.h" #include "AliMUONTriggerTrack.h" #include "AliMUONVTriggerTrackStore.h" @@ -85,12 +85,16 @@ ClassImp(AliMUONTrackHitPattern) // Class implementation in ROOT context //______________________________________________________________________________ -AliMUONTrackHitPattern::AliMUONTrackHitPattern(const AliMUONGeometryTransformer& transformer, +AliMUONTrackHitPattern::AliMUONTrackHitPattern(const AliMUONRecoParam* recoParam, + const AliMUONGeometryTransformer& transformer, const AliMUONDigitMaker& digitMaker) - : TObject(), - fTransformer(transformer), - fDigitMaker(digitMaker), - fkMaxDistance(99999.) +: TObject(), +fRecoParam(recoParam), +fTransformer(transformer), +fDigitMaker(digitMaker), +fDeltaZ(0.0), +fTrigCovariance(0x0), +fkMaxDistance(99999.) { /// Default constructor InitMembers(); @@ -257,10 +261,10 @@ AliMUONTrackHitPattern::MatchTriggerTrack(AliMUONTrack* track, } 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) { @@ -306,10 +310,11 @@ AliMUONTrackHitPattern::MatchTriggerTrack(AliMUONTrack* track, if (locTrg) { + Int_t deviation = locTrg->GetDeviation(); track->SetLocalTrigger(locTrg->LoCircuit(), locTrg->LoStripX(), locTrg->LoStripY(), - locTrg->LoDev(), + deviation, locTrg->LoLpt(), locTrg->LoHpt()); } @@ -501,7 +506,7 @@ AliMUONTrackHitPattern::MinDistanceFromPad(Float_t xPad, Float_t yPad, Float_t z 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(); @@ -576,7 +581,7 @@ Int_t AliMUONTrackHitPattern::FindPadMatchingTrig(AliMUONVDigitStore& digitStore 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){ @@ -626,8 +631,9 @@ Float_t AliMUONTrackHitPattern::PadMatchTrack(Float_t xPad, Float_t yPad, /// 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; @@ -806,7 +812,7 @@ Bool_t AliMUONTrackHitPattern::PerformTrigTrackMatch(UShort_t &pattern, for(Int_t ch=0; ch