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

//---------------------------------------------------------------//
//      Class to store raw probabilities and nsigmas             //
//        of all detectors                                       //
//                                                               //
//                                                               //
//   Origin: Jens Wiechula, Uni Tuebingen, jens.wiechula@cern.ch //
//---------------------------------------------------------------//

#include <TObject.h>
#include <TClonesArray.h>

#include "AliPID.h"
#include "AliPIDResponse.h"

class AliDetectorPID : public TObject {
public:
  AliDetectorPID();
  AliDetectorPID(const AliDetectorPID &pid);
  virtual ~AliDetectorPID();
  AliDetectorPID& operator= (const AliDetectorPID &pid);
  
  void SetRawProbability(AliPIDResponse::EDetector det, const Double_t prob[], Int_t nspecies, AliPIDResponse::EDetPidStatus status);
  void SetNumberOfSigmas(AliPIDResponse::EDetector det, const Double_t nsig[], Int_t nspecies, AliPIDResponse::EDetPidStatus status=AliPIDResponse::kDetPidOk);

  AliPIDResponse::EDetPidStatus GetRawProbability(AliPIDResponse::EDetector det, Double_t prob[], Int_t nspecies) const;
  AliPIDResponse::EDetPidStatus GetNumberOfSigmas(AliPIDResponse::EDetector det, Double_t nsig[], Int_t nspecies) const;
  
  Double_t GetRawProbability(AliPIDResponse::EDetector det, AliPID::EParticleType type) const;
  Double_t GetNumberOfSigmas(AliPIDResponse::EDetector det, AliPID::EParticleType type) const;

  AliPIDResponse::EDetPidStatus GetRawProbability(AliPIDResponse::EDetector det, AliPID::EParticleType type, Double_t &prob) const;
  AliPIDResponse::EDetPidStatus GetNumberOfSigmas(AliPIDResponse::EDetector det, AliPID::EParticleType type, Double_t &nsig) const;
  
  Bool_t HasRawProbability(AliPIDResponse::EDetector det) const { return fArrRawProbabilities.UncheckedAt((Int_t)det)!=0x0; }
  Bool_t HasNumberOfSigmas (AliPIDResponse::EDetector det) const { return fArrNsigmas.UncheckedAt((Int_t)det)!=0x0;          }

  AliPIDResponse::EDetPidStatus GetPIDStatus(AliPIDResponse::EDetector det) const;
private:
  TClonesArray fArrNsigmas;          // array to store nsigma values of all detectors
  TClonesArray fArrRawProbabilities; // array to strore raw probabilities of all detectors

  ClassDef(AliDetectorPID,1);        //Store raw probabilities and nsigmas for all detectors
};

#endif

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