]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Fixes of warnings and upgrade of analysis to include Pb+Pb analysis. Background corre...
authorhdalsgaa <hdalsgaa@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 20 Mar 2009 15:21:44 +0000 (15:21 +0000)
committerhdalsgaa <hdalsgaa@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 20 Mar 2009 15:21:44 +0000 (15:21 +0000)
FMD/analysis/AliFMDAnaParameters.cxx
FMD/analysis/AliFMDAnaParameters.h

index f82dbef26f7de236a00b7100f0315da4fba628ca..98f423a81c9c79381d447d47648bf5e4fe3db764 100644 (file)
@@ -118,41 +118,107 @@ Int_t AliFMDAnaParameters::GetNvtxBins() {
   return fBackground->GetNvtxBins();
 }
 //____________________________________________________________________
-TH1F* AliFMDAnaParameters::GetEnergyDistribution(Int_t det, Char_t ring) {
+TH1F* AliFMDAnaParameters::GetEnergyDistribution(Int_t det, Char_t ring, Float_t eta) {
   
-  return fEnergyDistribution->GetEnergyDistribution(det, ring);
+  return fEnergyDistribution->GetEnergyDistribution(det, ring, eta);
 }
 //____________________________________________________________________
-Float_t AliFMDAnaParameters::GetSigma(Int_t det, Char_t ring) {
+Float_t AliFMDAnaParameters::GetSigma(Int_t det, Char_t ring, Float_t eta) {
   
   if(!fIsInit) {
     AliWarning("Not initialized yet. Call Init() to remedy");
     return 0;
   }
   
-  TH1F* hEnergyDist       = GetEnergyDistribution(det,ring);
-  TF1*  landau            = hEnergyDist->GetFunction("landau");
-  Float_t sigma           = landau->GetParameter(2);
+  TH1F* hEnergyDist       = GetEnergyDistribution(det,ring, eta);
+  TF1*  fitFunc           = hEnergyDist->GetFunction("FMDfitFunc");
+  if(!fitFunc) {
+    AliWarning(Form("No function for FMD%d%c, eta %f",det,ring,eta));
+    return 1024;
+  }
+  Float_t sigma           = fitFunc->GetParameter(2);
   return sigma;
 }
 
 
 //____________________________________________________________________
-Float_t AliFMDAnaParameters::GetMPV(Int_t det, Char_t ring) {
+Float_t AliFMDAnaParameters::GetMPV(Int_t det, Char_t ring, Float_t eta) {
   
   if(!fIsInit) {
     AliWarning("Not initialized yet. Call Init() to remedy");
     return 0;
   }
   
-  TH1F* hEnergyDist     = GetEnergyDistribution(det,ring);
-  TF1*  landau          = hEnergyDist->GetFunction("landau");
-  Float_t MPV           = landau->GetParameter(1);
+  TH1F* hEnergyDist     = GetEnergyDistribution(det,ring,eta);
+  TF1*  fitFunc         = hEnergyDist->GetFunction("FMDfitFunc");
+  if(!fitFunc) {
+    AliWarning(Form("No function for FMD%d%c, eta %f",det,ring,eta));
+    return 1024;
+  }
+    
+  Float_t MPV           = fitFunc->GetParameter(1);
   return MPV;
 }
 //____________________________________________________________________
+Float_t AliFMDAnaParameters::Get2MIPWeight(Int_t det, Char_t ring, Float_t eta) {
+  
+  if(!fIsInit) {
+    AliWarning("Not initialized yet. Call Init() to remedy");
+    return 0;
+  }
+  
+  TH1F* hEnergyDist     = GetEnergyDistribution(det,ring,eta);
+  TF1*  fitFunc         = hEnergyDist->GetFunction("FMDfitFunc");
+  if(!fitFunc) return 0;
+  Float_t TwoMIPweight    = fitFunc->GetParameter(3);
+  
+  
+  
+  if(TwoMIPweight < 1e-05)
+    TwoMIPweight = 0;
+  
+  return TwoMIPweight;
+}
+//____________________________________________________________________
+Float_t AliFMDAnaParameters::Get3MIPWeight(Int_t det, Char_t ring, Float_t eta) {
+  
+  if(!fIsInit) {
+    AliWarning("Not initialized yet. Call Init() to remedy");
+    return 0;
+  }
+  
+  TH1F* hEnergyDist     = GetEnergyDistribution(det,ring,eta);
+  TF1*  fitFunc         = hEnergyDist->GetFunction("FMDfitFunc");
+  if(!fitFunc) return 0;
+  Float_t ThreeMIPweight    = fitFunc->GetParameter(4);
+  
+  if(ThreeMIPweight < 1e-05)
+    ThreeMIPweight = 0;
+  
+  Float_t TwoMIPweight    = fitFunc->GetParameter(3);
+  
+  if(TwoMIPweight < 1e-05)
+    ThreeMIPweight = 0;
+    
+  return ThreeMIPweight;
+}
+//____________________________________________________________________
+Int_t AliFMDAnaParameters::GetNetaBins() {
+  return GetBackgroundCorrection(1,'I',0)->GetNbinsX();
+  
+}
+//____________________________________________________________________
+Float_t AliFMDAnaParameters::GetEtaMin() {
 
+  return GetBackgroundCorrection(1,'I',0)->GetXaxis()->GetXmin();
+} 
+//____________________________________________________________________
+Float_t AliFMDAnaParameters::GetEtaMax() {
+
+return GetBackgroundCorrection(1,'I',0)->GetXaxis()->GetXmax();
 
+}
+//____________________________________________________________________
 
 TH2F* AliFMDAnaParameters::GetBackgroundCorrection(Int_t det, 
                                                   Char_t ring, 
index a7ff67ef0690f478e0640bc4ada442e1b6b902c8..cccd9d3d7fd1930681aa782e8b7d2a85063b1ddc 100644 (file)
@@ -61,8 +61,13 @@ public:
   void Init(Bool_t forceReInit=kTRUE, UInt_t what=kBackgroundCorrection|kEnergyDistributions);
   Float_t GetVtxCutZ();
   Int_t GetNvtxBins();
-  Float_t GetMPV(Int_t det, Char_t ring);
-  Float_t GetSigma(Int_t det, Char_t ring);
+  Int_t GetNetaBins();
+  Float_t GetEtaMin();  
+  Float_t GetEtaMax();
+  Float_t GetMPV(Int_t det, Char_t ring, Float_t eta);
+  Float_t GetSigma(Int_t det, Char_t ring, Float_t eta);
+  Float_t Get2MIPWeight(Int_t det, Char_t ring, Float_t eta);
+  Float_t Get3MIPWeight(Int_t det, Char_t ring, Float_t eta);
   static const char* GetBackgroundPath() { return fgkBackgroundCorrection;}
   static const char* GetEdistPath()      { return fgkEnergyDists;}
   TH2F* GetBackgroundCorrection(Int_t det, Char_t ring, Int_t vtxbin);
@@ -87,7 +92,7 @@ protected:
   AliCDBEntry* GetEntry(const char* path, Bool_t fatal=kTRUE) const ;
   void InitBackground();
   void InitEnergyDists();
-  TH1F* GetEnergyDistribution(Int_t det, Char_t ring);
+  TH1F* GetEnergyDistribution(Int_t det, Char_t ring, Float_t eta);
   TObjArray* GetBackgroundArray();
   
   TAxis* GetRefAxis();