]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGGA/GammaConv/AliAODConversionMother.h
Modified EveBase to compile with zmq<3.0. Corrected ThreadedSocket implementation.
[u/mrichter/AliRoot.git] / PWGGA / GammaConv / AliAODConversionMother.h
index ca0b7b3eb45ffcaf52d16cdcf86f4ff13b99e525..eecc4ef14a701f761ed9161e9a35acc6e8cc5a33 100644 (file)
@@ -21,33 +21,52 @@ class AliAODConversionMother : public AliAODConversionParticle{
 
  public: 
 
-  //Default Constructor
+     //Default Constructor
      AliAODConversionMother();
 
-  // Constructor for ESD to AOD Conversion
+     // Constructor for ESD to AOD Conversion
      AliAODConversionMother(AliKFConversionMother *kf);
-  //Constructor Decay Mother Particle
+
+     //Constructor Decay Mother Particle
      AliAODConversionMother(AliAODConversionPhoton *y1,AliAODConversionPhoton *y2);
 
-  //Destructor
+     //Destructor
      virtual ~AliAODConversionMother();
 
-  ///Set the Chi2 of reconstructed conversion gamma
+     // MC
+
+     void SetMCLabel(Int_t i){fMCLabel=i;}
+     Int_t GetMCLabel(){return fMCLabel;}
+     TParticle *GetMCParticle(AliStack *fMCStack);
+     Bool_t IsTrueMeson(AliStack *fMCStack,Int_t pdgcode);
+
+     ///Set the Chi2 of reconstructed conversion gamma
      void SetChi2(Float_t chi2) {fChi2 = chi2;}
 
-  //Get the Chi2 of particle
+     //Get the Chi2 of particle
      Float_t Chi2() const {return fChi2;}
 
      ///Set track or MC labels
      void SetLabel1(Int_t label){fLabel[0] = label;}
      void SetLabel2(Int_t label){fLabel[1] = label;}
-     void SetLabels(Int_t label1, Int_t label2){fLabel[0] = label1; fLabel[1] = label2;}
+     void SetLabel3(Int_t label){fLabel[2] = label;}
+     void SetLabels(Int_t label1, Int_t label2, Int_t label3 = 0){fLabel[0] = label1; fLabel[1] = label2; fLabel[2] = label3;}
 
      Int_t GetLabel(Int_t i) const {return fLabel[i];}
      Int_t GetLabel1() const {return fLabel[0];}
      Int_t GetLabel2() const {return fLabel[1];}
-
+     Int_t GetLabel3() const {return fLabel[2];}
+               
+     Double_t GetProductionRadius() const {return TMath::Sqrt(fProductionVtx[0]*fProductionVtx[0]+fProductionVtx[1]*fProductionVtx[1]);}
+     Double_t GetProductionX() const {return fProductionVtx[0];}
+     Double_t GetProductionY() const {return fProductionVtx[1];}
+     Double_t GetProductionZ() const {return fProductionVtx[2];}
+
+     Float_t GetDCABetweenPhotons() const {return fdcaBetweenPhotons;}
+     Float_t GetDCAZMotherPrimVtx() const {return fdcaZPrimVtx;}
+     Float_t GetDCARMotherPrimVtx() const {return fdcaRPrimVtx;}
+     UChar_t GetMesonQuality() const {return fQuality;}
+       
      Double_t GetOpeningAngle() const { return fOpeningAngle;}
 
      Double_t GetAlpha() const { return fAlpha;}
@@ -55,14 +74,32 @@ class AliAODConversionMother : public AliAODConversionParticle{
      void SetWeight(Double_t weight) {fWeight=weight;}
      Double_t GetWeight() const {return fWeight;}
 
+     Float_t CalculateDistanceBetweenPhotons(AliAODConversionPhoton* y1, AliAODConversionPhoton* y2 , Double_t prodPoint[3]);
+     void CalculateDistanceOfClossetApproachToPrimVtx(const AliVVertex* primVertex);
+     void DetermineMesonQuality(AliAODConversionPhoton* y1, AliAODConversionPhoton* y2);
+        
 private:
-    Int_t fLabel[2]; // Labels of the decay photons
+    Int_t fLabel[3]; // Labels of the decay photons
+    Int_t fMCLabel; // MC Label
     Float_t fChi2; // Chi sq of reconstructed mother
     Double_t fOpeningAngle;
     Double_t fAlpha;
     Double_t fWeight; // Weight for BG Calculation
-
-    ClassDef(AliAODConversionMother,2)
+    Float_t fdcaBetweenPhotons; // dca between the two photons
+    Double_t fProductionVtx[3]; // Production vertex
+    Float_t fdcaZPrimVtx; // dca Z of meson to primary vertex
+    Float_t fdcaRPrimVtx; // dca R of meson to primary vertex
+    UChar_t fQuality; // Quality of the meson:
+                       // 0: garbage
+                       // 1: both photons quality 1
+                       // 2: 1 photon quality 1, 1 photon quality 2
+                       // 3: 1 photon quality 1, 1 photon quality 3
+                       // 4: both photons quality 2
+                       // 5: 1 photon quality 2, 1 photon quality 3
+                       // 6: both photons quality 3
+    
+    
+    ClassDef(AliAODConversionMother,4)
 };
 
 #endif