X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;ds=sidebyside;f=MFT%2FAliMuonForwardTrackFinder.h;h=93bdb0b28dd1398ddfdaa145410e5fcda23801fb;hb=e9562f6f3a8b4c50d187b8c5738c7c99153179ad;hp=3cc512c495dc386ab817bfda4465f2bbaad18312;hpb=7230691d9998119811131f792ae000e240fc24ec;p=u%2Fmrichter%2FAliRoot.git diff --git a/MFT/AliMuonForwardTrackFinder.h b/MFT/AliMuonForwardTrackFinder.h index 3cc512c495d..93bdb0b28dd 100644 --- a/MFT/AliMuonForwardTrackFinder.h +++ b/MFT/AliMuonForwardTrackFinder.h @@ -48,6 +48,7 @@ #include "AliMFTCluster.h" #include "AliMFT.h" #include "AliMFTSegmentation.h" +#include "AliMFTConstants.h" //==================================================================================================================================================== // @@ -63,10 +64,11 @@ class AliMuonForwardTrackFinder : public TObject { public: enum matchingOption {kRealMatching, kIdealMatching}; + enum {kConverged, kDiverged}; AliMuonForwardTrackFinder(); - virtual ~AliMuonForwardTrackFinder() {;} + virtual ~AliMuonForwardTrackFinder(); enum {kAllClusters, kClustersGoodChi2, kClusterOfTrack, kClusterCorrectMC}; @@ -90,8 +92,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; } @@ -100,7 +101,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; } @@ -115,11 +115,11 @@ public: void SetNPlanesMFT(Int_t nPlanesMFT) { fNPlanesMFT = nPlanesMFT; } void SeparateFrontBackClusters(); void SetNMaxMissingMFTClusters(Int_t nMaxMissingMFTClusters) { fNMaxMissingMFTClusters = nMaxMissingMFTClusters; } - void SetMandatoryPlane(Int_t iPlane) { if (0<=iPlane && iPlane=0 && plane This should be taken from the new version of AliVZERO2 Int_t fNPlanesMFTAnalyzed; Int_t fNMaxMissingMFTClusters; // max. number of MFT clusters which can be missed in the global fit procedure - Bool_t fIsPlaneMandatory[fMaxNPlanesMFT]; // specifies which MFT planes cannot be missed in the global fit procedure + Bool_t fIsPlaneMandatory[fNMaxPlanes]; // specifies which MFT planes cannot be missed in the global fit procedure Int_t fEv; // current event being analyzed Int_t fLabelMC; // MC label of the muon track reconstructed in the spectrometer Bool_t fIsClusterCompatible[10]; // here the clusters in the Muon Spectrometer are concerned - Double_t fZPlane[fMaxNPlanesMFT]; // z-position of the MFT planes (center of the support) - Double_t fRPlaneMax[fMaxNPlanesMFT]; // max radius of the MFT planes (the support) - Double_t fRPlaneMin[fMaxNPlanesMFT]; // min radius of the MFT planes (the support) - - TH1D *fHistPtSpectrometer, *fHistPtMuonTrackWithGoodMatch, *fHistPtMuonTrackWithBadMatch; - TH1D *fHistRadiusEndOfAbsorber, *fHistNTracksAfterExtrapolation[fMaxNPlanesMFT]; - TH1D *fHistNGoodClustersForFinalTracks, *fHistResearchRadius[fMaxNPlanesMFT]; - TH1D *fHistDistanceGoodClusterFromTrackMinusDistanceBestClusterFromTrackAtLastPlane; - TH1D *fHistDistanceGoodClusterFromTrackAtLastPlane; - TH1D *fHistChi2Cluster_GoodCluster[fMaxNPlanesMFT], *fHistChi2Cluster_BadCluster[fMaxNPlanesMFT]; - TH1D *fHistChi2AtPlaneFor_GOOD_CandidatesOfTrackableMuons[fMaxNPlanesMFT], *fHistChi2AtPlaneFor_BAD_CandidatesOfTrackableMuons[fMaxNPlanesMFT]; - - TNtuple *fNtuFinalCandidates1, *fNtuFinalBestCandidates1; - TNtuple *fNtuFinalCandidates2, *fNtuFinalBestCandidates2; - - TGraph *fGrMFTPlane[fMaxNPlanesMFT][4]; - TEllipse *fCircleExt[fMaxNPlanesMFT], *fCircleInt[fMaxNPlanesMFT]; - TCanvas *fCanvas; - - TLatex *fTxtMuonHistory, *fTxtTrackGoodClusters, *fTxtTrackChi2[fMaxNPlanesMFT], *fTxtTrackFinalChi2, *fTxtFinalCandidates, *fTxtDummy; - TLatex *fTxtAllClust, *fTxtClustGoodChi2, *fTxtClustMC, *fTxtClustOfTrack; - TMarker *fMrkAllClust, *fMrkClustGoodChi2, *fMrkClustMC, *fMrkClustOfTrack; - - Int_t fCountRealTracksAnalyzed; + Double_t fZPlane[fNMaxPlanes]; // z-position of the MFT planes (center of the support) + 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 *fHistRadiusEndOfAbsorber, *fHistNTracksAfterExtrapolation[fNMaxPlanes]; // + TH1D *fHistNGoodClustersForFinalTracks, *fHistResearchRadius[fNMaxPlanes]; // + TH1D *fHistDistanceGoodClusterFromTrackMinusDistanceBestClusterFromTrackAtLastPlane; // + TH1D *fHistDistanceGoodClusterFromTrackAtLastPlane; // + TH1D *fHistChi2Cluster_GoodCluster[fNMaxPlanes], *fHistChi2Cluster_BadCluster[fNMaxPlanes]; // + TH1D *fHistGlobalChi2AtPlaneFor_GOOD_CandidatesOfTrackableMuons[fNMaxPlanes]; // + TH1D *fHistGlobalChi2AtPlaneFor_BAD_CandidatesOfTrackableMuons[fNMaxPlanes]; // + + TNtuple *fNtuFinalCandidates; + TNtuple *fNtuFinalBestCandidates; + + TGraph *fGrMFTPlane[4][20]; //! + TEllipse *fCircleExt[fNMaxPlanes], *fCircleInt[fNMaxPlanes]; //! + TCanvas *fCanvas; //! + + TLatex *fTxtMuonHistory, *fTxtTrackGoodClusters, *fTxtTrackChi2[fNMaxPlanes]; //! + TLatex *fTxtTrackFinalChi2, *fTxtTrackMomentum, *fTxtFinalCandidates, *fTxtDummy; //! + TLatex *fTxtAllClust, *fTxtClustGoodChi2, *fTxtClustMC, *fTxtClustOfTrack; //! + TMarker *fMrkAllClust, *fMrkClustGoodChi2, *fMrkClustMC, *fMrkClustOfTrack; //! + + Int_t fCountRealTracksAnalyzed; + Int_t fMaxNTracksToBeAnalyzed; Int_t fCountRealTracksWithRefMC; Int_t fCountRealTracksWithRefMC_andTrigger; Int_t fCountRealTracksWithRefMC_andTrigger_andGoodPt; @@ -212,51 +221,52 @@ protected: Int_t fCountRealTracksAnalyzedOfEvent; Int_t fCountRealTracksAnalyzedWithFinalCandidates; - Int_t fNClustersGlobalTrack[fMaxNPlanesMFT], fNDFGlobalTrack[fMaxNPlanesMFT]; - - TFile *fFileCluster; - TFile *fFileESD; - TFile *fFile_gAlice; + TFile *fFileCluster; //! + TFile *fFileESD; //! + TFile *fFile_gAlice; //! - AliRunLoader *fRunLoader; - AliLoader *fMFTLoader; - AliMUONRecoCheck *fMuonRecoCheck; + AliRunLoader *fRunLoader; //! + AliLoader *fMFTLoader; //! + AliMUONRecoCheck *fMuonRecoCheck; //! - TTree *fMFTClusterTree; + TTree *fMFTClusterTree; //! - AliMUONTrack *fMuonTrackReco; // muon track being analyzed - AliMuonForwardTrack *fCurrentTrack; // muon extrapolated track being tested + AliMUONTrack *fMuonTrackReco; //! muon track being analyzed + AliMuonForwardTrack *fCurrentTrack; //! muon extrapolated track being tested + AliMuonForwardTrack *fFinalBestCandidate; //! best final candidate (if any) Bool_t fIsCurrentMuonTrackable; - Bool_t fIsGoodClusterInPlane[fMaxNPlanesMFT]; + Bool_t fIsGoodClusterInPlane[fNMaxPlanes]; - TClonesArray *fCandidateTracks; // array of track we are going to build (starting from fMuonTrackReco) + TClonesArray *fCandidateTracks; //! array of track we are going to build (starting from fMuonTrackReco) - AliMUONVTrackStore *fTrackStore; // list of reconstructed MUON tracks - AliMUONVTrackStore *fTrackRefStore; // list of reconstructible MUON tracks + AliMUONVTrackStore *fTrackStore; //! list of reconstructed MUON tracks + AliMUONVTrackStore *fTrackRefStore; //! list of reconstructible MUON tracks TIterator *fNextTrack; //! Iterator for reading the MUON tracks - AliStack *fStack; + AliStack *fStack; //! - AliMFT *fMFT; - AliMFTSegmentation *fSegmentation; + AliMFT *fMFT; //! + AliMFTSegmentation *fSegmentation; //! - TFile *fOutputTreeFile; - TTree *fOutputEventTree; + TFile *fOutputTreeFile, *fOutputQAFile; // + TTree *fOutputEventTree; //! - TClonesArray *fMuonForwardTracks; // array of AliMuonForwardTrack + 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; + 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