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.                  *
**************************************************************************/
//
// Class AliHFEpidQAmanager
// Steering PID QA
// More information can be found inside the implementation file
//
#ifndef ALIHFEPIDQAMANAGER_H
#define ALIHFEPIDQAMANAGER_H

#ifndef ROOT_TObject
#include <TObject.h>
#endif

#ifndef ALIHFEPID_H
#include "AliHFEpid.h"
#endif

#ifndef ALIHFEDETPIDQA_H
#include "AliHFEdetPIDqa.h"
#endif

class TList; 
class AliVParticle;
class AliESDpid;
class AliAODpidUtil;
class AliHFEpidObject;

class AliHFEpidQAmanager : public TObject{
  public:
    AliHFEpidQAmanager();
    AliHFEpidQAmanager(const AliHFEpidQAmanager &ref);
    AliHFEpidQAmanager &operator=(const AliHFEpidQAmanager &ref);
    void Copy(TObject &o) const;
    ~AliHFEpidQAmanager();

    void Initialize(AliHFEpid *pid);
    void ProcessTrack(const AliHFEpidObject *track, AliHFEpid::EDETtype_t det, AliHFEdetPIDqa::EStep_t step);
    AliHFEdetPIDqa *GetDetectorPIDqa(AliHFEpid::EDETtype_t detector) const { return fDetPIDqa[detector]; }
    AliHFEpidBase *GetDetectorPID(AliHFEpid::EDETtype_t detector) const { return fDetPID[detector]; }
    TList *MakeList(const Char_t *name);
    void SetHighResolutionHistos() { SetBit(kHighResolutionHistos, kTRUE); };
    Bool_t HasHighResolutionHistos() const { return TestBit(kHighResolutionHistos); }
    void SetMidResolutionHistos() { SetBit(kMidResolutionHistos, kTRUE); };
    Bool_t HasMidResolutionHistos() const { return TestBit(kMidResolutionHistos); }
    void SetHighResolutionEtaHistos() { SetBit(kHighResolutionEtaHistos, kTRUE); };
    Bool_t HasHighResolutionEtaHistos() const { return TestBit(kHighResolutionEtaHistos); }
    void SetFillMultiplicity() { SetBit(kFillMultiplicity, kTRUE); };
    Bool_t HasFillMultiplicity() const { return TestBit(kFillMultiplicity); }

  protected:
    enum{
      kIsOwner = BIT(14),
      kHighResolutionHistos = BIT(15),
      kMidResolutionHistos = BIT(16),
      kHighResolutionEtaHistos = BIT(17),
      kFillMultiplicity = BIT(18)
    };
    Bool_t IsOwner() const { return TestBit(kIsOwner); }
    void SetOwner() { SetBit(kIsOwner, kTRUE); }
    void ReleaseOwnerShip() { SetBit(kIsOwner, kFALSE); }
    void CreateDetPIDqa(AliHFEpid::EDETtype_t detector);

  private:
    AliHFEdetPIDqa *fDetPIDqa[AliHFEpid::kNdetectorPID]; //! Detector PID QA objects
    AliHFEpidBase *fDetPID[AliHFEpid::kNdetectorPID];    //  Detector PID objects

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