]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONTrackHitPattern.cxx
- AliMUONRecoParam.cxx:
[u/mrichter/AliRoot.git] / MUON / AliMUONTrackHitPattern.cxx
index ffea205add392b0ef8a33e43d4dea1504de0bbb7..57c59848b2e1b0ec96c43b1c4700e5a0c4fb70e0 100644 (file)
@@ -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,14 +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),
-      fDeltaZ(0.0),
-      fTrigCovariance(0x0),
-      fkMaxDistance(99999.)
+: TObject(),
+fRecoParam(recoParam),
+fTransformer(transformer),
+fDigitMaker(digitMaker),
+fDeltaZ(0.0),
+fTrigCovariance(0x0),
+fkMaxDistance(99999.)
 {
     /// Default constructor
     InitMembers();
@@ -259,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)
        {
@@ -308,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());
   }
@@ -503,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();
     
@@ -578,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){
@@ -628,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;
 
@@ -808,7 +812,7 @@ Bool_t AliMUONTrackHitPattern::PerformTrigTrackMatch(UShort_t &pattern,
 
   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.;