]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGGA/PHOSTasks/ClusterSelection/AliPHOSClusterSelection.h
Implementet AliPHOSClusterSelection.cxx and fixed header.
[u/mrichter/AliRoot.git] / PWGGA / PHOSTasks / ClusterSelection / AliPHOSClusterSelection.h
1 #ifndef ALIPHOSCLUSTERSELECTION_CXX
2 #define ALIPHOSCLUSTERSELECTION_CXX
3
4  /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 // Class for selection of PHOS clusters
8 // Authors : Henrik Qvigstad
9 // Date    : 16.01.2014
10 /* $Id$ */
11
12
13 class AliVCluster;
14 class AliESDCaloCluster;
15 class AliAODCaloCluster;
16 class AliVEvent;
17
18 #include "TObject.h"
19
20 class AliPHOSClusterSelection : TObject {
21  public:
22   AliPHOSClusterSelection();
23   virtual ~AliPHOSClusterSelection();
24   
25   // Selection functions
26   virtual Bool_t IsSelected(AliVCluster* cluster) const;
27
28   virtual Bool_t IsSelectedCPV(AliVCluster* cluster) const;
29   virtual Bool_t IsSelectedUnfolded(AliVCluster* cluster) const;
30   virtual Bool_t IsSelectedDisp(AliVCluster* cluster) const;
31   virtual Bool_t IsSelectedTOF(AliVCluster* cluster) const;
32
33   // Configuration Functions
34   AliPHOSClusterSelection* SetMinChargedParticleTrackDistance(Float_t distance);
35   AliPHOSClusterSelection* SetNotUnfolded(Bool_t notUnfolded);
36   AliPHOSClusterSelection* SetMaxDispR2(Float_t maxR2);
37   AliPHOSClusterSelection* SetCoreRadius(Float_t radius);
38   AliPHOSClusterSelection* SetMaxTOF(Float_t maxTOF);
39   
40   AliPHOSClusterSelection* SetMinSelection();
41
42   virtual TString ToString() const;
43   static Float_t  GetMinChargedParticleTrackDistance(const TString string);
44   static Bool_t   GetUnfolded(const TString string);
45   static Float_t  GetMaxDispR2(const TString string);
46   static Float_t  GetCoreRadius(const TString string);
47   static Float_t  GetMaxTOF(const TString string);
48
49
50  protected:
51   AliPHOSClusterSelection(const AliPHOSClusterSelection&); // not implemented
52   AliPHOSClusterSelection& operator=(const AliPHOSClusterSelection&); // not implemented
53   
54   Double_t TestCPV(Double_t dx, Double_t dz, Double_t pt, Int_t charge, Double_t mf);//Copied from Pi0Flow task
55   void  AliPHOSClusterSelection::EvalCoreLambdas(AliVCluster * clu, AliVCaloCells * cells,Double_t &m02, Double_t &m20);//Copied from Pi0Flow task
56   Bool_t AliAnalysisTaskPi0Flow::TestLambda(Double_t pt,Double_t l1,Double_t l2);//Copied from Pi0FlowTask
57   // Selection Parameters
58   Float_t fMinChargedParticleTrackDistance; // CPV, Charged Particle Veto
59   Bool_t fNotUnfolded; // if true, rejects Unfolded Clusters
60   Float_t fMaxDispR2; // dispersion cut
61   Float_t fCoreRadius; // Core radius
62   Float_t fMaxTOF; // TOF cut
63
64   AliVEvent* GetCurrentEvent() const;
65
66   ClassDef(AliPHOSClusterSelection, 1);
67 };
68
69 #endif
70