ROOT logo
#ifndef AliEMCALPIDResponse_h
#define AliEMCALPIDResponse_h

/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

//////////////////////////////////////////////////////////////////////////
//                                                                      //
// AliEMCALPIDResponse                                                  //
//                                                                      //
// EMCAL class to perfom PID                                            //
// This is a prototype and still under development                      //
//                                                                      //
// Author: Michael Weber (m.weber@cern.ch)                              //
//////////////////////////////////////////////////////////////////////////

#include "AliPID.h"
#include <TVectorD.h>

class TF1;

class AliEMCALPIDResponse: public TObject 
{
public : 
    AliEMCALPIDResponse();    //ctor
    AliEMCALPIDResponse( const AliEMCALPIDResponse& other);                //copy ructor
    AliEMCALPIDResponse &operator=( const AliEMCALPIDResponse& other);     //assignment operator

    virtual ~AliEMCALPIDResponse();     //dtor
  

    // Getters
    Double_t  GetNumberOfSigmas( Float_t pt,  Float_t eop, AliPID::EParticleType n,  Int_t charge) const;
    Double_t  GetExpectedNorm  ( Float_t pt, AliPID::EParticleType n,  Int_t charge) const;
  
    //Setters
    void   SetPIDParams(const TObjArray * params) { fkPIDParams = params; }
    void   SetCentrality(Float_t currentCentrality) { fCurrCentrality = currentCentrality;}
    

    // EMCAL probability
    Bool_t ComputeEMCALProbability(Int_t nSpecies, Float_t pt, Float_t eop, Int_t charge, Double_t *pEMCAL) const;

protected:
  
private:

  TF1 *fNorm;                            // Gauss function for normalizing NON electron probabilities 

  Double_t fCurrCentrality;              // current (in the current event) centrality percentile 

  const TObjArray *fkPIDParams;               // PID Params

  const TVectorD* GetParams(Int_t nParticle, Float_t fPt, Int_t charge) const; 

  ClassDef(AliEMCALPIDResponse, 2)
};

#endif // #ifdef AliEMCALPIDResponse_cxx

 AliEMCALPIDResponse.h:1
 AliEMCALPIDResponse.h:2
 AliEMCALPIDResponse.h:3
 AliEMCALPIDResponse.h:4
 AliEMCALPIDResponse.h:5
 AliEMCALPIDResponse.h:6
 AliEMCALPIDResponse.h:7
 AliEMCALPIDResponse.h:8
 AliEMCALPIDResponse.h:9
 AliEMCALPIDResponse.h:10
 AliEMCALPIDResponse.h:11
 AliEMCALPIDResponse.h:12
 AliEMCALPIDResponse.h:13
 AliEMCALPIDResponse.h:14
 AliEMCALPIDResponse.h:15
 AliEMCALPIDResponse.h:16
 AliEMCALPIDResponse.h:17
 AliEMCALPIDResponse.h:18
 AliEMCALPIDResponse.h:19
 AliEMCALPIDResponse.h:20
 AliEMCALPIDResponse.h:21
 AliEMCALPIDResponse.h:22
 AliEMCALPIDResponse.h:23
 AliEMCALPIDResponse.h:24
 AliEMCALPIDResponse.h:25
 AliEMCALPIDResponse.h:26
 AliEMCALPIDResponse.h:27
 AliEMCALPIDResponse.h:28
 AliEMCALPIDResponse.h:29
 AliEMCALPIDResponse.h:30
 AliEMCALPIDResponse.h:31
 AliEMCALPIDResponse.h:32
 AliEMCALPIDResponse.h:33
 AliEMCALPIDResponse.h:34
 AliEMCALPIDResponse.h:35
 AliEMCALPIDResponse.h:36
 AliEMCALPIDResponse.h:37
 AliEMCALPIDResponse.h:38
 AliEMCALPIDResponse.h:39
 AliEMCALPIDResponse.h:40
 AliEMCALPIDResponse.h:41
 AliEMCALPIDResponse.h:42
 AliEMCALPIDResponse.h:43
 AliEMCALPIDResponse.h:44
 AliEMCALPIDResponse.h:45
 AliEMCALPIDResponse.h:46
 AliEMCALPIDResponse.h:47
 AliEMCALPIDResponse.h:48
 AliEMCALPIDResponse.h:49
 AliEMCALPIDResponse.h:50
 AliEMCALPIDResponse.h:51
 AliEMCALPIDResponse.h:52
 AliEMCALPIDResponse.h:53
 AliEMCALPIDResponse.h:54
 AliEMCALPIDResponse.h:55
 AliEMCALPIDResponse.h:56
 AliEMCALPIDResponse.h:57
 AliEMCALPIDResponse.h:58
 AliEMCALPIDResponse.h:59
 AliEMCALPIDResponse.h:60