]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/GammaConv/AliAODConversionParticle.h
Updating conv correlation software
[u/mrichter/AliRoot.git] / PWG4 / GammaConv / AliAODConversionParticle.h
1 #ifndef ALIAODCONVERSIONPARTICLE_H
2 #define ALIAODCONVERSIONPARTICLE_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice     */
5
6 ////////////////////////////////////////////////
7 //--------------------------------------------- 
8 // Class containing the aod information from conversions
9 //---------------------------------------------
10 ////////////////////////////////////////////////
11
12 // --- ROOT system ---
13
14 class AliStack;
15 class AliESDEvent;
16 #include "TMath.h"
17 #include "AliAODPhoton.h"
18 #include "AliGammaConversionAODObject.h"
19 #include "AliKFParticle.h"
20
21 class AliAODConversionParticle : public AliAODPhoton {
22
23  public: 
24
25   //Constructors
26   AliAODConversionParticle();    
27   AliAODConversionParticle(TLorentzVector& momentum); 
28   AliAODConversionParticle(AliGammaConversionAODObject *obj);
29   AliAODConversionParticle(AliKFParticle * gammakf, Int_t label1, Int_t label2);
30
31   //Constructor Mother Particle
32   AliAODConversionParticle(AliAODConversionParticle *y1,AliAODConversionParticle *y2);
33
34   //Copy Constructor
35   AliAODConversionParticle(const AliAODConversionParticle & g);           
36   //assignment operator
37   AliAODConversionParticle & operator = (const AliAODConversionParticle & g);
38
39   //Destructor
40   virtual ~AliAODConversionParticle() {;}
41
42   ///Set the Chi2 of reconstructed conversion gamma
43   void SetChi2(Float_t chi2) {fChi2 = chi2;}
44
45   ///Set track or MC labels
46   void SetLabel1(Int_t label){fLabel[0] = label;}
47   void SetLabel2(Int_t label){fLabel[1] = label;}
48   void SetTrackLabels(Int_t label1, Int_t label2){fLabel[0] = label1; fLabel[1] = label2;}
49   
50   ///Set Invariant mass
51   void SetIMass(Float_t im) { fIMass = im; }
52
53   ///Set the tag for decay meson
54   void SetTag( Bool_t tagged ) { fTagged = tagged; }
55
56   ///Set pointer to MC stack
57   void SetStack(AliStack* const stack){fMCStack=stack;}
58   
59   ///Set pointer to ESD event
60   void SetESDEvent(AliESDEvent* const esdEvent){fESDEvent = esdEvent;}
61
62   //Get the Chi2 of particle
63   Float_t Chi2() const {return fChi2;}
64
65   ///Get Invariant mass of particle
66   Float_t IMass() const { return fIMass; }
67
68   ///Get track or MC labels
69   Int_t GetLabel1() const{return fLabel[0];}
70   Int_t GetLabel2() const {return fLabel[1];}
71   Int_t GetTrackLabel(Int_t i) const {return fLabel[i];}
72   void  GetTrackLabels(Int_t * labels) { labels[0] = fLabel[0]; labels[1] = fLabel[1];} 
73
74   Int_t GetMCLabel(Int_t Label) const;
75
76   /* This function returns the Gamma MC label */
77   Int_t GetGammaMCLabel() const;
78   
79   /* This function returns the unique id  of the electrons (if they have the same mother and unique id) */
80   Int_t GetElectronUniqueID() const;
81   Int_t GetElectronUniqueID(Int_t mcLabel1, Int_t mcLabel2) const;
82   
83   /// Get MC labels of electrons
84   Int_t GetElectronMCLabel1() const;
85   Int_t GetElectronMCLabel2() const;
86
87   Bool_t IsMySpawn(const Int_t trackId, const Int_t nSpawn, const Int_t * const spawn) const;
88   void GetGrandChildren(const TClonesArray * photons, Int_t* trackLabels);
89  private:
90
91   Int_t fLabel[2];
92   Float_t fChi2; // Chi sq of reconstructed mother
93   Float_t fIMass; //Invariant mass, 0 for photons
94   Bool_t fTagged; // Is it tagged as decay pion (only for gammas)
95   AliStack* fMCStack; //!transient pointer to the mc stack
96   AliESDEvent * fESDEvent; //!transient pointer to the esdevent
97
98   ClassDef(AliAODConversionParticle,2)
99 };
100
101
102 #endif
103
104
105