]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGDQ/dielectron/AliDielectronSignalFunc.h
-coverity fixes by Ionut
[u/mrichter/AliRoot.git] / PWGDQ / dielectron / AliDielectronSignalFunc.h
index 3797350942d4a99351eb69574e42831e05e45f8f..fc8f9576c1d05bc4eeb3c7615bc53009a5c24dd5 100644 (file)
@@ -66,7 +66,6 @@
   signalProcess->Print();
 */
 
-
 #include <TVectorT.h>
 #include <TString.h>
 #include <TH1F.h>
@@ -86,9 +85,11 @@ public:
   void ProcessFit(TObjArray * const arrhist);      // fit the SE +- distribution
   void ProcessLS(TObjArray * const arrhist);       // substract the fitted SE like-sign background
   void ProcessEM(TObjArray * const arrhist);       // substract the fitted SE+ME like-sign background
-  
+
+  void SetMCSignalShape(TH1F* hist) { fgHistSimPM=hist; }
   void SetUseIntegral(Bool_t flag=kTRUE) {fUseIntegral = flag;};
   void SetFunctions(TF1 * const combined, TF1 * const sig=0, TF1 * const back=0, Int_t parM=1, Int_t parMres=2);
+  void CombineFunc(TF1 * const peak=0, TF1 * const bgnd=0);
   void SetFitOption(const char* opt) {
     fFitOpt=opt; 
     fFitOpt.ToLower(); 
@@ -100,12 +101,23 @@ public:
   TF1*  GetBackgroundFunction() const { return fFuncBackground;    }
   TF1*  GetCombinedFunction()   const { return fFuncSigBack;       }
   
+  Int_t GetPolDeg()             const { return fPolDeg;            }
+  Int_t GetDof()                const { return fDof;            }
+  Double_t GetChi2Dof()         const { return fChi2Dof;           }
+  
   virtual void Draw(const Option_t* option = "");
   
 private:
 
-  TF1 *fFuncSignal;                // Function for the signal description
-  TF1 *fFuncBackground;            // Function for the background description
+  // peak functions
+  static Double_t PeakFunMC(const Double_t *x, const Double_t *par); // peak function from a mc histo
+  static Double_t PeakFunCB(const Double_t *x, const Double_t *par); // crystal ball function
+  static Double_t PeakFunGaus(const Double_t *x, const Double_t *par); // gaussian
+
+  static Double_t PeakBgndFun(const Double_t *x, const Double_t *par); // combine any bgrd and any peak function
+
+  static TF1 *fFuncSignal;                // Function for the signal description
+  static TF1 *fFuncBackground;            // Function for the background description
   TF1 *fFuncSigBack;               // Combined function signal plus background
   Int_t fParMass;                  // the index of the parameter corresponding to the resonance mass
   Int_t fParMassWidth;             // the index of the parameter corresponding to the resonance mass width
@@ -113,6 +125,15 @@ private:
   TString fFitOpt;             // fit option used
   Bool_t fUseIntegral;         // use the integral of the fitted functions to extract signal and background
 
+  Int_t    fPolDeg;                // polynomial degree of the background function
+  Int_t    fDof;                   // degrees of freedom
+  Double_t fChi2Dof;               // chi2/dof of the fitted inv mass spectra
+  
+  static Int_t    fNparPeak;              // number of parameters for peak function
+  static Int_t    fNparBgnd;              // number of parameters for background function
+
+  static TH1F* fgHistSimPM;         // simulated peak shape 
+  
   ClassDef(AliDielectronSignalFunc,2)         // Dielectron SignalFunc
 };