ROOT logo
/**************************************************************************
* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
*                                                                        *
* Author: The ALICE Off-line Project.                                    *
* Contributors are mentioned in the code where appropriate.              *
*                                                                        *
* Permission to use, copy, modify and distribute this software and its   *
* documentation strictly for non-commercial purposes is hereby granted   *
* without fee, provided that the above copyright notice appears in all   *
* copies and that both the copyright notice and this permission notice   *
* appear in the supporting documentation. The authors make no claims     *
* about the suitability of this software for any purpose. It is          *
* provided "as is" without express or implied warranty.                  *
**************************************************************************/
//
// Container for TRD PID Response Objects stored in the OADB
//
#ifndef ALITRDPIDRESPONSEOBJECT_H
#define ALITRDPIDRESPONSEOBJECT_H

#ifndef ROOT_TNamed
#include <TNamed.h>
#endif

#ifndef AliTRDPIDRESPONSE_H
#include "AliTRDPIDResponse.h"
#endif


class AliTRDPIDParams;
class AliTRDPIDReference;
class AliTRDPIDResponse;

class AliTRDPIDResponseObject : public TNamed{
public:
    enum ETRDPIDResponseObjectStatus {
	kIsOwner = BIT(14)
    };

    AliTRDPIDResponseObject();
    AliTRDPIDResponseObject(const char *name);
    AliTRDPIDResponseObject(const AliTRDPIDResponseObject &ref);
    AliTRDPIDResponseObject &operator=(const AliTRDPIDResponseObject &ref);
    virtual ~AliTRDPIDResponseObject();

    virtual void Print(Option_t *opt) const;

    void SetPIDParams(AliTRDPIDParams *params,AliTRDPIDResponse::ETRDPIDMethod method=AliTRDPIDResponse::kLQ1D);
    void SetPIDReference(AliTRDPIDReference *params,AliTRDPIDResponse::ETRDPIDMethod method=AliTRDPIDResponse::kLQ1D);

    // Derive reference
    TObject *GetLowerReference(AliPID::EParticleType spec, Float_t p, Float_t &pLower,AliTRDPIDResponse::ETRDPIDMethod method=AliTRDPIDResponse::kLQ1D) const;
    TObject *GetUpperReference(AliPID::EParticleType spec, Float_t p, Float_t &pUpper,AliTRDPIDResponse::ETRDPIDMethod method=AliTRDPIDResponse::kLQ1D) const;

    Int_t GetNumberOfMomentumBins(AliTRDPIDResponse::ETRDPIDMethod method=AliTRDPIDResponse::kLQ1D) const;

    // Derive threshold params
    Bool_t GetThresholdParameters(Int_t ntracklets, Double_t efficiency, Double_t *params,Double_t centrality = -1,AliTRDPIDResponse::ETRDPIDMethod method=AliTRDPIDResponse::kLQ1D) const;

    // Number of SlicesQ0
    Int_t GetNSlicesQ0() const{return fNSlicesQ0;}
    void SetNSlicesQ0(Int_t nsl){fNSlicesQ0=nsl;}

private:

      AliTRDPIDParams *fPIDParams[AliTRDPIDResponse::kNMethod]; // Contains Thresholds
      AliTRDPIDReference *fPIDReference[AliTRDPIDResponse::kNMethod]; // Contains References
      Int_t fNSlicesQ0; // Number of Slices for Q0

    ClassDef(AliTRDPIDResponseObject, 1);
};
#endif
 AliTRDPIDResponseObject.h:1
 AliTRDPIDResponseObject.h:2
 AliTRDPIDResponseObject.h:3
 AliTRDPIDResponseObject.h:4
 AliTRDPIDResponseObject.h:5
 AliTRDPIDResponseObject.h:6
 AliTRDPIDResponseObject.h:7
 AliTRDPIDResponseObject.h:8
 AliTRDPIDResponseObject.h:9
 AliTRDPIDResponseObject.h:10
 AliTRDPIDResponseObject.h:11
 AliTRDPIDResponseObject.h:12
 AliTRDPIDResponseObject.h:13
 AliTRDPIDResponseObject.h:14
 AliTRDPIDResponseObject.h:15
 AliTRDPIDResponseObject.h:16
 AliTRDPIDResponseObject.h:17
 AliTRDPIDResponseObject.h:18
 AliTRDPIDResponseObject.h:19
 AliTRDPIDResponseObject.h:20
 AliTRDPIDResponseObject.h:21
 AliTRDPIDResponseObject.h:22
 AliTRDPIDResponseObject.h:23
 AliTRDPIDResponseObject.h:24
 AliTRDPIDResponseObject.h:25
 AliTRDPIDResponseObject.h:26
 AliTRDPIDResponseObject.h:27
 AliTRDPIDResponseObject.h:28
 AliTRDPIDResponseObject.h:29
 AliTRDPIDResponseObject.h:30
 AliTRDPIDResponseObject.h:31
 AliTRDPIDResponseObject.h:32
 AliTRDPIDResponseObject.h:33
 AliTRDPIDResponseObject.h:34
 AliTRDPIDResponseObject.h:35
 AliTRDPIDResponseObject.h:36
 AliTRDPIDResponseObject.h:37
 AliTRDPIDResponseObject.h:38
 AliTRDPIDResponseObject.h:39
 AliTRDPIDResponseObject.h:40
 AliTRDPIDResponseObject.h:41
 AliTRDPIDResponseObject.h:42
 AliTRDPIDResponseObject.h:43
 AliTRDPIDResponseObject.h:44
 AliTRDPIDResponseObject.h:45
 AliTRDPIDResponseObject.h:46
 AliTRDPIDResponseObject.h:47
 AliTRDPIDResponseObject.h:48
 AliTRDPIDResponseObject.h:49
 AliTRDPIDResponseObject.h:50
 AliTRDPIDResponseObject.h:51
 AliTRDPIDResponseObject.h:52
 AliTRDPIDResponseObject.h:53
 AliTRDPIDResponseObject.h:54
 AliTRDPIDResponseObject.h:55
 AliTRDPIDResponseObject.h:56
 AliTRDPIDResponseObject.h:57
 AliTRDPIDResponseObject.h:58
 AliTRDPIDResponseObject.h:59
 AliTRDPIDResponseObject.h:60
 AliTRDPIDResponseObject.h:61
 AliTRDPIDResponseObject.h:62
 AliTRDPIDResponseObject.h:63
 AliTRDPIDResponseObject.h:64
 AliTRDPIDResponseObject.h:65
 AliTRDPIDResponseObject.h:66
 AliTRDPIDResponseObject.h:67
 AliTRDPIDResponseObject.h:68
 AliTRDPIDResponseObject.h:69
 AliTRDPIDResponseObject.h:70
 AliTRDPIDResponseObject.h:71
 AliTRDPIDResponseObject.h:72