]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MFT/AliMuonForwardTrackFinder.h
Macros for Phi analysis in pPb (Ajay)
[u/mrichter/AliRoot.git] / MFT / AliMuonForwardTrackFinder.h
index c26da03811cb07807d672cfead5242fef482ad95..6f0e17dc09b5228744f14ab7e2bfe559aa095486 100644 (file)
@@ -63,6 +63,8 @@ class AliMuonForwardTrackFinder : public TObject {
   
 public:
 
+  enum {kConverged, kDiverged};
+
   enum matchingOption {kRealMatching, kIdealMatching};
 
   AliMuonForwardTrackFinder();
@@ -91,8 +93,7 @@ public:
   void SetRAbsorberCut(Double_t rAbsorberCut) { fRAbsorberCut = rAbsorberCut; }
   void SetLowPtCut(Double_t lowPtCut) { fLowPtCut = lowPtCut; }
   void SetNFinalCandidatesCut(Int_t nFinalCandidatesCut) { fNFinalCandidatesCut = nFinalCandidatesCut; }
-  void SetExtrapOriginTransvError(Double_t extrapOriginTransvError) { fExtrapOriginTransvError = extrapOriginTransvError; }
-  void SetGaussianBlurZVert(Double_t gaussianBlurZVert) { fGaussianBlurZVert = gaussianBlurZVert; }
+  void SetVertexError(Double_t xErr, Double_t yErr, Double_t zErr) { fVertexErrorX=xErr; fVertexErrorY=yErr; fVertexErrorZ=zErr; }
 
   Int_t GetRun() { return fRun; }
   Int_t GetNEvents() { return fNEventsToAnalyze; }
@@ -101,7 +102,6 @@ public:
   Double_t GetChi2GlobalCut() { return fChi2GlobalCut; }
   Double_t GetRAbsorberCut() { return fRAbsorberCut; }
   Double_t GetLowPtCut() { return fLowPtCut; }
-  Double_t GetExtrapOriginTransvError() { return fExtrapOriginTransvError; }
   Int_t GetNPlanesMFT() { return fNPlanesMFT; }
   Int_t GetNFinalCandidatesCut() { return fNFinalCandidatesCut; }
   Int_t GetCurrentEvent() { return fEv; }
@@ -118,7 +118,7 @@ public:
   void SetNMaxMissingMFTClusters(Int_t nMaxMissingMFTClusters) { fNMaxMissingMFTClusters = nMaxMissingMFTClusters; }
   void SetMandatoryPlane(Int_t iPlane) { if (0<=iPlane && iPlane<AliMFTConstants::fNMaxPlanes) fIsPlaneMandatory[iPlane] = kTRUE; }
 
-  void FindClusterInPlane(Int_t planeId);
+  Int_t FindClusterInPlane(Int_t planeId);
   void AttachGoodClusterInPlane(Int_t planeId);
   void FillPlanesWithTrackHistory();
   Double_t TryOneCluster(const AliMUONTrackParam &trackParam, AliMFTCluster *cluster);
@@ -130,10 +130,10 @@ public:
 
   Bool_t IsCorrectMatch(AliMFTCluster *cluster);
   void CheckCurrentMuonTrackable();
-  Bool_t IsMother(Char_t *nameMother);
+  Bool_t IsMother(const Char_t *nameMother);
 
   void SetMatchingMode(Int_t matchingMode) { fMatchingMode = matchingMode; }
-  void SetMinResearchRadiusAtLastPlane(Double_t minResearchRadius) { fMinResearchRadiusAtLastPlane = minResearchRadius; }
+  void SetMinResearchRadiusAtPlane(Int_t plane, Double_t radius) { if (plane>=0 && plane<fNMaxPlanes) fMinResearchRadiusAtPlane[plane] = radius; }
 
   void FillOutputTree();
   void WriteOutputTree();
@@ -142,6 +142,7 @@ public:
   Bool_t SetRunNumber();
 
   void SetMaxNTracksToBeAnalyzed(Int_t nTracks) { fMaxNTracksToBeAnalyzed = nTracks; }
+  void SetBransonCorrection(Bool_t correction) { fBransonCorrection = correction; }
 
 private:
 
@@ -152,14 +153,18 @@ protected:
 
   static const Int_t fNMaxPlanes = AliMFTConstants::fNMaxPlanes;        // max number of MFT planes
   static const Double_t fRadLengthSi;
+  static const Int_t fMaxNCandidates = 1000;
 
   Int_t fRun; 
   Int_t fNEventsToAnalyze;           // events to analyze
   Double_t fSigmaClusterCut;         // to select the clusters in the MFT planes which are compatible with the extrapolated muon track
+  Double_t fScaleSigmaClusterCut;    // to tune the cut on the compatible clusters in case of too many candidates
+  Bool_t fGlobalTrackingDiverged;    // to keep memory of a possible divergence in the global tracking finding
   Double_t fChi2GlobalCut;           // cut on the final chi2 of the global muon track
   Double_t fSigmaSpectrometerCut;    // for the selection of the tracks in the muon spectrometer
-  Double_t fExtrapOriginTransvError; // uncertainty on the x and y position of the muon's origin
-  Double_t fGaussianBlurZVert;       // smearing of the z position of the vertex, to simulate real case when the simulation was performed at fixed zVert=0.
+  Double_t fVertexErrorX;            // uncertainty on the x position of the muon's origin
+  Double_t fVertexErrorY;            // uncertainty on the y position of the muon's origin
+  Double_t fVertexErrorZ;            // uncertainty on the z position of the muon's origin
   Int_t fNFinalCandidatesCut;        // cut on the number of the final candidates for the muon track
   TString fReadDir;
   TString fOutDir;
@@ -188,7 +193,6 @@ protected:
   Double_t fRPlaneMax[fNMaxPlanes];     // max radius of the MFT planes (the support)
   Double_t fRPlaneMin[fNMaxPlanes];     // min radius of the MFT planes (the support)
 
-  TH1D *fHistPtSpectrometer, *fHistPtMuonTrackWithGoodMatch, *fHistPtMuonTrackWithBadMatch;     //
   TH1D *fHistRadiusEndOfAbsorber, *fHistNTracksAfterExtrapolation[fNMaxPlanes];                        //
   TH1D *fHistNGoodClustersForFinalTracks, *fHistResearchRadius[fNMaxPlanes];                   //
   TH1D *fHistDistanceGoodClusterFromTrackMinusDistanceBestClusterFromTrackAtLastPlane;         //
@@ -218,8 +222,6 @@ protected:
   Int_t fCountRealTracksAnalyzedOfEvent;
   Int_t fCountRealTracksAnalyzedWithFinalCandidates;
 
-  Int_t fNClustersGlobalTrack[fNMaxPlanes], fNDFGlobalTrack[fNMaxPlanes];
-  
   TFile *fFileCluster;   //!
   TFile *fFileESD;       //!
   TFile *fFile_gAlice;   //!
@@ -254,16 +256,18 @@ protected:
   TClonesArray *fMuonForwardTracks;       //! array of AliMuonForwardTrack
 
   Int_t fMatchingMode;
-  Double_t fMinResearchRadiusAtLastPlane;
+  Double_t fMinResearchRadiusAtPlane[fNMaxPlanes];
 
   AliGRPObject *fGRPData;              //! Data from the GRP/GRP/Data CDB folder
   AliRunInfo *fRunInfo;                //!
+  
+  Bool_t fBransonCorrection;    // if TRUE, Branson Correction is applied when extrapolating the MUON tracks to the vertex region
 
   ClassDef(AliMuonForwardTrackFinder, 1); 
 
 };
 
-//======================================================================================================
+//====================================================================================================================================================
  
 #endif