]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGHF/hfe/AliHFEpidQAmanager.h
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / PWGHF / hfe / AliHFEpidQAmanager.h
1 /**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3 *                                                                        *
4 * Author: The ALICE Off-line Project.                                    *
5 * Contributors are mentioned in the code where appropriate.              *
6 *                                                                        *
7 * Permission to use, copy, modify and distribute this software and its   *
8 * documentation strictly for non-commercial purposes is hereby granted   *
9 * without fee, provided that the above copyright notice appears in all   *
10 * copies and that both the copyright notice and this permission notice   *
11 * appear in the supporting documentation. The authors make no claims     *
12 * about the suitability of this software for any purpose. It is          *
13 * provided "as is" without express or implied warranty.                  *
14 **************************************************************************/
15 //
16 // Class AliHFEpidQAmanager
17 // Steering PID QA
18 // More information can be found inside the implementation file
19 //
20 #ifndef ALIHFEPIDQAMANAGER_H
21 #define ALIHFEPIDQAMANAGER_H
22
23 #ifndef ROOT_TObject
24 #include <TObject.h>
25 #endif
26
27 #ifndef ALIHFEPID_H
28 #include "AliHFEpid.h"
29 #endif
30
31 #ifndef ALIHFEDETPIDQA_H
32 #include "AliHFEdetPIDqa.h"
33 #endif
34
35 class TList; 
36 class AliVParticle;
37 class AliESDpid;
38 class AliAODpidUtil;
39 class AliHFEpidObject;
40
41 class AliHFEpidQAmanager : public TObject{
42   public:
43     AliHFEpidQAmanager();
44     AliHFEpidQAmanager(const AliHFEpidQAmanager &ref);
45     AliHFEpidQAmanager &operator=(const AliHFEpidQAmanager &ref);
46     void Copy(TObject &o) const;
47     ~AliHFEpidQAmanager();
48
49     void Initialize(AliHFEpid *pid);
50     void ProcessTrack(const AliHFEpidObject *track, AliHFEpid::EDETtype_t det, AliHFEdetPIDqa::EStep_t step);
51     AliHFEdetPIDqa *GetDetectorPIDqa(AliHFEpid::EDETtype_t detector) const { return fDetPIDqa[detector]; }
52     AliHFEpidBase *GetDetectorPID(AliHFEpid::EDETtype_t detector) const { return fDetPID[detector]; }
53     TList *MakeList(const Char_t *name);
54     void SetHighResolutionHistos() { SetBit(kHighResolutionHistos, kTRUE); };
55     Bool_t HasHighResolutionHistos() const { return TestBit(kHighResolutionHistos); }
56
57   protected:
58     enum{
59       kIsOwner = BIT(14),
60       kHighResolutionHistos = BIT(15)
61     };
62     Bool_t IsOwner() const { return TestBit(kIsOwner); }
63     void SetOwner() { SetBit(kIsOwner, kTRUE); }
64     void ReleaseOwnerShip() { SetBit(kIsOwner, kFALSE); }
65     void CreateDetPIDqa(AliHFEpid::EDETtype_t detector);
66
67   private:
68     AliHFEdetPIDqa *fDetPIDqa[AliHFEpid::kNdetectorPID]; //! Detector PID QA objects
69     AliHFEpidBase *fDetPID[AliHFEpid::kNdetectorPID];    //  Detector PID objects
70
71   ClassDef(AliHFEpidQAmanager, 0)
72 };
73 #endif