]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG/muon/AliMuonTrackCuts.h
Allow to store pass-dependent parameters for standard Muon track cuts in OADB (Diego)
[u/mrichter/AliRoot.git] / PWG / muon / AliMuonTrackCuts.h
index 9c2e109d4658d0d508955546911adeb1838e6df0..9e15c1979bfd8f25c19de6b880e973fd92159f11 100644 (file)
@@ -2,12 +2,13 @@
 #define ALIMUONTRACKCUTS_H
 
 #include "AliAnalysisCuts.h"
-#include "TArrayD.h"
+#include "AliOADBMuonTrackCutsParam.h"
 
-class AliVParticle;
 class TList;
-class TVector3;
 class TArrayI;
+class AliVParticle;
+class AliInputEventHandler;
+
 
 class AliMuonTrackCuts : public AliAnalysisCuts
 {
@@ -35,87 +36,45 @@ class AliMuonTrackCuts : public AliAnalysisCuts
   virtual Bool_t IsSelected ( TList* /*list */ );
   
   void SetDefaultFilterMask();
+  void SetPassNumber ( Int_t passNumber ) { fPassNumber = passNumber; }
+  void SetIsMC ( Bool_t isMC = kTRUE ) { fIsMC = isMC; }
+  void SetAllowDefaultParams ( Bool_t allowDefaultParams = kTRUE ) { fAllowDefaultParams = allowDefaultParams; }
+  void SetCustomParamFromRun ( Int_t runNumber = -1, Int_t passNumber = -1 );
+  
+  /// Get pass number
+  Int_t GetPassNumber () const { return fPassNumber; }
 
-  Bool_t SetRun(Int_t runNumber);
-  void SetUseCustomParam( Bool_t useCustomParam = kTRUE, Int_t runNumber = -1 );
-  void SetIsMC(Bool_t isMC = kTRUE) { fIsMC = isMC; }
-
+  Bool_t SetRun ( const AliInputEventHandler* eventHandler );
+  
   void Print ( Option_t* option = "" ) const;
   
   Bool_t TrackPtCutMatchTrigClass ( const AliVParticle* track, const TArrayI ptCutFromClass) const;
 
   TVector3 GetCorrectedDCA ( const AliVParticle* track ) const;
   Double_t GetAverageMomentum ( const AliVParticle* track ) const;
+  Bool_t IsThetaAbs23 ( const AliVParticle* track ) const;
 
-  enum {
-    kThetaAbs23,   ///< Theta_abs between 2 and 3 degrees
-    kThetaAbs310,  ///< Theta_abs between 3 and 10 degrees
-    kNthetaAbs     ///< Number of theta abs bins
-  };
-
-  // Parameters
-  enum {
-    kMeanDcaX,        ///< Average track DCA_x
-    kMeanDcaY,        ///< Average track DCA_y
-    kMeanDcaZ,        ///< Average track DCA_z
-    kMeanPCorr23,     ///< Average momentum correction in 2-3 deg
-    kMeanPCorr310,    ///< Average momentum correction in 3-10 deg
-    kSigmaPdca23,     ///< Sigma_PxDCA in 2-3 deg
-    kSigmaPdca310,    ///< Sigma_PxDCA in 3-10 deg
-    kNSigmaPdcaCut,   ///< Cut value in units of sigma_PxDCA
-    kChi2NormCut,     ///< Cut on the normalized chi2 of track
-    kRelPResolution,  ///< Relative momentum resolution
-    kSlopeResolution, ///< Slope resolution
-    kSharpPtApt,      ///< Sharp tracker pt cut for Apt
-    kSharpPtLpt,      ///< Sharp tracker pt cut for Lpt
-    kSharpPtHpt,      ///< Sharp tracker pt cut for Hpt
-    kNParameters      ///< Total number of parameters
-  };
-
-  void SetMeanDCA ( Double_t xAtDca, Double_t yAtDca, Double_t zAtDca = 0.);
-  TVector3 GetMeanDCA () const;
-
-  void SetMeanPCorr ( Double_t pCorrThetaAbs23, Double_t pCorrThetaAbs310 ); 
-  Double_t GetMeanPCorr ( Double_t rAtAbsEnd ) const;
-
-  void SetSigmaPdca ( Double_t sigmaThetaAbs23, Double_t sigmaThetaAbs310 );
-  Double_t GetSigmaPdca ( Double_t rAtAbsEnd ) const;
-
-  void SetNSigmaPdca ( Double_t nSigmas );
-  Double_t GetNSigmaPdca () const;
-
-  void SetChi2NormCut ( Double_t chi2normCut );
-  Double_t GetChi2NormCut () const;
-  
-  void SetRelPResolution ( Double_t relPResolution );
-  Double_t GetRelPResolution () const;
-  
-  void SetSlopeResolution ( Double_t slopeResolution );
-  Double_t GetSlopeResolution () const;
-  
-  void SetSharpPtCut ( Double_t valueApt, Double_t valueLpt, Double_t valueHpt );
-  Double_t GetSharpPtCut ( Int_t trigPtCut, Bool_t warn = kTRUE ) const;
-
-  Bool_t StreamParameters ( Int_t runNumber, Int_t maxRun );
-  
   /// Apply also sharp pt cut when matching with trigger
   void ApplySharpPtCutInMatching ( Bool_t sharpPtCut = kTRUE ) { fSharpPtCut = sharpPtCut; }
   /// Get flag to apply the sharp pt cut when matching with trigger
   Bool_t IsApplySharpPtCutInMatching () const { return fSharpPtCut; }
+  
+  /// Get track cuts param (you're not supposed to modify its content
+  const AliOADBMuonTrackCutsParam GetMuonTrackCutsParam () const { return fOADBParam; };
+  AliOADBMuonTrackCutsParam* CustomParam ();
 
  private:
   
-  Int_t GetThetaAbsBin ( Double_t rAtAbsEnd ) const;
-  Bool_t SetParameter ( Int_t iparam, Double_t value );
-  Bool_t RunMatchesRange ( Int_t runNumber, const Char_t* objName ) const;
-
-  Bool_t fIsMC;             ///< Monte Carlo analysis
-  Bool_t fUseCustomParam;   ///< Use custom parameters (do not search in OADB)
-  Bool_t fSharpPtCut;       ///< Flag to apply sharp pt cut in track-trigger matching
+  Bool_t ReadParamFromOADB ( Int_t runNumber );
 
-  TArrayD fParameters;      ///< List of parameters
+  Bool_t fIsMC;               ///< Monte Carlo analysis
+  Bool_t fUseCustomParam;     ///< Use custom parameters (do not search in OADB)
+  Bool_t fSharpPtCut;         ///< Flag to apply sharp pt cut in track-trigger matching
+  Bool_t fAllowDefaultParams; ///< Flag to allow default parameters from OADB
+  Int_t fPassNumber;          ///< Pass number
+  AliOADBMuonTrackCutsParam fOADBParam; ///< Track param in OADB
 
-  ClassDef(AliMuonTrackCuts, 3); // Class for muon track filters
+  ClassDef(AliMuonTrackCuts, 4); // Class for muon track filters
 };
  
 #endif