Added new cuts for (TPC pid & TOF match) and (TPC pid & TOF veto) for K* pA analysis
[u/mrichter/AliRoot.git] / PWGLF / RESONANCES / AliRsnMiniMonitor.h
1 #ifndef AliRsnMiniMonitor_H
2 #define AliRsnMiniMonitor_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 ////////////////////////////////////////////////////////////////////////////////
8 //
9 //  Monitors
10 //
11 ////////////////////////////////////////////////////////////////////////////////
12
13 #include "TObjArray.h"
14
15 class AliRsnDaughter;
16 class AliRsnEvent;
17
18 class AliRsnMiniMonitor : public TNamed {
19 public:
20
21    enum EType {
22       kTrackPt,           // pt spectrum of single tracks with a given cut ID and charge
23       kdEdxTPCvsP,        // TPC signal vs. momentum
24       ktimeTOFvsPKaon,    // TOF time vs. momentum
25       ktimeTOFvsPPion,    // TOF time vs. momentum
26       ktimeTOFvsPProton,  // TOF time vs. momentum
27       kTypes              // total number of cuts
28    };
29
30    AliRsnMiniMonitor();
31    AliRsnMiniMonitor(const char *name, EType type, Int_t cutID);
32    AliRsnMiniMonitor(const AliRsnMiniMonitor &copy);
33    AliRsnMiniMonitor &operator=(const AliRsnMiniMonitor &copy);
34    virtual ~AliRsnMiniMonitor() { }
35
36    EType              GetType()   {return fType;}
37    Int_t              GetCutID()  {return fCutID;}
38    Char_t             GetCharge() {return fCharge;}
39    Int_t              GetListID() {return fListID;}
40
41    void               SetType(EType type)  {fType = type;}
42    void               SetCutID(Int_t id)   {fCutID = id;}
43    void               SetCharge(Char_t ch) {fCharge = ch;}
44
45    static const char *Label(EType type);
46    Bool_t             Init(const char *name, TList *list);
47    Bool_t             Fill(AliRsnDaughter *track, AliRsnEvent *event);
48
49 protected:
50
51    EType      fType;     //  monitor type
52    Int_t      fCutID;    //  ID for cut to be used
53    Char_t     fCharge;   //  charge to be used
54    Int_t      fListID;   //  histogram ID in the list
55    TList     *fList;     //! global output list
56
57    ClassDef(AliRsnMiniMonitor, 1)  //  AliRsnMiniMonitor class
58 };
59
60 inline const char *AliRsnMiniMonitor::Label(EType type)
61 {
62    switch (type) {
63       case kdEdxTPCvsP      : return "TPCsignal";
64       case ktimeTOFvsPPion  : return "TOFsignalPi";
65       case ktimeTOFvsPKaon  : return "TOFsignalK";
66       case ktimeTOFvsPProton: return "TOFsignalP";
67       default               : return "X";
68    }
69 }
70
71 #endif