add GetNAcceptedClusters() function
[u/mrichter/AliRoot.git] / PWG / EMCAL / AliClusterContainer.h
1 #ifndef AliClusterContainer_H
2 #define AliClusterContainer_H
3
4 // $Id$
5
6 class TLorentzVector;
7
8 class AliVEvent;
9 class AliVCluster;
10
11 #include "AliEmcalContainer.h"
12
13 class AliClusterContainer : public AliEmcalContainer {
14  public:
15   AliClusterContainer();
16   AliClusterContainer(const char *name); 
17   virtual ~AliClusterContainer(){;}
18
19   Bool_t                      AcceptCluster(AliVCluster         *vp) const;
20   AliVCluster                *GetAcceptCluster(Int_t i)              const;
21   AliVCluster                *GetAcceptClusterWithLabel(Int_t lab)   const;
22   AliVCluster                *GetCluster(Int_t i)                    const;
23   AliVCluster                *GetClusterWithLabel(Int_t lab)         const;
24   AliVCluster                *GetLeadingCluster(const char* opt="")       ;
25   void                        GetMomentum(TLorentzVector &mom, Int_t i) const;
26   AliVCluster                *GetNextAcceptCluster(Int_t i=-1)            ;
27   AliVCluster                *GetNextCluster(Int_t i=-1)                  ;
28   Int_t                       GetNClusters()                         const { return GetNEntries();   }
29   Int_t                       GetNAcceptedClusters()                      ;
30   void                        SetClassName(const char *clname);
31   void                        SetClusECut(Double_t cut)                    { fClusECut      = cut ; }
32   void                        SetClusPtCut(Double_t cut)                   { fClusPtCut      = cut ; }
33   void                        SetClusTimeCut(Double_t min, Double_t max)   { fClusTimeCutLow = min ; fClusTimeCutUp = max ; }
34   void                        SetClusterBitMap(UInt_t m)                   { fClusterBitMap     = m ; }
35   void                        SetMCClusterBitMap(UInt_t m)                 { fMCClusterBitMap   = m ; }
36   void                        SetMinMCLabel(Int_t s)                       { fMinMCLabel        = s ; }
37
38  protected:
39   Double_t                    fClusPtCut;                  // cut on cluster pt
40   Double_t                    fClusECut;                   // cut on cluster E
41   Double_t                    fClusTimeCutLow;             // low time cut for clusters
42   Double_t                    fClusTimeCutUp;              // up time cut for clusters
43   UInt_t                      fClusterBitMap;              // bit map of accepted clusters (non MC)
44   UInt_t                      fMCClusterBitMap;            // bit map of accepted MC clusters
45   Int_t                       fMinMCLabel;                 // minimum MC label value for the tracks/clusters being considered MC particles
46
47  private:
48   AliClusterContainer(const AliClusterContainer& obj); // copy constructor
49   AliClusterContainer& operator=(const AliClusterContainer& other); // assignment
50
51   ClassDef(AliClusterContainer,2);
52 };
53
54 #endif
55