Moving one method from RecoParam to Constants, in anticipation for the removal of...
authorlaphecet <laphecet@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 10 Jul 2008 07:40:42 +0000 (07:40 +0000)
committerlaphecet <laphecet@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 10 Jul 2008 07:40:42 +0000 (07:40 +0000)
MUON/AliMUONConstants.cxx
MUON/AliMUONConstants.h
MUON/AliMUONRecoParam.cxx
MUON/AliMUONRecoParam.h
MUON/AliMUONTrackExtrap.cxx

index f1b7e16d5850dbea9573a6bf827ea417cb62392a..08610cf8d53bc3e4563b0ffc90bdc70bb63d9ebf 100644 (file)
@@ -114,6 +114,8 @@ const Double_t AliMUONConstants::fgkMuonFilterX0 = 1.76;
 // Defaults parameters for track reconstruction
 Double_t  AliMUONConstants::fgChamberThicknessInX0 = 0.03;
 
+const Double_t AliMUONConstants::fgkMostProbBendingMomentum = 2.0;
+
 //______________________________________________________________________________
 Int_t AliMUONConstants::NCh()
 {
index 9b9ede42c143f4104c4f0e5d3f5e761eee5bbc4d..393cd0fdd6fe305f94856b49edbcb299c2952aa6 100644 (file)
@@ -103,7 +103,9 @@ class AliMUONConstants : public TObject {
     /// Return radiation length (in cm) of muon filter
     static const Double_t MuonFilterX0() {return fgkMuonFilterX0;}
 
-    
+    /// Return the most probable bending momentum (GeV/c) (used when B = 0)
+  static const Double_t GetMostProbBendingMomentum() { return fgkMostProbBendingMomentum; }
+  
  protected:
     /// Default constructor
     AliMUONConstants() : TObject() {}
@@ -160,6 +162,9 @@ class AliMUONConstants : public TObject {
     static const Double_t fgkMuonFilterZEnd; ///< z-position of the end of the muon filter
     static const Double_t fgkMuonFilterX0; ///< x0 of the muon filter
     
+  static const Double_t fgkMostProbBendingMomentum; ///< most probable value (GeV/c) of muon momentum in bending plane (used when B = 0) needed to get some "reasonable" corrections for MCS and E loss even if B = 0
+
+  
     ClassDef(AliMUONConstants, 0) // MUON global constants 
 };
        
index 3a424e664925ff6bbd4d62bf3b9a732179465c12..33f88ecbf528bc8f517f9cc7bad7ce1ec56bdb5a 100644 (file)
@@ -40,7 +40,6 @@ AliMUONRecoParam::AliMUONRecoParam()
 : AliDetectorRecoParam(),
   fClusteringMode("MLEM"),
   fTrackingMode("KALMAN"),
-  fMostProbBendingMomentum(0.),
   fMinBendingMomentum(0.),
   fMaxBendingMomentum(0.),
   fMaxNonBendingSlope(0.),
@@ -148,7 +147,6 @@ void AliMUONRecoParam::SetLowFluxParam()
 {
   /// Set reconstruction parameters for low flux environment
   
-  fMostProbBendingMomentum = 2.;
   fMinBendingMomentum = 1.;
   fMaxBendingMomentum = 3000.;
   fMaxNonBendingSlope = 0.3;
@@ -182,7 +180,6 @@ void AliMUONRecoParam::SetHighFluxParam()
 {
   /// Set reconstruction parameters for high flux environment
   
-  fMostProbBendingMomentum = 2.;
   fMinBendingMomentum = 1.;
   fMaxBendingMomentum = 3000.;
   fMaxNonBendingSlope = 0.3;
@@ -211,12 +208,27 @@ void AliMUONRecoParam::SetHighFluxParam()
   
 }
 
+//_____________________________________________________________________________
+UInt_t
+AliMUONRecoParam::RequestedStationMask() const
+{
+  /// Get the mask of the requested station, i.e. an integer where 
+  /// bit n is set to one if the station n was requested
+
+  UInt_t m(0);
+  
+  for ( Int_t i = 0; i < 5; ++i ) 
+  {
+    if ( RequestStation(i) ) m |= ( 1 << i );
+  }
+  return m;
+}
+
 //_____________________________________________________________________________
 void AliMUONRecoParam::SetCosmicParam() 
 {
   /// Set reconstruction parameters for high flux environment
   
-  fMostProbBendingMomentum = 2.;
   fMinBendingMomentum = 1.;
   fMaxBendingMomentum = 10000000.;
   fMaxNonBendingSlope = 0.3;
@@ -279,9 +291,7 @@ void AliMUONRecoParam::Print(Option_t *option) const
   
   if (fSaveFullClusterInESD) cout<<Form("Save all cluster info in ESD for %5.2f %% of events",fPercentOfFullClusterInESD)<<endl;
   else cout<<"Save partial cluster info in ESD"<<endl;
-  
-  cout<<Form("Most probable bending momentum (used only if B=0) = %5.2f",fMostProbBendingMomentum)<<endl;
-  
+    
   cout<<Form("Bending momentum range = [%5.2f,%5.2f]",fMinBendingMomentum,fMaxBendingMomentum)<<endl;
   
   cout<<Form("Maximum non bending slope = %5.2f",fMaxNonBendingSlope)<<endl;
index 3ec3ca646c303e22cd1c356cad3df0786f9fe8cc..13d05c8b5f75fc13e678b50e3db9411e04490287 100644 (file)
@@ -52,12 +52,6 @@ class AliMUONRecoParam : public AliDetectorRecoParam
   /// return the percentage of events for which all cluster info are stored in ESD
   Double_t  GetPercentOfFullClusterInESD() const {return fPercentOfFullClusterInESD;}
   
-  /// set the most probable value (GeV/c) of momentum in bending plane
-  /// needed to get some "reasonable" corrections for MCS and E loss even if B = 0
-  void     SetMostProbBendingMomentum(Double_t val) {fMostProbBendingMomentum = val;}
-  /// return the most probable value (GeV/c) of momentum in bending plane
-  Double_t GetMostProbBendingMomentum() const {return fMostProbBendingMomentum;}
-  
   /// set the minimum value (GeV/c) of momentum in bending plane
   void     SetMinBendingMomentum(Double_t val) {fMinBendingMomentum = val;}
   /// return the minimum value (GeV/c) of momentum in bending plane
@@ -164,6 +158,8 @@ class AliMUONRecoParam : public AliDetectorRecoParam
   void     RequestStation(Int_t iSt, Bool_t flag) {if (iSt >= 0 && iSt < 5) fRequestStation[iSt] = flag;}
   /// return kTRUE/kFALSE whether at least one cluster is requested in the station to validate the track
   Bool_t   RequestStation(Int_t iSt) const {return (iSt >= 0 && iSt < 5) ? fRequestStation[iSt] : kFALSE;}
+  /// return an integer where first 5 bits are set to 1 if the corresponding station is requested
+  UInt_t   RequestedStationMask() const;
   
   /// set the bypassSt45 value
   void BypassSt45(Bool_t st4, Bool_t st5);
@@ -251,8 +247,6 @@ private:
   /// tracking mode: ORIGINAL, KALMAN
   TString fTrackingMode; ///< \brief name of the tracking mode
   
-  Double32_t fMostProbBendingMomentum; ///< most probable value (GeV/c) of muon momentum in bending plane (used when B = 0)
-  
   Double32_t fMinBendingMomentum; ///< minimum value (GeV/c) of momentum in bending plane
   Double32_t fMaxBendingMomentum; ///< maximum value (GeV/c) of momentum in bending plane
   Double32_t fMaxNonBendingSlope; ///< maximum value of the non bending slope
@@ -322,7 +316,7 @@ private:
   void SetHighFluxParam();
   void SetCosmicParam();
     
-  ClassDef(AliMUONRecoParam,8) // MUON reco parameters
+  ClassDef(AliMUONRecoParam,9) // MUON reco parameters
 };
 
 #endif
index f53af5330855cec744cf1ca69dbac148addef32f..e7762acbff43e0f3e0e75dd3297a308ecaf9475b 100644 (file)
@@ -94,7 +94,8 @@ Double_t AliMUONTrackExtrap::GetImpactParamFromBendingMomentum(Double_t bendingM
 }
 
 //__________________________________________________________________________
-Double_t AliMUONTrackExtrap::GetBendingMomentumFromImpactParam(Double_t impactParam)
+Double_t 
+AliMUONTrackExtrap::GetBendingMomentumFromImpactParam(Double_t impactParam)
 {
   /// Returns signed bending momentum in bending plane (GeV/c),
   /// the sign being the sign of the charge for particles moving forward in Z,
@@ -110,8 +111,14 @@ Double_t AliMUONTrackExtrap::GetBendingMomentumFromImpactParam(Double_t impactPa
   
   const Double_t kCorrectionFactor = 1.1; // bending momentum is 10% underestimated
   
-  if (fgFieldON) return kCorrectionFactor * (-0.0003 * fgSimpleBValue * fgkSimpleBLength * fgkSimpleBPosition / impactParam);
-  else return AliMUONReconstructor::GetRecoParam()->GetMostProbBendingMomentum();
+  if (fgFieldON) 
+  {
+    return kCorrectionFactor * (-0.0003 * fgSimpleBValue * fgkSimpleBLength * fgkSimpleBPosition / impactParam);
+  }
+  else 
+  {
+    return AliMUONConstants::GetMostProbBendingMomentum();
+  }
 }
 
 //__________________________________________________________________________