add new data members, move members to the correlation class to the base one, and...
[u/mrichter/AliRoot.git] / STEER / AOD / 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 //     AOD objects class in use in the CaloTrackCorrelations
10 //     analysis pacackge ($ALICE_ROOT/PWGGA/CaloTrackCorrelations)
11 //     Includes correlation objects
12 //
13 //     Author: Gustavo Conesa Balbastre - CNRS-LPSC-Grenoble
14 //-------------------------------------------------------------------------
15
16 //-- ROOT system --
17 #include "TList.h"
18 #include "AliAODJet.h"
19
20 //-- Analysis system
21
22
23 #include "AliAODPWG4Particle.h"
24
25 class AliAODPWG4ParticleCorrelation : public AliAODPWG4Particle {
26
27  public:
28   AliAODPWG4ParticleCorrelation();
29   AliAODPWG4ParticleCorrelation(Double_t px, Double_t py, Double_t pz, Double_t e);
30   AliAODPWG4ParticleCorrelation(TLorentzVector & p);  
31   AliAODPWG4ParticleCorrelation(AliAODPWG4Particle & p);  
32   
33   virtual ~AliAODPWG4ParticleCorrelation();
34   virtual void Clear(const Option_t* /*opt*/);
35   
36   AliAODPWG4ParticleCorrelation(const AliAODPWG4ParticleCorrelation& photon); 
37 private:
38   AliAODPWG4ParticleCorrelation& operator=(const AliAODPWG4ParticleCorrelation& photon);
39   
40 public:
41   virtual TObjArray* GetObjArray(TString refname)  const { if(fListOfObjArrays) return (TObjArray*) fListOfObjArrays->FindObject(refname); 
42                                                            else return 0x0;} 
43   virtual TList*     GetObjArrayList()             const { return  fListOfObjArrays; } 
44   virtual void       AddObjArray(TObjArray * refarray)  { fListOfObjArrays->Add(refarray); }
45
46   virtual TString GetLeadingDetector()   const {return fLeadingDetector ; }
47   virtual void SetLeadingDetector(TString d)   {fLeadingDetector = d ; }
48   
49   virtual TLorentzVector  GetLeading()               const { return  fLeading;}
50   virtual void  SetLeading(TLorentzVector lead) {fLeading = lead;}
51   
52   virtual TLorentzVector  GetCorrelatedJet()         const { return  fCorrJet;}
53   virtual void  SetCorrelatedJet(TLorentzVector jet) {fCorrJet = jet;}
54   
55   virtual TLorentzVector  GetCorrelatedBackground()  const { return  fCorrBkg;}
56   virtual void  SetCorrelatedBackground(TLorentzVector bkg) {fCorrBkg = bkg;}
57   
58   virtual void SetRefJet(AliAODJet* jet)  { fRefJet = jet;}
59   virtual      AliAODJet* GetJet() const {return ((AliAODJet*) fRefJet.GetObject());}
60   virtual TRef GetRefJet()         const {return fRefJet;}
61   
62   virtual void   Print(Option_t* /*option*/) const;
63   
64  private:
65   TString        fLeadingDetector;  // Detector where leading particle was measured.
66   TLorentzVector fLeading;          // Leading Particle 4-momentum vector
67   TLorentzVector fCorrJet;          // Jet  4-momentum vector
68   TLorentzVector fCorrBkg;          // Background  4-momentum vector
69   TRef           fRefJet;           // Reference to jet found with JETAN and correlated with particle
70   TList   *      fListOfObjArrays ; // List with correlation reference arrays
71   
72   ClassDef(AliAODPWG4ParticleCorrelation, 5);
73 };
74
75
76 #endif //ALIAODPWG4PARTICLECORRELATION_H