618e78bb953baec23e9f636aa03f7bc67c5ead5e
[u/mrichter/AliRoot.git] / PWG4 / PartCorrBase / AliAODPWG4ParticleCorrelation.h
1 #ifndef ALIAODPWG4PARTICLECORRELATION_H
2 #define ALIAODPWG4PARTICLECORRELATION_H
3 /* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id: AliAODPWG4ParticleCorrelation.h  $ */
7
8 //-------------------------------------------------------------------------
9 //     Copy of AOD photon class, adapted for particle identification
10 //     and correlations analysis
11 //     Author: Yves Schutz, CERN, Gustavo Conesa, INFN
12 //-------------------------------------------------------------------------
13
14 //-- ROOT system --
15
16 //-- Analysis system
17 #include "AliAODJet.h" 
18 #include "AliAODPWG4Particle.h"
19
20 class AliAODPWG4ParticleCorrelation : public AliAODPWG4Particle {
21
22  public:
23     AliAODPWG4ParticleCorrelation();
24     AliAODPWG4ParticleCorrelation(Double_t px, Double_t py, Double_t pz, Double_t e);
25     AliAODPWG4ParticleCorrelation(TLorentzVector & p);  
26     AliAODPWG4ParticleCorrelation(AliAODPWG4Particle & p);  
27
28     virtual ~AliAODPWG4ParticleCorrelation();
29     AliAODPWG4ParticleCorrelation(const AliAODPWG4ParticleCorrelation& photon); 
30     AliAODPWG4ParticleCorrelation& operator=(const AliAODPWG4ParticleCorrelation& photon);
31
32     virtual Float_t IsIsolated() const { return fIsolated ;}
33     virtual void    SetIsolated(Bool_t iso) {fIsolated = iso ;}
34
35     virtual TRefArray* GetRefTracks()    const { return  fRefTracks;}
36     virtual void       AddTrack(TObject *tr) {fRefTracks->Add(tr);}
37     virtual TObject*   GetTrack(Int_t i) const { return fRefTracks->At(i);}
38
39     virtual TRefArray* GetRefClusters()    const { return  fRefClusters;}
40     virtual void       AddCluster(TObject *tr) {fRefClusters->Add(tr);}
41     virtual TObject*   GetCluster(Int_t i) const { return fRefClusters->At(i);}
42
43     virtual TRefArray* GetRefIsolationConeTracks()  const { return  fRefIsolationConeTracks;}
44     virtual void     AddIsolationConeTrack(TObject *tr) {fRefIsolationConeTracks->Add(tr);}
45     virtual TObject* GetIsolationConeTrack(Int_t i) const { return fRefIsolationConeTracks->At(i);}
46
47     virtual TRefArray* GetRefIsolationConeClusters()  const { return  fRefIsolationConeClusters;}
48     virtual void     AddIsolationConeCluster(TObject *tr) {fRefIsolationConeClusters->Add(tr);}
49     virtual TObject* GetIsolationConeCluster(Int_t i) const { return fRefIsolationConeClusters->At(i);}
50
51     virtual TRefArray* GetRefBackgroundTracks()  const { return  fRefBackgroundTracks;}
52     virtual void     AddBackgroundTrack(TObject *tr) {fRefBackgroundTracks->Add(tr);}
53     virtual TObject* GetBackgroundTrack(Int_t i) const { return fRefBackgroundTracks->At(i);}
54
55     virtual TRefArray* GetRefBackgroundClusters()    const { return  fRefBackgroundClusters;}
56     virtual void       AddBackgroundCluster(TObject *tr) {fRefBackgroundClusters->Add(tr);}
57     virtual TObject*   GetBackgroundCluster(Int_t i) const { return fRefBackgroundClusters->At(i);}
58
59     virtual TString GetLeadingDetector()   const {return fLeadingDetector ; }
60     virtual void SetLeadingDetector(TString d)   {fLeadingDetector = d ; }
61     
62     virtual TLorentzVector  GetLeading()               const { return  fLeading;}
63     virtual void  SetLeading(TLorentzVector lead) {fLeading = lead;}
64
65     virtual TLorentzVector  GetCorrelatedJet()         const { return  fCorrJet;}
66     virtual void  SetCorrelatedJet(TLorentzVector jet) {fCorrJet = jet;}
67
68     virtual TLorentzVector  GetCorrelatedBackground()  const { return  fCorrBkg;}
69     virtual void  SetCorrelatedBackground(TLorentzVector bkg) {fCorrBkg = bkg;}
70
71     virtual void SetRefJet(AliAODJet* jet)  { fRefJet = jet;}
72     virtual      AliAODJet* GetJet() const {return ((AliAODJet*) fRefJet.GetObject());}
73     virtual TRef GetRefJet()         const {return fRefJet;}
74
75     virtual void   Print(Option_t* /*option*/) const;
76
77  private:
78
79         Float_t            fIsolated ; //Particle is isolated or not
80         
81     TRefArray*     fRefTracks;  // array of references to the tracks belonging to the jet / all selected hadrons  
82     TRefArray*     fRefClusters; // array of references to the clusters belonging to the jet / all selected hadrons  
83     
84     TRefArray*     fRefIsolationConeTracks;  // array of references to the tracks belonging to the cone around direct particle candidate  
85     TRefArray*     fRefIsolationConeClusters; // array of references to the clusters belonging to the  cone around direct particle candidate  
86
87     TRefArray*     fRefBackgroundTracks;  // array of references to the tracks for background stimation
88     TRefArray*     fRefBackgroundClusters; // array of references to the clusters for background stimation 
89
90     TString        fLeadingDetector; // Detector where leading particle was measured.
91     TLorentzVector fLeading;     // Leading Particle 4-momentum vector
92     
93     TLorentzVector fCorrJet;     // Jet  4-momentum vector
94     TLorentzVector fCorrBkg;     // Background  4-momentum vector
95
96     TRef           fRefJet; // Rerence to jet found with JETAN and correlated with particle
97
98     ClassDef(AliAODPWG4ParticleCorrelation,1);
99 };
100
101
102 #endif //ALIAODPWG4PARTICLECORRELATION_H