]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Updating conv correlation classes
authorslindal <slindal@f7af4fe6-9843-0410-8265-dc069ae4e863>
Sun, 4 Dec 2011 16:09:28 +0000 (16:09 +0000)
committerslindal <slindal@f7af4fe6-9843-0410-8265-dc069ae4e863>
Sun, 4 Dec 2011 16:09:28 +0000 (16:09 +0000)
14 files changed:
PWG4/CMakelibPWG4GammaConv.pkg
PWG4/GammaConv/ConvCorrelations/AliAnaConvCorrBase.cxx
PWG4/GammaConv/ConvCorrelations/AliAnaConvCorrBase.h
PWG4/GammaConv/ConvCorrelations/AliAnaConvCorrPhoton.cxx
PWG4/GammaConv/ConvCorrelations/AliAnaConvCorrPhoton.h
PWG4/GammaConv/ConvCorrelations/AliAnaConvCorrPhotonJet.cxx
PWG4/GammaConv/ConvCorrelations/AliAnaConvCorrPion.cxx
PWG4/GammaConv/ConvCorrelations/AliAnaConvCorrPion.h
PWG4/GammaConv/ConvCorrelations/AliAnaConvCorrPionJet.cxx
PWG4/GammaConv/ConvCorrelations/AliAnaConvIsolation.cxx
PWG4/GammaConv/ConvCorrelations/AliAnaConvIsolation.h
PWG4/GammaConv/ConvCorrelations/AliAnalysisTaskGammaJet.cxx [deleted file]
PWG4/GammaConv/ConvCorrelations/AliAnalysisTaskGammaJet.h [deleted file]
PWG4/PWG4GammaConvLinkDef.h

index ea55dcff15f4f57d618532b7950654c76a324093..69dfa74cc5aa8f920e3beba8b2e17a6217726fb5 100644 (file)
@@ -39,7 +39,6 @@ set ( SRCS  GammaConv/AliV0Reader.cxx
     GammaConv/AliAODConversionMother.cxx
     GammaConv/AliKFConversionPhoton.cxx
     GammaConv/AliKFConversionMother.cxx
-    GammaConv/ConvCorrelations/AliAnalysisTaskGammaJet.cxx 
     GammaConv/ConvCorrelations/AliAnaConvIsolation.cxx 
     GammaConv/ConvCorrelations/AliAnaConvCorrBase.cxx 
     GammaConv/ConvCorrelations/AliAnaConvCorrPion.cxx 
index a880a6ea12615bf78268b171c61d2dad8bc097a6..6cb0fa1e0f7e27e6953d84abf7a652ef8fc0658d 100644 (file)
@@ -27,7 +27,6 @@
 #include "TList.h"
 #include "AliAODConversionParticle.h"
 
-
 #include <iostream>
 
 // Gamma - jet correlation analysis task
@@ -38,35 +37,20 @@ using namespace std;
 ClassImp(AliAnaConvCorrBase)
 
 //________________________________________________________________________
-AliAnaConvCorrBase::AliAnaConvCorrBase(TString name) : TObject(),
-  fName(name),
+AliAnaConvCorrBase::AliAnaConvCorrBase(TString name, TString title = "title") : TNamed(name, title),
   fHistograms(NULL),
-  fNPhiBins(32),
-  fdPhiBins(NULL),
-  fPtBins(NULL)
+  fAxesList(NULL), 
+  fAxistPt(),
+  fAxiscPt(), 
+  fAxisdEta(), 
+  fAxisdPhi(),
+  fSparse(NULL)
 {
   //Constructor
-  fPtBins = new TArrayD(41);
-  for(Int_t i = 0; i < 10; i++) {
-    fPtBins->SetAt(i*0.5, i);
-    fPtBins->SetAt(5 + i*0.5, i + 10);
-    
-    fPtBins->SetAt(10. + i, i+20);
-    fPtBins->SetAt(20. + 2*i, i+30);
-  }
-
-  fPtBins->SetAt(50., fPtBins->GetSize() -1);
 
-  fdPhiBins = new TArrayD(fNPhiBins + 1);
-  for(Int_t i = 0; i < fNPhiBins+1; i++) {
-    fdPhiBins->SetAt(-TMath::PiOver2() + i*TMath::TwoPi()/fNPhiBins, i);
-  }
+  SetUpDefaultBins();
   
-  for(int iIso = 0; iIso < 2; iIso++) {
-    fHdPhi[iIso] = NULL;
-    fHNTriggers[iIso] = NULL;
-  }
-
+  fAxesList.SetOwner(kTRUE);
 
 
 }
@@ -75,15 +59,6 @@ AliAnaConvCorrBase::AliAnaConvCorrBase(TString name) : TObject(),
 //________________________________________________________________________________
 AliAnaConvCorrBase::~AliAnaConvCorrBase() {
   ///destructor
-  if(fPtBins)
-    delete fPtBins;
-  fPtBins = NULL;
-  
-  if(fdPhiBins)
-    delete fdPhiBins;
-  fdPhiBins = NULL;
-  
-
 }
 
 
@@ -91,11 +66,36 @@ void AliAnaConvCorrBase::CreateHistograms() {
   CreateBaseHistograms();
 }
 
+///________________________________________________________________________________
+void AliAnaConvCorrBase::SetUpDefaultBins() {
+  //Set up default bins
+  Double_t ptbins[19] = {0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 5.0, 6.0, 8.0, 10.0, 12.5, 15, 20, 25, 30, 50, 100};
+  fAxisdEta.Set(160, -1.6, 1.6);
+  fAxisdEta.SetNameTitle("dEta", "delta eta");
+  fAxesList.AddAt(&fAxisdEta, 0);
+
+  fAxisdPhi.Set(64, -TMath::PiOver2(), 3*TMath::PiOver2());
+  fAxisdPhi.SetNameTitle("dPhi", "delta Phi");
+  fAxesList.AddAt(&fAxisdPhi, 1);
+
+  fAxistPt.Set(18, ptbins);
+  fAxistPt.SetNameTitle("tPt", "trigger Pt");
+  fAxesList.AddAt(&fAxistPt, 2);
+
+  fAxiscPt.Set(18, ptbins);
+  fAxiscPt.SetNameTitle("cPt", "track Pt");
+  fAxesList.AddAt(&fAxiscPt, 3);
+
+  for(int iIso = 0; iIso < 2; iIso++) {
+    fHNTriggers[iIso] = NULL;
+  }
+}
+
 //________________________________________________________________________
 void AliAnaConvCorrBase::CreateBaseHistograms() {
   //Create histograms add, to outputlis
 
-  cout << "Createing histograms for "<< fName.Data() << endl;
+  cout << "Creating histograms for "<< GetName() << endl;
 
   fHistograms = new TList();
   fHistograms->SetOwner(kFALSE);
@@ -103,48 +103,83 @@ void AliAnaConvCorrBase::CreateBaseHistograms() {
 
   for(int iIso = 0; iIso < 2; iIso++) {
 
-    fHdPhi[iIso] = new TH3F(Form("%s_%s_dPhi", fName.Data(),  (iIso==0)?"nonIso":"isolated"),
-                           Form("%s_%s_dPhi", fName.Data(),  (iIso==0)?"nonIso":"isolated"),
-                           fPtBins->GetSize() -1, fPtBins->GetArray(),
-                           fPtBins->GetSize() - 1, fPtBins->GetArray(),
-                           fdPhiBins->GetSize() - 1, fdPhiBins->GetArray());
-    fHdPhi[iIso]->Sumw2();
-    
-    fHistograms->Add(fHdPhi[iIso]);
-
     fHNTriggers[iIso] = new TH1F(Form("%s_%s_fNTriggers", fName.Data(), (iIso==0)?"nonIso":"isolated"), 
-                                Form("%s_%s_fNTriggers", fName.Data(), (iIso==0)?"nonIso":"isolated"), 
-                                fPtBins->GetSize() - 1, fPtBins->GetArray());
+                                                                Form("%s_%s_fNTriggers", fName.Data(), (iIso==0)?"nonIso":"isolated"), 
+                                                                fAxistPt.GetNbins(), fAxistPt.GetXbins()->GetArray());
     fHNTriggers[iIso]->Sumw2();
     fHistograms->Add(fHNTriggers[iIso]);
   
   }
 
+  fSparse = CreateSparse(GetName(), GetTitle(), &fAxesList);
+  fHistograms->Add(fSparse);
+
 }
 
+///________________________________________________________________________
+THnSparseF * AliAnaConvCorrBase::CreateSparse(TString nameString, TString titleString, TList * axesList) {
+  //Create sparse
+  const Int_t dim = axesList->GetSize();
+  
+  cout << "dimesion: " << dim << endl;
+
+  TAxis * axes[dim];
+  Int_t   bins[dim];
+  Double_t min[dim];
+  Double_t max[dim];
+
+  for(Int_t i = 0; i<dim; i++) {
+       TAxis * axis = dynamic_cast<TAxis*>(axesList->At(i));
+       if(axis) axes[i] = axis;
+       else {
+         cout << "AliAnalysisTaskdPhi::CreateSparse: Error error, all the axes are not present in axis list" << endl;
+         return NULL;
+       }
+  }
 
-///____________________________________________________________________________
-void AliAnaConvCorrBase::FillTriggerCounters(Float_t tPt, Bool_t isolated){ 
-  //Fill histogram with trigger counters
+  for(Int_t i = 0; i<dim; i++) {
+       cout << axes[i]->GetTitle() << endl;
+       bins[i] = axes[i]->GetNbins(); 
+       min[i] = axes[i]->GetBinLowEdge(1);
+       max[i] = axes[i]->GetBinUpEdge(axes[i]->GetNbins());
+  }
 
-  fHNTriggers[0]->Fill(tPt);
+  THnSparseF * sparse = new THnSparseF(Form("%s", nameString.Data()), 
+                                                                          Form("%s", titleString.Data()), 
+                                                                          dim, bins, min, max);
   
-  if(isolated) {
-    fHNTriggers[isolated]->Fill(tPt);
-    
+  for(Int_t i = 0; i<dim; i++) {
+       sparse->GetAxis(i)->SetNameTitle(axes[i]->GetName(), axes[i]->GetTitle() );
+       if(axes[i]->GetXbins()->GetSize() > 0) {
+         sparse->SetBinEdges(i, axes[i]->GetXbins()->GetArray() );
+       }
   }
+  return sparse;
 }
 
-///_____________________________________________________________________________
-void AliAnaConvCorrBase::FillHistograms(Float_t tPt, Float_t cPt, Float_t dPhi, Float_t dEta, Bool_t isolated) {
-  //Fill histograms
 
-  if(dEta) { ;}
-  fHdPhi[0]->Fill(tPt, cPt, dPhi);
-  if(isolated) {
-    fHdPhi[isolated]->Fill(tPt, cPt, dPhi);
-  }
-}
+///____________________________________________________________________________
+// void AliAnaConvCorrBase::FillTriggerCounters(Float_t tPt, Bool_t isolated){ 
+//   //Fill histogram with trigger counters
+
+//   fHNTriggers[0]->Fill(tPt);
+  
+//   if(isolated) {
+//     fHNTriggers[isolated]->Fill(tPt);
+    
+//   }
+// }
+
+// ///_____________________________________________________________________________
+// void AliAnaConvCorrBase::FillHistograms(Float_t tPt, Float_t cPt, Float_t dPhi, Float_t dEta, Bool_t isolated) {
+//   //Fill histograms
+
+//   if(dEta) { ;}
+//   //fHdPhi[0]->Fill(tPt, cPt, dPhi);
+//   if(isolated) {
+//     //fHdPhi[isolated]->Fill(tPt, cPt, dPhi);
+//   }
+// }
 
 //_______________________________________________________________________________
 
@@ -156,3 +191,37 @@ void AliAnaConvCorrBase::PrintStatistics()  {
 
   }
 }
+
+
+//_______________________________________________________________________________
+void AliAnaConvCorrBase::FillTriggerCounters(const AliAODConversionParticle * particle, Bool_t leading) {
+  fHNTriggers[leading]->Fill(particle->Pt());
+}
+
+
+//________________________________________________________________
+void AliAnaConvCorrBase::CorrelateWithTracks(AliAODConversionParticle * particle, TObjArray * tracks, Int_t const tIDs[4], Bool_t isolated /*= kFALSE*/) {
+  //Correlate particle with tracks
+
+  FillTriggerCounters(particle, isolated);
+
+ Int_t nDim = fAxesList.GetSize();
+  Double_t dphivalues[nDim];
+  
+  for(int ij = 0; ij < tracks->GetEntriesFast(); ij++) {
+       AliVTrack * track = static_cast<AliVTrack*>(tracks->UncheckedAt(ij));
+       Int_t tid = track->GetID();
+
+       if((tid > 0) && (tid == tIDs[0] || tid == tIDs[1] || tid == tIDs[2] || tid == tIDs[3]) ) {
+         continue;
+       }
+       
+       dphivalues[1] = GetDPhi(particle->Phi() - track->Phi());
+       dphivalues[0] = particle->Eta() - track->Eta();
+       dphivalues[2] = particle->Pt();
+       dphivalues[3] = track->Pt();
+       if(nDim > 4) dphivalues[4] = particle->M();
+       fSparse->Fill(dphivalues);
+  }
+}
+
index 233291df89348fa817d24c22e0487e866bd23644..c9a9fd6da3f03cd760e2eef77fe40250e9b9f9c8 100644 (file)
@@ -13,6 +13,7 @@
 #include "TMath.h"\r
 #include "TList.h"\r
 #include "TH1.h"\r
+#include <THnSparse.h>\r
 \r
 class TH1F;\r
 class TH3F;\r
@@ -22,15 +23,14 @@ class TClonesArray;
 class TNtuple;\r
 class TString;\r
 \r
-\r
-class AliAnaConvCorrBase : public TObject {\r
+class AliAnaConvCorrBase : public TNamed {\r
 \r
 public:\r
 \r
   \r
 \r
   //Constructor / desctructor\r
-  AliAnaConvCorrBase(TString name); \r
+  AliAnaConvCorrBase(TString name, TString title); \r
   virtual ~AliAnaConvCorrBase();\r
   \r
   //Set and get min pt for triggers\r
@@ -53,9 +53,7 @@ public:
   //Add histogram to list\r
   void AddHistogram(TH1 * histogram) { fHistograms->Add(dynamic_cast<TObject*>(histogram));}\r
 \r
-  //Set and get number of bins in phi direction\r
-  void SetNPhiBins(Int_t bins) { fNPhiBins = bins; }\r
-  Int_t GetNPhiBins() const { return fNPhiBins;}\r
+  void AddAxis(TAxis * axis) { fAxesList.Add(axis); }\r
 \r
   ///Get the distance in phi between trigger particle and correlated particle\r
   Float_t GetDPhi(Float_t dPhi) { \r
@@ -63,39 +61,50 @@ public:
     else return ( (dPhi>0)? dPhi - TMath::TwoPi() : dPhi + TMath::TwoPi() ); \r
   }\r
 \r
+  void PrintStatistics();\r
 \r
-  TArrayD * GetTriggerBins() const { return fPtBins; }\r
+  void CorrelateWithTracks(AliAODConversionParticle * particle, TObjArray * tracks, const Int_t tIDs[4], Bool_t isolated);\r
+  virtual void FillTriggerCounters(const AliAODConversionParticle * particle, Bool_t leading);\r
+\r
+  TAxis& GetAxistPt()  { return fAxistPt;   }\r
+  TAxis& GetAxiscPt()  { return fAxiscPt;   }\r
+  TAxis& GetAxisdEta() { return fAxisdEta;  }\r
+  TAxis& GetAxisdPhi() { return fAxisdPhi;  }\r
+  TList& GetAxisList() { return fAxesList;  }\r
 \r
-  //Print statistics for histograms\r
-  void PrintStatistics();\r
 \r
 \r
 protected:\r
 \r
   //Fill histograms\r
-  void FillHistograms(Float_t tPt, Float_t cPt, Float_t dPhi, Float_t dEta, Bool_t isolated);\r
+  //void FillHistograms(Float_t tPt, Float_t cPt, Float_t dPhi, Float_t dEta, Bool_t isolated);\r
   //Fill trigger counter histograms\r
-  void FillTriggerCounters(Float_t tPt, Bool_t isolated);\r
+  //virtual void FillTriggerCounters(Float_t tPt, Bool_t isolated) = NULL;\r
+  THnSparseF * CreateSparse(TString name, TString title, TList * axes);\r
+  TH1F * fHNTriggers[2]; //Histograms containing number of triggers in various bins\r
+\r
+private:\r
 \r
- private:\r
+  void SetUpDefaultBins();\r
   \r
-  TString fName; //name of analysis\r
+  //TString fName; //name of analysis\r
   TList * fHistograms; //List of histograms\r
+  TList fAxesList;  //List over axes to be used in sparse\r
 \r
-  Int_t fNPhiBins;  //Nbins in phi direction\r
-  TArrayD * fdPhiBins; //!transient phi bin array\r
-  TArrayD * fPtBins; //!Array of trigger bins\r
+  TAxis fAxistPt; //Pt axis\r
+  TAxis fAxiscPt; //correlated particle pt axis\r
+  TAxis fAxisdEta; //delta eta axis\r
+  TAxis fAxisdPhi; //delta phi axis\r
   \r
-\r
-  TH3F * fHdPhi[2]; //dPhi pt histogram\r
-  TH1F * fHNTriggers[2]; //Histograms containing number of triggers in various bins\r
-\r
+  THnSparseF * fSparse; //Sparse\r
 \r
   //Default constructor prohibited\r
   AliAnaConvCorrBase(); //not implemented\r
   AliAnaConvCorrBase(const AliAnaConvCorrBase&); // not implemented\r
   AliAnaConvCorrBase& operator=(const AliAnaConvCorrBase&); // not implemented\r
-  ClassDef(AliAnaConvCorrBase, 3); // example of analysis\r
+\r
+  ClassDef(AliAnaConvCorrBase, 4); // example of analysis\r
+\r
 };\r
 \r
 #endif\r
index e6f0454963d560f8247bc9a9dd6b5a1290f04ecd..4c9e539cb8b1488e0ce435f8ab7ea346aefb76d5 100644 (file)
@@ -32,50 +32,37 @@ ClassImp(AliAnaConvCorrPhoton)
 
 //________________________________________________________________________
 AliAnaConvCorrPhoton::AliAnaConvCorrPhoton() :
-AliAnaConvCorrBase("photon_hadron_corr"), 
+AliAnaConvCorrBase("photon_hadron_corr", "Photon corr"), 
   fSkipDecayParticles(kFALSE),
   fDecayOnly(kFALSE)
 {
   //consctructor
 }
 //________________________________________________________________________
-AliAnaConvCorrPhoton::AliAnaConvCorrPhoton(TString name) :
-AliAnaConvCorrBase(name), 
+AliAnaConvCorrPhoton::AliAnaConvCorrPhoton(TString name, TString title = "Photon corr") :
+AliAnaConvCorrBase(name, title),
 fSkipDecayParticles(kFALSE),
 fDecayOnly(kFALSE)
 {
   //consctructor
 }
 
-
 //________________________________________________________________________________
 AliAnaConvCorrPhoton::~AliAnaConvCorrPhoton() {
   //destructor
 }
 
-///__________________________________________________________________________
-void AliAnaConvCorrPhoton::CorrelateWithHadrons(const AliAODConversionPhoton * const photon, const TClonesArray * const tracks, const Bool_t isolated, const Bool_t decayParticle) {
-  //See header file for documentation
-
-
-  if( decayParticle && fSkipDecayParticles ) return;
-  else if ( fDecayOnly && !decayParticle ) return;
+//________________________________________________________________________________
+void AliAnaConvCorrPhoton::Process(TClonesArray * photons, TClonesArray * tracks, Bool_t isolated = kFALSE) {
+  //Process list of photons and correlate w tracks
+  for(Int_t ig = 0; ig < photons->GetEntriesFast(); ig++) {
 
-  FillTriggerCounters(photon->Pt(), isolated);
+       AliAODConversionParticle * photon = static_cast<AliAODConversionParticle*>(photons->UncheckedAt(ig));
 
-  if (tracks) {
-      
-    for(int ij = 0; ij < tracks->GetEntriesFast(); ij++) {
-      AliAODTrack * track = dynamic_cast<AliAODTrack*>(tracks->At(ij));
-      if(track) {
-       
-       if ( (track->GetID() == photon->GetTrackLabel(0)) || track->GetID() == photon->GetTrackLabel(1) )   continue;
-       
-       //if (track->Pt() < GetCorrelatedPt() ) continue;
-       
-       FillHistograms(photon->Pt(), track->Pt(), GetDPhi(photon->Phi() - track->Phi()), photon->Eta() - track->Eta(), isolated);
-       
-      }
-    }
+       Int_t tIDs[4] = {-1, -1, -1, -1};
+       tIDs[0] =  photon->GetLabel(0);
+       tIDs[1] =  photon->GetLabel(1);
+       CorrelateWithTracks(photon, tracks, tIDs, isolated);
+               
   }
 }
index 901c4e81e9a9617f4837d70bf75fee993d0a9bfd..5b9b66355877fe51b5e3d7d24a5e1c95d78660a8 100644 (file)
@@ -19,22 +19,24 @@ class AliAnaConvCorrPhoton : public AliAnaConvCorrBase {
 public:\r
 \r
   AliAnaConvCorrPhoton(); \r
-  AliAnaConvCorrPhoton(TString name); \r
+  AliAnaConvCorrPhoton(TString name, TString title); \r
   virtual ~AliAnaConvCorrPhoton();\r
 \r
   ///Correlation photon with tracks\r
-  virtual void CorrelateWithHadrons(const AliAODConversionPhoton * const photon, const TClonesArray * const tracks, const Bool_t isolated, const Bool_t decayParticle);\r
+  //virtual void CorrelateWithHadrons(const AliAODConversionPhoton * const photon, const TClonesArray * const tracks, const Bool_t isolated, const Bool_t decayParticle);\r
 \r
   //Process particles identified as pion / eta decay \r
   void SkipDecayParticles() { fSkipDecayParticles = kTRUE; }\r
   void DoDecayParticles() { fSkipDecayParticles = kFALSE; }\r
   void DoDecayOnly() { fSkipDecayParticles = kFALSE; fDecayOnly = kTRUE; }\r
 \r
+  void Process(TClonesArray * photons, TClonesArray * tracks, Bool_t isolated);\r
+\r
  private:\r
 \r
   \r
   Bool_t fSkipDecayParticles; //Process particles identified as pion / eta decay particles\r
-  Bool_t fDecayOnly;\r
+  Bool_t fDecayOnly;  //Only process gamma from decay pion\r
 \r
   AliAnaConvCorrPhoton(const AliAnaConvCorrPhoton&); // not implemented\r
   AliAnaConvCorrPhoton& operator=(const AliAnaConvCorrPhoton&); // not implemented\r
index e82b62ed0d075e442c4dd4c5357a966d836cd676..dbc865178597f3b307b2062bf098d9eaad0518f3 100644 (file)
@@ -35,7 +35,7 @@ ClassImp(AliAnaConvCorrPhotonJet)
 
 //________________________________________________________________________________
 AliAnaConvCorrPhotonJet::AliAnaConvCorrPhotonJet() :
-AliAnaConvCorrBase("photonJet"),
+AliAnaConvCorrBase("photonJet", "Photon Jet"),
   fhPtFracGamma(NULL), 
   fhPtFracPion(NULL)
 {
@@ -43,7 +43,7 @@ AliAnaConvCorrBase("photonJet"),
 }
 //________________________________________________________________________________
 AliAnaConvCorrPhotonJet::AliAnaConvCorrPhotonJet(TString name) :
-  AliAnaConvCorrBase(name), 
+  AliAnaConvCorrBase(name, "Photon Jet"),
   fhPtFracGamma(NULL), 
   fhPtFracPion(NULL)
 {
@@ -68,8 +68,8 @@ void AliAnaConvCorrPhotonJet::CreateHistograms() {
 }
 
 void AliAnaConvCorrPhotonJet::DoJetAnalysisGamma(AliAODJet * jet, const TClonesArray * const photons, const  TClonesArray *const pions ) const{
-  
-  Int_t trackIDs[4] = {-9, -9, -9, -9};
+  //See header file for documetation
+  Int_t trackIDs[4];
 
   for(Int_t i = 0; i < photons->GetEntriesFast(); i++) {
     AliAODConversionParticle * photon = dynamic_cast<AliAODConversionParticle*>(photons->At(i));
@@ -102,6 +102,7 @@ void AliAnaConvCorrPhotonJet::DoJetAnalysisGamma(AliAODJet * jet, const TClonesA
 
 //________________________________________________________________________________
 Bool_t AliAnaConvCorrPhotonJet::IsParticleInJet(AliAODJet * jet, Int_t nTracks, Int_t * trackIds) const {
+  //See header file for documetation
 
   Int_t mTracks = 0;
   TRefArray * refTracks = jet->GetRefTracks();
@@ -123,6 +124,7 @@ Bool_t AliAnaConvCorrPhotonJet::IsParticleInJet(AliAODJet * jet, Int_t nTracks,
 
 //________________________________________________________________________________
 Double_t AliAnaConvCorrPhotonJet::ExtractFromJet(AliAODJet * jet, const AliAODConversionParticle * const particle) const {
+  //See header file for documetation
   
   Float_t jetPt = jet->Pt();
   cout << "Jet pt before and after: " << jetPt << "    ";
@@ -150,14 +152,14 @@ Double_t AliAnaConvCorrPhotonJet::ExtractFromJet(AliAODJet * jet, const AliAODCo
 
 ///_______________________________________________________________________________
 void AliAnaConvCorrPhotonJet::CorrelateWithHadrons(const AliAODConversionParticle * const photon, const TClonesArray * const jets, const Bool_t isolated) {
-  FillTriggerCounters(photon->Pt(), isolated);
+  FillTriggerCounters(photon, isolated);
   //See header file for documentation
   if (jets) {
     for(int ij = 0; ij < jets->GetEntriesFast(); ij++) {
       AliAODJet * jet = dynamic_cast<AliAODJet*>(jets->At(ij));
       if(jet) {
-       Double_t jetPt = ExtractFromJet(jet, photon);
-       FillHistograms(photon->Pt(), jetPt, GetDPhi(photon->Phi() - jet->Phi()), photon->Eta() - jet->Eta(), isolated);
+               //Double_t jetPt = ExtractFromJet(jet, photon);
+               //FillHistograms(photon->Pt(), jetPt, GetDPhi(photon->Phi() - jet->Phi()), photon->Eta() - jet->Eta(), isolated);
       }
     }
   }
index d431e292b455d3bdfcdfea204d2d026d179bd398..fcad5284970215db396b28906ad535b62285699f 100644 (file)
 
 
 
+#include "TH2D.h"
 #include "AliAnaConvCorrPion.h"
-#include "AliAODTrack.h"
+//#include "AliAODTrack.h"
 #include "TClonesArray.h"
-#include "AliAODConversionPhoton.h"
-#include "THnSparse.h"
-#include "TH2F.h"
+#include "AliAODConversionParticle.h"
+//#include "AliAODConversionMother.h"
+//#include "AliAODConversionPhoton.h"
+//#include "THnSparse.h"
+//#include "TH2F.h"
 
 #include <iostream>
 
@@ -34,21 +37,21 @@ ClassImp(AliAnaConvCorrPion)
 
 //________________________________________________________________________________
 AliAnaConvCorrPion::AliAnaConvCorrPion() :
-AliAnaConvCorrBase("pion_hadron_corr"), 
-  fhdPhiVsInvMassPi0(NULL), 
-  fhdPhiVsInvMassEta(NULL), 
-  fhPtVsInvMass(NULL)
+AliAnaConvCorrBase("pion_hadron_corr", "Pion dPhi"),
+  hTriggerPtvsMass(NULL),
+  fAxisM()
 {
   //consctructor
+  InitMassAxis();
 }
 //________________________________________________________________________________
-AliAnaConvCorrPion::AliAnaConvCorrPion(TString name) :
-  AliAnaConvCorrBase(name),
-  fhdPhiVsInvMassPi0(NULL), 
-  fhdPhiVsInvMassEta(NULL), 
-  fhPtVsInvMass(NULL)
+AliAnaConvCorrPion::AliAnaConvCorrPion(TString name, TString title = "Pion Corr") :
+  AliAnaConvCorrBase(name, title),
+  hTriggerPtvsMass(NULL),
+  fAxisM()
 {
   //consctructor
+  InitMassAxis();
 }
 
 
@@ -57,72 +60,45 @@ AliAnaConvCorrPion::~AliAnaConvCorrPion() {
   //destructor
 }
 
+void AliAnaConvCorrPion::InitMassAxis() {
+  Double_t mbins[7] = {0.1, 0.11, 0.12, 0.15, 0.16, 0.18, 0.2};
+  fAxisM.Set(6, mbins);
+  fAxisM.SetNameTitle("InvMass", "invariant mass");
+  GetAxisList().AddAt(&fAxisM, 4);
+}
+
 ///________________________________________________________________________________
 void AliAnaConvCorrPion::CreateHistograms() {
   //Create histograms
   CreateBaseHistograms();
-
-  const Int_t dim = 4;
-  Int_t bins[dim] = {200, 200, 32, 14}; 
-  Double_t min[dim] = {0, 0, -TMath::PiOver2(), 0.1};
-  Double_t max[dim] = {100, 100, 3*TMath::PiOver2(), 0.17};
-
-  fhdPhiVsInvMassPi0 = new THnSparseF("fhdPhiVsInvMassPi0", "fhdPhiVsInvMassPi0", dim, bins, min, max);
-
-  min[3] = 450;
-  max[3] = 650;
-  bins[3] = 20;
-  fhdPhiVsInvMassEta = new THnSparseF("fhdPhiVsInvMassEta", "fhdPhiVsInvMassEta", dim, bins, min, max);
-  fhPtVsInvMass = new TH2F("fhPtVsInvMass", "Pt Vs inv mass", GetTriggerBins()->GetSize() -1, GetTriggerBins()->GetArray(), 400, 0, 1);
-
-  GetHistograms()->Add(fhPtVsInvMass);
-  GetHistograms()->Add(fhdPhiVsInvMassPi0);
-  GetHistograms()->Add(fhdPhiVsInvMassEta);
-
+  hTriggerPtvsMass = new TH2D("hTriggerPtvsMass", "Pt vs Mass", 400, 0, .400, GetAxistPt().GetNbins(), GetAxistPt().GetXbins()->GetArray());
+  GetHistograms()->Add(hTriggerPtvsMass);
 }
 
+
 ///________________________________________________________________________________
-void AliAnaConvCorrPion::GetTrackLabels(const AliAODConversionPhoton * pion, const TClonesArray * photons, Int_t* trackLabels) {
-  ///Get the track labels of the electrons reconstructed as gamma forming the pion
-
-  for(Int_t i = 0; i< 2; i++) {
-    AliAODConversionPhoton * gamma = dynamic_cast<AliAODConversionPhoton*>(photons->At(pion->GetTrackLabel(i)));
-
-    if(gamma) { 
-      for(Int_t j = 0; j< 2; j++) {
-       cout << "index " << i + j + ((i>=j)?1:0) << " " << gamma->GetTrackLabel(j) << endl;
-       trackLabels[ i*2+ j] = gamma->GetTrackLabel(j);
-      }
-    }
-  }
+void AliAnaConvCorrPion::FillTriggerCounters(const AliAODConversionParticle * particle, Bool_t isolated) {
+  //Fill histograms counting triggers
+  fHNTriggers[isolated]->Fill(particle->Pt());
+  hTriggerPtvsMass->Fill(particle->M(), particle->Pt());
 }
 
-///________________________________________________________________________________
-void AliAnaConvCorrPion::CorrelateWithHadrons(AliAODConversionPhoton * pion, const TClonesArray * tracks,  const Bool_t isolated, const Int_t nSpawn, const Int_t * const spawn) {
-  //See header file for documentation
-
-  fhPtVsInvMass->Fill(pion->Pt(), pion->M());
-  FillTriggerCounters(pion->Pt(), isolated);
-  
-  if (tracks) {
-    for(int ij = 0; ij < tracks->GetEntriesFast(); ij++) {
-      AliAODTrack * track = dynamic_cast<AliAODTrack*>(tracks->At(ij));
-      if(track) {
-                               
-                               if(nSpawn && spawn) {;}
-
-       //if(pion->IsMySpawn(track->GetID(), nSpawn, spawn)) continue;
+//________________________________________________________________________________
+// void AliAnaConvCorrPion::Process(TClonesArray * pions, TClonesArray * photons, TClonesArray * tracks) {
+
+//   for(Int_t ip = 0; ip < pions->GetEntriesFast(); ip++) {
+
+//     AliAODConversionParticle * pion = static_cast<AliAODConversionParticle*>(pions->UncheckedAt(ip));
        
-       //      if (track->Pt() < GetCorrelatedPt() ) continue;
-       Double_t x[4] = {pion->Pt(), track->Pt(), GetDPhi(pion->Phi() - track->Phi()), TMath::Abs(pion->M()) };
-       if(  (pion->M() > 0.1) &&  (pion->M() < 0.17) ){
-         fhdPhiVsInvMassPi0->Fill(x); 
-       } else if ((pion->M() > 0.5) &&  (pion->M() < 0.6 ) ) {
-         fhdPhiVsInvMassEta->Fill(x); 
-       }
-       FillHistograms(pion->Pt(), track->Pt(), GetDPhi(pion->Phi() - track->Phi()), pion->Eta() - track->Eta(), isolated);
-      }
-    }
-  }
-}
+//     Int_t tIDs[4] = {-1, -1, -1, -1};
+//     AliAODConversionParticle * photon1 = static_cast<AliAODConversionParticle*>(photons->UncheckedAt(pion->GetLabel(0)));
+//     tIDs[0] =  photon1->GetLabel(0);
+//     tIDs[1] =  photon1->GetLabel(1);
+//     AliAODConversionParticle * photon2 = static_cast<AliAODConversionParticle*>(photons->UncheckedAt(pion->GetLabel(1)));
+//     tIDs[2] =  photon2->GetLabel(0);
+//     tIDs[3] =  photon2->GetLabel(1);
+       
+//     CorrelateWithTracks(static_cast<AliAODConversionParticle*>(pion), tracks, tIDs, kFALSE);
+//   }
+// }
+
index bc0db40167e05b5e9f33d84e8657159bd7fc21bf..60b3e0082ffc18729f83e1df7a03e4038d7781e7 100644 (file)
 #define ALIANACONVCORRPION_CXX\r
 \r
 #include "AliAnaConvCorrBase.h"\r
-#include "THnSparse.h"\r
+class TH2D;\r
+//#include "THnSparse.h"\r
 \r
-class AliAODConversionPhoton;\r
+//class AliAODConversionPhoton;\r
 class TClonesArray;\r
 \r
 class AliAnaConvCorrPion : public AliAnaConvCorrBase {\r
@@ -21,26 +22,36 @@ class AliAnaConvCorrPion : public AliAnaConvCorrBase {
 public:\r
 \r
   AliAnaConvCorrPion(); \r
-  AliAnaConvCorrPion(TString name);\r
+  AliAnaConvCorrPion(TString name, TString title);\r
   virtual ~AliAnaConvCorrPion();\r
 \r
+  TAxis& GetAxisM() { return fAxisM; }\r
+\r
+\r
   //Correlate pions with charged tracks\r
-  virtual void CorrelateWithHadrons(AliAODConversionPhoton * pion, const TClonesArray * tracks, const Bool_t isolated, const Int_t nSpawn, const Int_t * const spawn );\r
+  //virtual void CorrelateWithHadrons(AliAODConversionPhoton * pion, const TClonesArray * tracks, const Bool_t isolated, const Int_t nSpawn, const Int_t * const spawn );\r
 \r
   void CreateHistograms();\r
+\r
+  //void Process(TClonesArray * pions, TClonesArray * photons, TClonesArray * tracks);\r
+  \r
+\r
+  void FillTriggerCounters(const AliAODConversionParticle * particle, Bool_t isolated);\r
   \r
  private:\r
 \r
+  void InitMassAxis();\r
   //Get array of track labels of the 4 decay electrons (2gamma * 2 electrons)\r
-  void GetTrackLabels(const AliAODConversionPhoton * pion, const TClonesArray * photons, Int_t* trackLabels);\r
+  //void GetTrackLabels(const AliAODConversionPhoton * pion, const TClonesArray * photons, Int_t* trackLabels);\r
+\r
+  //TH2F * fhPtVsInvMass;\r
 \r
-  THnSparseF * fhdPhiVsInvMassPi0; //!\r
-  THnSparseF * fhdPhiVsInvMassEta; //!\r
-  TH2F * fhPtVsInvMass;\r
+  TH2D * hTriggerPtvsMass; //Histograms containing number of triggers in various bins\r
+  TAxis fAxisM;  //Mass axis\r
 \r
   AliAnaConvCorrPion(const AliAnaConvCorrPion&); // not implemented\r
   AliAnaConvCorrPion& operator=(const AliAnaConvCorrPion&); // not implemented\r
-  ClassDef(AliAnaConvCorrPion, 1); // example of analysis\r
+  ClassDef(AliAnaConvCorrPion, 2); //\r
 \r
 };\r
 \r
index 40a6972bc636658fdf39b93d99b3777030fa7b8a..b9bedd433d42f516615e4d5d8167b55c239f9d0b 100644 (file)
@@ -33,12 +33,12 @@ ClassImp(AliAnaConvCorrPionJet)
 
 //________________________________________________________________________________
 AliAnaConvCorrPionJet::AliAnaConvCorrPionJet() :
-AliAnaConvCorrBase("photonJet") {
+AliAnaConvCorrBase("PionJet", "Pion Jet") {
   //consctructor
 }
 //________________________________________________________________________________
 AliAnaConvCorrPionJet::AliAnaConvCorrPionJet(TString name) :
-AliAnaConvCorrBase(name) {
+  AliAnaConvCorrBase(name, "Pion Jet") {
   //consctructor
 }
 
@@ -51,7 +51,7 @@ AliAnaConvCorrPionJet::~AliAnaConvCorrPionJet() {
 ///_______________________________________________________________________________
 void AliAnaConvCorrPionJet::CorrelateWithHadrons(const AliAODConversionParticle * const pion, const TClonesArray * const jets, const Bool_t isolated) {
 
-  FillTriggerCounters(pion->Pt(), isolated);
+  FillTriggerCounters(pion, isolated);
 
   //See header file for documentation
   if (jets) {
@@ -59,7 +59,7 @@ void AliAnaConvCorrPionJet::CorrelateWithHadrons(const AliAODConversionParticle
     for(int ij = 0; ij < jets->GetEntriesFast(); ij++) {
       AliAODJet * jet = dynamic_cast<AliAODJet*>(jets->At(ij));
       if(jet) {
-       FillHistograms(pion->Pt(), jet->Pt(), GetDPhi(pion->Phi() - jet->Phi()), pion->Eta() - jet->Eta(), isolated);
+               //FillHistograms(pion->Pt(), jet->Pt(), GetDPhi(pion->Phi() - jet->Phi()), pion->Eta() - jet->Eta(), isolated);
       }
     }
   }
index 76ab667c46c59aa17f92fa46cb8cfabdb38429a8..1d1409222dc395bf55a5db764f6704a318d9f61b 100644 (file)
@@ -171,6 +171,28 @@ void AliAnaConvIsolation::CreateHistograms()
 
 }
 
+//________________________________________________________________________
+Bool_t AliAnaConvIsolation::IsLeading(AliAODConversionParticle * particle, const TObjArray * tracks, const TObjArray * aodParticles) {
+  //Check if particle is highest pt particle in cone
+  for(Int_t ip = 0; ip < aodParticles->GetEntriesFast(); ip++) {
+       AliAODConversionParticle * oparticle = static_cast<AliAODConversionParticle*>(aodParticles->UncheckedAt(ip));
+       if(oparticle == particle) continue;
+       if(oparticle->Pt() > particle->Pt() && 
+          IsInCone(particle->Eta() - oparticle->Eta(), 
+                               particle->Phi() - oparticle->Phi(), 
+                               fConeSize) ) {
+         return kFALSE;
+       }
+  }
+
+ for(Int_t it = 0; it < tracks->GetEntriesFast(); it++) {
+       AliAODTrack * track = static_cast<AliAODTrack*>(tracks->UncheckedAt(it));
+       if(track->Pt() > particle->Pt()  && 
+          IsInCone(particle->Eta() - track->Eta(), particle->Phi() - track->Phi(), fConeSize) ) return kFALSE;
+  }
+
+  return kTRUE;
+}
 
 //_________________________________________________________________________
 Bool_t AliAnaConvIsolation::IsIsolated(AliAODConversionPhoton * particle, const TClonesArray * const tracks, const Int_t nSpawn, const Int_t * const spawn, Bool_t &leading) {
index 29511230478a859f5f0c8037838325062ba1650c..63ded7ff801d5ffe3a9ba32cb4e0cbc63a21d996 100644 (file)
 #ifndef ALIANACONVISOLATION_CXX\r
 #define ALIANACONVISOLATION_CXX\r
 \r
+#include <iostream>\r
 #include "TObject.h"\r
 #include "Rtypes.h"\r
 #include "TF1.h"\r
+#include <TMath.h>\r
 class TH2F;\r
 class TH1F;\r
 class AliAODConversionPhoton;\r
+class AliAODConversionParticle;\r
 class TClonesArray;\r
 class TList;\r
 \r
+using namespace std;\r
+\r
 class AliAnaConvIsolation : public TObject {\r
 \r
 public:\r
@@ -32,8 +37,8 @@ public:
 \r
 \r
   ///Set And get cone size\r
-  void SetConeSize(Float_t cs) {fConeSize = cs;}\r
-  Float_t GetConeSize() const {return fConeSize;}\r
+  void SetConeSize(Float_t cs) {fConeSize = cs*cs;}\r
+  Float_t GetConeSize() const {return TMath::Sqrt(fConeSize);}\r
 \r
 \r
   //Set and get max pt threshold\r
@@ -64,6 +69,9 @@ public:
     fCurveFunction = curve;\r
   }\r
 \r
+  Bool_t IsLeading(AliAODConversionParticle  * particle, const TObjArray * tracks, const TObjArray * aodParticles);\r
+\r
+\r
   //Fill histograms\r
   void FillHistograms(Float_t pt, Float_t ptMax, Float_t ptSum, Bool_t isolated, Int_t nTracks);\r
 \r
@@ -74,13 +82,14 @@ public:
   Bool_t IsIsolated( const AliAODConversionPhoton * const particle, const TClonesArray * const tracks, Bool_t &leading);\r
   Bool_t IsIsolated( AliAODConversionPhoton * const particle, const TClonesArray * const tracks, const Int_t nSpawn, const Int_t * const spawn, Bool_t &leading );\r
 \r
- private:\r
-\r
   //Is eta - phi distance smaller than conesize ?\r
-  Bool_t IsInCone(Float_t dEta, Float_t dPhi, Float_t coneSize) const {\r
-    return ( (dEta*dEta + dPhi*dPhi) < coneSize*coneSize);\r
+  Bool_t IsInCone(Float_t dEta, Float_t dPhi, const Float_t coneSize) const {\r
+       dPhi = (TMath::Abs(dPhi) < TMath::Pi()) ? dPhi : TMath::TwoPi() - TMath::Abs(dPhi); \r
+    return ( (dEta*dEta + dPhi*dPhi) < coneSize);\r
   }\r
 \r
+ private:\r
+\r
   ///Evaluate whether particle is isolated according to criterie\r
   Bool_t EvaluateIsolationCriteria(Float_t ptSum, Float_t pt) const;\r
 \r
diff --git a/PWG4/GammaConv/ConvCorrelations/AliAnalysisTaskGammaJet.cxx b/PWG4/GammaConv/ConvCorrelations/AliAnalysisTaskGammaJet.cxx
deleted file mode 100644 (file)
index f64b089..0000000
+++ /dev/null
@@ -1,694 +0,0 @@
-/**************************************************************************
- * This file is property of and copyright by the ALICE HLT Project        *
- * ALICE Experiment at CERN, All rights reserved.                         *
- *                                                                        *
- * Primary Author: Svein Lindal <slindal@fys.uio.no>                      *
- *                                                                        *
- * Permission to use, copy, modify and distribute this software and its   *
- * documentation strictly for non-commercial purposes is hereby granted   *
- * without fee, provided that the above copyright notice appears in all   *
- * copies and that both the copyright notice and this permission notice   *
- * appear in the supporting documentation. The authors make no claims     *
- * about the suitability of this software for any purpose. It is          *
- * provided "as is" without express or implied warranty.                  *
- **************************************************************************/
-
-/// @file   AliAnalysisTaskGammaJet.cxx
-/// @author Svein Lindal
-/// @brief  Class used to run conversion gamma/pion - hadron/jet analysis
-
-
-#include <iostream>
-#include "TChain.h"
-#include "TTree.h"
-#include "TH1F.h"
-#include "TCanvas.h"
-#include "TString.h"
-#include "TObjArray.h"
-
-
-#include "TH2F.h"
-
-#include "AliAnalysisTask.h"
-#include "AliAnalysisManager.h"
-#include "AliAnalysisTaskGammaJet.h"
-
-#include "AliESDEvent.h"
-#include "AliESDCaloCluster.h"
-#include "AliESDInputHandler.h"
-
-#include "AliAODPWG4ParticleCorrelation.h"
-#include "AliAODEvent.h"
-#include "AliAODHandler.h"
-#include "AliAODCaloCluster.h"
-#include "AliAODConversionPhoton.h"
-#include "AliAODJet.h"
-
-#include "AliAODInputHandler.h"
-
-#include "AliAnaConvIsolation.h"
-
-#include "AliAnaConvCorrPhoton.h"
-#include "AliAnaConvCorrPhotonJet.h"
-#include "AliAnaConvCorrPionJet.h"
-#include "AliAnaConvCorrPion.h"
-
-#include "AliAODTrack.h"
-
-// Gamma - jet correlation analysis task
-// Authors: Svein Lindal
-
-
-using namespace std;
-
-ClassImp(AliAnalysisTaskGammaJet)
-
-//________________________________________________________________________
-AliAnalysisTaskGammaJet::AliAnalysisTaskGammaJet() : 
-AliAnalysisTaskSE(), 
-  fOutputList(NULL), 
-  fEtaLimit(0.8),
-  fDeltaAODFileName("AliAODGammaConversion.root"),
-  fGammaCutString("GammaConv"),
-  fPionCutString("GammaConv"),
-  fAnaIsolation(NULL), 
-  fAnaIsolationArray(NULL), 
-  fAnaPionArray(NULL), 
-  fAnaPhotonArray(NULL),
-  fAnaPhotonJetArray(NULL),
-  fAnaPionJetArray(NULL),
-  fMinPt(1.0), 
-  fMinNTracks(20)
-{
-  // Dummy Constructor
-}
-
-//________________________________________________________________________________
-AliAnalysisTaskGammaJet::~AliAnalysisTaskGammaJet() {
-  //Destructor
-}
-
-
-//________________________________________________________________________
-AliAnalysisTaskGammaJet::AliAnalysisTaskGammaJet(const char *name) : 
-  AliAnalysisTaskSE(name), 
-  fOutputList(0), 
-  fEtaLimit(0.8),
-  fDeltaAODFileName("AliAODGammaConversion.root"),
-  fGammaCutString("GammaConv"),
-  fPionCutString("GammaConv"),
-  fAnaIsolation(NULL),
-  fAnaIsolationArray(NULL),
-  fAnaPionArray(NULL),
-  fAnaPhotonArray(NULL),
-  fAnaPhotonJetArray(NULL), 
-  fAnaPionJetArray(NULL),
-  fMinPt(1.0),
-  fMinNTracks(20)
-{
-  // Constructor
-  // Output slot #1 writes into a TList container
-  DefineOutput(1, TList::Class());
-
-  fAnaIsolation = new AliAnaConvIsolation();
-
-  fAnaPionArray = new TObjArray();
-  fAnaPionArray->SetOwner(kTRUE);
-
-  fAnaPhotonArray = new TObjArray();
-  fAnaPhotonArray->SetOwner(kTRUE);
-
-  fAnaPhotonJetArray = new TObjArray();
-  fAnaPhotonJetArray->SetOwner(kTRUE);
-
-  fAnaPionJetArray = new TObjArray();
-  fAnaPionJetArray->SetOwner(kTRUE);
-
-  fAnaIsolationArray = new TObjArray();
-  fAnaIsolationArray->SetOwner(kTRUE);
-
-  fhTracksMissingPt[0] = NULL;
-  fhTracksMissingPt[1] = NULL;
-
-
-
-}
-
-//________________________________________________________________________
-void AliAnalysisTaskGammaJet::UserExec(Option_t *) 
-{
-  //Inherited from AliAnalysisTaskSE
-
-  ///Get AOD event
-  AliAODEvent * aodEvent = GetAODEvent();
-  if(!aodEvent) {
-    cout << "No AOD event!!" << endl;
-    return;
-  }
-
-  TClonesArray * photons = GetConversionGammas(aodEvent);
-  if(!photons) {
-    cout << "No Conversion gamma!!" << endl;
-    return;
-  }
-
-  TClonesArray * pions = GetConversionPions(aodEvent);
-  if(!pions) {
-    cout << "No Conversion pion branch!!" << endl;
-    return;
-  }
-
-  TClonesArray * tracks = aodEvent->GetTracks();
-  if(!tracks) {
-    cout << "Can't get tracks!!" << endl;
-    return;
-  }
-
-  if(!((Entry() )%10000)) {
-    AliInfo(Form("%s ----> Processing event # %lld", CurrentFileName(), Entry()));
-    AliInfo(Form("%d %d", photons->GetEntriesFast(), pions->GetEntriesFast()));
-  }
-
-
-  if(pions->GetEntriesFast() > photons->GetEntriesFast() ) {
-    cout << "WTF!!!!"<<endl;
-  }
-
- // if( (photons->GetEntriesFast() > 0) ) {
- //   cout << "Neext evetn !!!!!!!!!!!!!!!!"  << Entry() << endl;
- // } else {
- //   cout << "____________________________"<<endl;
- // }
-
-
-  if(aodEvent->GetNumberOfTracks() < 2 && photons->GetEntriesFast() > 0 ) {
-    cout << "we have a photon but less than 2 tracks" << endl;
-    return;
-  }
-
-  if(aodEvent->GetNumberOfTracks() < fMinNTracks) return;
-
-  if( (photons->GetEntriesFast() > 0) ) {
-    ProcessConvGamma(photons, pions, tracks);
-    ProcessPions(pions, photons, tracks);
-  }
-
-
-
-  TClonesArray * jets = aodEvent->GetJets();
-  if(jets && jets->GetEntriesFast() > 0) {
-    for(int i = 0; i < fAnaPhotonJetArray->GetEntriesFast(); i++) {
-      AliAnaConvCorrPhotonJet * jetAna = dynamic_cast<AliAnaConvCorrPhotonJet*>(fAnaPhotonJetArray->At(i));
-      if(jetAna) {
-       for(Int_t iJet = 0; iJet < jets->GetEntriesFast(); iJet++) {
-         AliAODJet * jet = dynamic_cast<AliAODJet*>(jets->At(iJet));
-         if(jet) {
-           jetAna->DoJetAnalysisGamma(jet, photons, pions);
-         }                
-       }
-      }
-    }
-  }
-  PostData(1, fOutputList);
-
-}
-
-
-
-//________________________________________________________________________
-void AliAnalysisTaskGammaJet::UserCreateOutputObjects()
-{
-  //Create histograms add, to outputlist
-  fOutputList = new TList();
-  fOutputList->SetOwner(kTRUE);
-
-
-  fhTracksMissingPt[0] = new TH2F("hpttracksmissing", "hpttracksmissing",200,  0, 200, 200, 0, 200);
-  fOutputList->Add(fhTracksMissingPt[0]);
-  fhTracksMissingPt[1] = new TH2F("hpttrackpresent", "hptbothtrackspresent" ,200,  0, 200, 200, 0, 200);
-  fOutputList->Add(fhTracksMissingPt[1]);
-
-  fAnaIsolation->CreateHistograms();
-  fOutputList->Add(fAnaIsolation->GetHistograms());
-
-  for(int i = 0; i < fAnaIsolationArray->GetEntriesFast(); i++) {
-    AliAnaConvIsolation * isoAna = dynamic_cast<AliAnaConvIsolation*>(fAnaIsolationArray->At(i));
-    if(isoAna) {
-      isoAna->CreateHistograms();
-      fOutputList->Add(isoAna->GetHistograms());
-    } else {
-      AliError("problem getting ana pointer!!!");
-      cout << i << endl;
-    }
-  }
-
-  for(int i = 0; i < fAnaPhotonArray->GetEntriesFast(); i++) {
-    AliAnaConvCorrPhoton * photonAna = dynamic_cast<AliAnaConvCorrPhoton*>(fAnaPhotonArray->At(i));
-    if(photonAna) {
-      photonAna->CreateHistograms();
-      fOutputList->Add(photonAna->GetHistograms());
-    } else {
-      AliError("problem getting ana pointer!!!");
-    }
-  }
-
-
-  for(int i = 0; i < fAnaPionArray->GetEntriesFast(); i++) {
-    AliAnaConvCorrPion * pionAna = dynamic_cast<AliAnaConvCorrPion*>(fAnaPionArray->At(i));
-    if(pionAna) {
-      pionAna->CreateHistograms();
-      fOutputList->Add(pionAna->GetHistograms());
-    } else {
-      AliError("problem getting ana pointer!!!");
-    }
-  }
-
-  for(int i = 0; i < fAnaPhotonJetArray->GetEntriesFast(); i++) {
-    AliAnaConvCorrPhotonJet * jetAna = dynamic_cast<AliAnaConvCorrPhotonJet*>(fAnaPhotonJetArray->At(i));
-    if(jetAna) {
-      jetAna->CreateHistograms();
-      fOutputList->Add(jetAna->GetHistograms());
-    } else {
-      AliError("problem getting jet  ana pointer!!!");
-    }
-  }
-
-  for(int i = 0; i < fAnaPionJetArray->GetEntriesFast(); i++) {
-    AliAnaConvCorrPionJet * jetAna = dynamic_cast<AliAnaConvCorrPionJet*>(fAnaPionJetArray->At(i));
-    if(jetAna) {
-      jetAna->CreateHistograms();
-      fOutputList->Add(jetAna->GetHistograms());
-    } else {
-      AliError("problem getting jet  ana pointer!!!");
-    }
-  }
-
-  
-
-  PostData(1, fOutputList);
-
-
-}
-
-
-
-
-
-//______________________________________________________________________________________________
-void AliAnalysisTaskGammaJet::ProcessCalorimeters( const AliAODEvent * const aodEvent ) {
-  //See header file for documentation
-  TClonesArray * clusters = aodEvent->GetCaloClusters();
-  
-
-  for(int ic = 0; ic < clusters->GetEntriesFast(); ic++) {
-    AliAODCaloCluster * cluster = dynamic_cast<AliAODCaloCluster*>(clusters->At(ic));
-    if (!cluster) { 
-      AliError(Form("Error getting cluster"));
-      continue;
-    }
-
-
-    if (cluster->GetNCells() < 6) continue;
-    if (cluster->GetEmcCpvDistance() < 15) continue;
-
-    TLorentzVector tlvec;
-    
-    AliAODVertex * vertex = aodEvent->GetPrimaryVertex();
-    Double_t vertexPosition[3];
-    vertex->GetXYZ(vertexPosition);
-    cluster->GetMomentum(tlvec, vertexPosition);
-    //if (tlvec.Pt() < GetMinPt()) continue; 
-    
-  }
-  
-}
-
-//______________________________________________________________________________________________
-Bool_t AliAnalysisTaskGammaJet::EventIsSynced(const TClonesArray * const tracks, const TClonesArray * const convGamma, const TClonesArray * const pions)  {
- //See header file for documentation
-
-  for (Int_t iPhot = 0; iPhot < convGamma->GetEntriesFast(); iPhot++) {
-    AliAODConversionPhoton * photon = dynamic_cast<AliAODConversionPhoton*>(convGamma->At(iPhot));
-    if(photon) {
-      AliAODTrack * track1 = NULL;
-      AliAODTrack * track2 = NULL;
-      for(Int_t i = 0; i < tracks->GetEntriesFast(); i++) {
-       AliAODTrack * track = dynamic_cast<AliAODTrack*>(tracks->At(i));
-       if(track) {
-         if(track->GetID() == photon->GetLabel1()) track1 = track;
-         else if (track->GetID() == photon->GetLabel2()) track2 = track;
-         if(track1 && track2) break;
-       }
-      }
-      
-      if(track1 && track2) {
-       Float_t totE = track1->E() + track2->E();
-       if(TMath::Abs(totE - photon->E()) > 1.0)  {
-         cout << "BALLE BALLE "<<TMath::Abs(totE - photon->P()) << endl;
-
-         cout <<  track2->Px() << " "
-              <<  track2->Py() << " "
-              <<  track2->Pz() << " "
-              <<  track2->P() << " "
-              <<  track2->E() << endl;
-
-         cout << track1->Px() << " "
-              << track1->Py() << " "
-              << track1->Pz() << " "
-              << track1->P()  << " "
-              << track1->E()  << endl;
-
-
-         cout << track1->Px() + track2->Px() << " "
-              << track1->Py() + track2->Py() << " "
-              << track1->Pz() + track2->Pz() << " "
-              << track1->P() + track2->P() << " "
-              << track1->E() + track2->E() << endl;
-         
-         cout << photon->Px() << " " <<  photon->Py() << " " <<  photon->Pz() << " " << photon->P() << " " <<  photon->E() << endl;
-         return kFALSE;
-       }
-      } else {
-       cout << Entry() << " " << convGamma->GetEntriesFast() << " " << photon->GetLabel1() << " " << photon->GetLabel2() << endl;
-       cout << "Could not get both tracks!!! " <<endl;
-       return kFALSE;
-      }
-    }
-  }
-
-  if(pions) { 
-    //placeholder
-  }
-  
-  //cout  <<"insync"<<endl;
-  return kTRUE;
-}
-
-
-//______________________________________________________________________________________________
-Bool_t AliAnalysisTaskGammaJet::BothTracksPresent(const AliAODConversionPhoton * const photon, const TClonesArray * const tracks)  const {
-
-  AliAODTrack * track1 = NULL;
-  AliAODTrack * track2 = NULL;
-  for(Int_t i = 0; i < tracks->GetEntriesFast(); i++) {
-    AliAODTrack * track = dynamic_cast<AliAODTrack*>(tracks->At(i));
-    if(track) {
-      if(track->GetID() == photon->GetLabel1()) track1 = track;
-      else if (track->GetID() == photon->GetLabel2()) track2 = track;
-      if(track1 && track2) break;
-    }
-  }
-  
-  if(track1 && track2) {
-    return kTRUE;
-  }
-  cout << "Could not get both tracks!!! labels "  << photon->GetLabel1() << " " << photon->GetLabel2()  <<endl;
-  return kFALSE;
-  
-
-}
-
-//______________________________________________________________________________________________
-Bool_t AliAnalysisTaskGammaJet::BothGammaPresent(const AliAODConversionPhoton * const pion, const TClonesArray * const photons, const TClonesArray * const tracks)  const {
-
-  AliAODConversionPhoton * photon1 = dynamic_cast<AliAODConversionPhoton*>(photons->At(pion->GetLabel1()));
-  AliAODConversionPhoton * photon2 = dynamic_cast<AliAODConversionPhoton*>(photons->At(pion->GetLabel2()));
-
-  if(photon1 && photon2) {
-    if( BothTracksPresent(photon1, tracks) &&  BothTracksPresent(photon1, tracks)) {
-      return kTRUE;
-    }
-  } else {
-    cout << "can't find both photons "<< endl;
-  }
-  
-  return kFALSE;
-}
-
-
-
-
-//___________________________________________________________________________________________
-void AliAnalysisTaskGammaJet::ProcessConvGamma( const TClonesArray * convGamma, const TClonesArray * const pions, const TClonesArray * tracks ) {
-  //See header file for documentation
-
-
-  for (Int_t iPhot = 0; iPhot < convGamma->GetEntriesFast(); iPhot++) {
-    AliAODConversionPhoton * photon = dynamic_cast<AliAODConversionPhoton*>(convGamma->At(iPhot));
-    if(!photon) {
-      AliError(Form("ERROR: Could not receive ga %d\n", iPhot));
-      continue;
-    }
-    
-    Bool_t btp = BothTracksPresent(photon, tracks);
-    fhTracksMissingPt[btp]->Fill(photon->Pt(), tracks->GetEntriesFast());
-    if(!btp || photon->Pt() < fMinPt || TMath::Abs(photon->Eta()) > fEtaLimit) {
-      continue;
-    }
-    
-    Bool_t leading = kTRUE;
-    Bool_t decayPion = IsDecayPion(iPhot, pions);
-
-    for(Int_t i = 0; i < fAnaIsolationArray->GetEntriesFast(); i ++) {
-      AliAnaConvIsolation * isoAna = dynamic_cast<AliAnaConvIsolation*>(fAnaIsolationArray->At(i));
-      if(isoAna)  isoAna->IsIsolated(photon, tracks, leading);
-    }
-
-    Bool_t isolated = fAnaIsolation->IsIsolated(photon, tracks, leading);
-    if(leading) {
-      for(Int_t i = 0; i < fAnaPhotonArray->GetEntriesFast(); i ++) {
-       AliAnaConvCorrPhoton * ana = static_cast<AliAnaConvCorrPhoton*>(fAnaPhotonArray->At(i));
-       if(ana) {
-         ana->CorrelateWithHadrons(photon, tracks, isolated, decayPion);
-       } 
-      }
-      TClonesArray * jets = GetAODEvent()->GetJets();
-      if(jets) {
-       for(Int_t i = 0; i < fAnaPhotonJetArray->GetEntriesFast(); i ++) {
-         AliAnaConvCorrPhotonJet * ana = static_cast<AliAnaConvCorrPhotonJet*>(fAnaPhotonJetArray->At(i));
-         if(ana) {
-           ana->CorrelateWithHadrons(photon, jets, isolated);
-         } 
-       }
-      } else {
-       cout << "No jets "<<endl;
-      }
-    } 
-  } // 
-}
-
-///______________________________________________________________________________________________
-void AliAnalysisTaskGammaJet::ProcessPions( const TClonesArray * const pions, const TClonesArray * const photons, const TClonesArray * const tracks) {
-  //See header file for documentation
-
-
-  for (Int_t iPi = 0; iPi < pions->GetEntriesFast(); iPi++) {
-    AliAODConversionPhoton * pion = dynamic_cast<AliAODConversionPhoton*>(pions->At(iPi));
-    if(!pion) {
-      AliError(Form("ERROR: Could not receive ga %d\n", iPi));
-      continue;
-    }
-    
-    if (!BothGammaPresent(pion, photons, tracks) || pion->Pt() < fMinPt || TMath::Abs(pion->Eta()) > fEtaLimit ) {
-      return;
-    }
-
-    
-    Int_t trackLabels[4] = {-1, -1, -1, -1};
-    GetPionGrandChildren(pion, photons, trackLabels);
-    Bool_t leading = kTRUE;
-
-    for(Int_t i = 0; i < fAnaIsolationArray->GetEntriesFast(); i ++) {
-      AliAnaConvIsolation * isoAna = dynamic_cast<AliAnaConvIsolation*>(fAnaIsolationArray->At(i));
-      if(isoAna) isoAna->IsIsolated(pion, tracks, 4, trackLabels, leading);
-    }
-
-    Bool_t isolated = fAnaIsolation->IsIsolated(pion, tracks, 4, trackLabels, leading);
-    if(leading) {
-      for(Int_t i = 0; i < fAnaPionArray->GetEntriesFast(); i ++) {
-       AliAnaConvCorrPion * ana = dynamic_cast<AliAnaConvCorrPion*>(fAnaPionArray->At(i));
-       if(ana) ana->CorrelateWithHadrons(pion, tracks, isolated, 4, trackLabels );
-      }
-
-
-      TClonesArray * jets = GetAODEvent()->GetJets();
-      if(jets) {
-       for(Int_t i = 0; i < fAnaPionJetArray->GetEntriesFast(); i ++) {
-         AliAnaConvCorrPionJet * ana = static_cast<AliAnaConvCorrPionJet*>(fAnaPionJetArray->At(i));
-         if(ana) {
-           ana->CorrelateWithHadrons(pion, jets, isolated);
-         } 
-       }
-      } else {
-       cout << "No jets "<<endl;
-      }
-      
-      
-    } 
-  } // 
-
-  
-  // for (Int_t iPhot = 0; iPhot < photons->GetEntriesFast(); iPhot++) {
-  //   AliAODConversionPhoton * photon = dynamic_cast<AliAODConversionPhoton*>(photons->At(iPhot));
-  //   if(photon) {
-  //     for (Int_t iPhot2 = iPhot+1; iPhot2 < photons->GetEntriesFast(); iPhot2++) {
-  //   AliAODConversionPhoton * photon2 = dynamic_cast<AliAODConversionPhoton*>(photons->At(iPhot2));
-  //   if(photon2) {
-  //     Int_t trackLabels[4] = {photon->GetTrackLabel(0), photon->GetTrackLabel(1), photon2->GetTrackLabel(0), photon2->GetTrackLabel(1)};
-  //     AliAODConversionPhoton * pion = new AliAODConversionPhoton(photon, photon2);
-  //     Bool_t leading = kTRUE;
-  //     Bool_t isolated = fAnaIsolation->IsIsolated(pion, tracks, 4, trackLabels, leading);
-  //     if(leading) {
-  //       for(Int_t i = 0; i < fAnaPionArray->GetEntriesFast(); i ++) {
-  //         AliAnaConvCorrPion * ana = dynamic_cast<AliAnaConvCorrPion*>(fAnaPionArray->At(i));
-  //         if(ana) ana->CorrelateWithHadrons(pion, tracks, isolated, 4, trackLabels );
-  //       }
-  //       delete pion;
-  //     }
-  //   }
-  //     }
-  //   }
-  // }
-}
-
-///_______________________________________________________________________________________________
-Bool_t AliAnalysisTaskGammaJet::IsDecayPion(Int_t iPhot, const TClonesArray * const pions) {
-  //See header file for documentation
-
-  for(int ip = 0; ip < pions->GetEntriesFast(); ip++) {
-    AliAODConversionPhoton * pion = dynamic_cast<AliAODConversionPhoton*>(pions->At(ip));
-    if(pion) {
-      if(pion->GetLabel1() == iPhot || pion->GetLabel2() == iPhot) 
-       
-       return kTRUE;
-    } else {
-      AliError("pion corrupted!");
-    }
-  }
-
-  return kFALSE;
-}
-
-
-///_______________________________________________________________________________
-Bool_t AliAnalysisTaskGammaJet::UserNotify() {
-    //See header file for documentation
-
-    AliInfo(Form("%s ----> Processing event # %lld", CurrentFileName(), Entry()));
-
-    // AliAnaConvCorrPhoton * phJetAna = dynamic_cast<AliAnaConvCorrPhoton*>(fAnaPhotonArray->At(0));
-    // phJetAna->PrintStatistics();
-
-    return kTRUE;
-
-}
-
-///_______________________________________________________________________________
-void AliAnalysisTaskGammaJet::NotifyRun() {
-  //See header file for documentation
-  
-  AliInfo(Form("we have a new run: %d", fCurrentRunNumber));
-  cout << Form("we have a new run: %d", fCurrentRunNumber) << endl;
-  
-}
-
-///_______________________________________________________________________________
-void AliAnalysisTaskGammaJet::GetPionGrandChildren(const AliAODConversionPhoton * pion, const TClonesArray * photons, Int_t* trackLabels) {
-  ///Get the track labels of the electrons reconstructed as gamma forming the pion
-  
-  for(Int_t i = 0; i< 2; i++) {
-    AliAODConversionPhoton * gamma = dynamic_cast<AliAODConversionPhoton*>(photons->At(pion->GetLabel(i)));
-    
-    if(gamma) { 
-      for(Int_t j = 0; j< 2; j++) {
-       trackLabels[ i*2+ j] = gamma->GetLabel(j);
-      }
-      
-    } else {
-      cout << "AliAnaConvCorrPion::GetTrackLabels() :: Not good!!!"<<endl;
-    }
-  }
-}
-
-
-
-
-//_____________________________________________________________________
-void AliAnalysisTaskGammaJet::Terminate(Option_t *) {
-  // Draw result to the screen
-  // Called once at the end of the query
-}
-
-//_____________________________________________________________________
-AliAODEvent * AliAnalysisTaskGammaJet::GetAODEvent() {
-  //Get the AOD event from whereever it might be
-  AliAODEvent * aodEvent = dynamic_cast<AliAODEvent*>(InputEvent());
-  
-
-  if(!aodEvent) {
-    cout << "!!!!!!!!!!!!!!!!!!!!!!!!Getting AODEvent();" << endl;
-    aodEvent = AODEvent();
-  } else {
-    //cout << "got aod from input event1" << endl;
-  }
-  return aodEvent;
-
-}
-
-//_____________________________________________________________________
-TClonesArray * AliAnalysisTaskGammaJet::GetConversionGammas(const AliAODEvent * aodEvent) {
-
-  //Get Conversion gamma branch of AOD. First try standard AOD
-  TClonesArray * convGamma = dynamic_cast<TClonesArray*>(aodEvent->FindListObject(Form("%s_gamma", fGammaCutString.Data())));
-  
-  //If it's there, send it back
-  if(convGamma)  {
-    //cout << "found conv gamma branch in aod event!!!"<<endl;
-    return convGamma;
-  }else {
-    cout << "did NOT !!! find conv gamma branch in aod event!!!"<<endl;
-  }
-
-  //If AOD not in standard file have to locate it in delta AOD
-  if( !(fDeltaAODFileName.Length() > 0)  ) return NULL;
-  
-  AliAODHandler * aodHandler = dynamic_cast<AliAODHandler*>(AliAnalysisManager::GetAnalysisManager()->GetOutputEventHandler()); 
-  if(aodHandler) {
-    AliAODExtension * gExt = dynamic_cast<AliAODExtension*>(aodHandler->GetExtensions()->FindObject(fDeltaAODFileName));
-    if(gExt) {
-      AliAODEvent * gcEvent = gExt->GetAOD();
-      return dynamic_cast<TClonesArray*>(gcEvent->FindListObject(Form("%s_gamma", fGammaCutString.Data())));
-    }
-  }
-
-  cout << "could not find branch " << Form("%s_gamma", fPionCutString.Data()) << endl; 
-  return NULL;
-}
-
-
-
-///_____________________________________________________________________
-TClonesArray * AliAnalysisTaskGammaJet::GetConversionPions(const AliAODEvent * aodEvent) {
-
-  //Get Conversion pion branch of AOD. First try standard AOD
-  TClonesArray * convGamma = dynamic_cast<TClonesArray*>(aodEvent->FindListObject(Form("%s_Pi0", fPionCutString.Data()) ));
-  
-  //If it's there, send it back
-  if(convGamma)  return convGamma;
-
-
-  //If AOD not in standard file have to locate it in delta AOD
-  if( !(fDeltaAODFileName.Length() > 0)  ) return NULL;
-  
-  AliAODHandler * aodHandler = dynamic_cast<AliAODHandler*>(AliAnalysisManager::GetAnalysisManager()->GetOutputEventHandler()); 
-  if(aodHandler) {
-    AliAODExtension * gExt = dynamic_cast<AliAODExtension*>(aodHandler->GetExtensions()->FindObject(fDeltaAODFileName));
-    if(gExt) {
-      AliAODEvent * gcEvent = gExt->GetAOD();
-      return dynamic_cast<TClonesArray*>(gcEvent->FindListObject(Form("%s_Pi0", fPionCutString.Data())));
-    }
-  }  
-  return NULL;
-}
diff --git a/PWG4/GammaConv/ConvCorrelations/AliAnalysisTaskGammaJet.h b/PWG4/GammaConv/ConvCorrelations/AliAnalysisTaskGammaJet.h
deleted file mode 100644 (file)
index 26a8132..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-/* This file is property of and copyright                                 *\r
- * ALICE Experiment at CERN, All rights reserved.                         *\r
- * See cxx source for full Copyright notice                               */\r
-\r
-/// @file   AliAnalysisTaskGammaJet.h\r
-/// @author Svein Lindal\r
-/// @brief  Class used to run isolation studies of conversion gamma / pions\r
\r
-\r
-\r
-#ifndef ALIANALYSISTASKGAMMAJET_H\r
-#define ALIANALYSISTASKGAMMAJET_H\r
-\r
-\r
-\r
-class TH1F;\r
-class AliESDEvent;\r
-class AliGammaConversionAODObject;\r
-class AliAODConversionPhoton;\r
-class AliAODPWG4ParticleCorrelation;\r
-class AliAODPWG4Particle;\r
-class TObjArray;\r
-class TString;\r
-class TClonesArray;\r
-\r
-\r
-#include "AliAnaConvIsolation.h"\r
-#include "AliAnalysisTaskSE.h"\r
-\r
-class AliAnalysisTaskGammaJet : public AliAnalysisTaskSE {\r
-\r
-public:\r
\r
-  AliAnalysisTaskGammaJet(); \r
-  AliAnalysisTaskGammaJet(const char *name);\r
-  virtual ~AliAnalysisTaskGammaJet();\r
-  \r
-  virtual void   UserCreateOutputObjects();\r
-  virtual void   UserExec(Option_t *option);\r
-  virtual void   Terminate(Option_t *);\r
-\r
-  void SetDeltaAODFileName(TString string) { fDeltaAODFileName = string;}\r
\r
-  AliAnaConvIsolation * GetIsolation() const {return fAnaIsolation;}\r
-  void SetIsolation( AliAnaConvIsolation * isolation) { fAnaIsolation = isolation; }\r
-\r
-  void SetGammaCutId(TString cut) { fGammaCutString = Form("GammaConv_%s", cut.Data());}\r
-  void SetPionCutId(TString cut) { fPionCutString = Form("GammaConv_%s", cut.Data());}\r
-\r
-  void SetMinPt(Float_t minpt) { fMinPt = minpt;}\r
-  void SetMinNTracks(Int_t nTracks) { fMinNTracks = nTracks; }\r
-\r
-  void AddIsolationAna(TObject * isoAna) { fAnaIsolationArray->Add(isoAna);}\r
-  void AddPhotonHadronAna(TObject * ana) { fAnaPhotonArray->Add(ana);}\r
-  void AddPhotonJetAna(TObject * ana) { fAnaPhotonJetArray->Add(ana);}\r
-  void AddPionJetAna(TObject * ana) { fAnaPionJetArray->Add(ana);}\r
-  void AddPionHadronAna(TObject * ana) { fAnaPionArray->Add(ana);}\r
-\r
-  void GetPionGrandChildren(const AliAODConversionPhoton * const pion, const TClonesArray * photons, Int_t* trackLabels);\r
-  void SetEtaLimits(Float_t eta) { fEtaLimit = eta; }\r
-\r
-\r
- private:\r
-\r
-  void NotifyRun();\r
-  Bool_t UserNotify();\r
-  Bool_t EventIsSynced(const TClonesArray * const tracks, const TClonesArray * const convGamma, const TClonesArray * const pions);\r
-  Bool_t BothTracksPresent(const AliAODConversionPhoton * const photon, const TClonesArray * const tracks) const;\r
-  Bool_t BothGammaPresent(const AliAODConversionPhoton * const pion, const TClonesArray * const photons, const TClonesArray * const tracks) const;\r
-  AliAODEvent * GetAODEvent();\r
-\r
-  //Get Conversion gammas branch\r
-  TClonesArray * GetConversionGammas(const AliAODEvent * aodEvent);\r
-  TClonesArray * GetConversionPions(const AliAODEvent * aodEvent);\r
-\r
-  //Process conv gamma\r
-  void ProcessConvGamma( const TClonesArray * const convGamma, const TClonesArray * const pions, const TClonesArray * const tracks);\r
-  void ProcessPions( const TClonesArray * const pions, const TClonesArray * const photons, const TClonesArray * const tracks);\r
-\r
-  //Process calorimeters\r
-  void ProcessCalorimeters( const AliAODEvent * const aodEvent );\r
-  \r
-\r
-  //Does any pions have given photon (iPhot) index listed as daughter\r
-  Bool_t IsDecayPion(Int_t iPhot, const TClonesArray * const pions); //see above\r
-\r
-\r
-  TList       *fOutputList;       //! Output list\r
-  Float_t     fEtaLimit;\r
-  TString     fDeltaAODFileName;  //! File where Gamma Conv AOD is located, if not in default AOD\r
-  TString     fGammaCutString;   //! The cut string of the conversion analysis used to produce input AOD\r
-  TString     fPionCutString;   //! The cut string of the conversion analysis used to produce input AOD\r
-\r
-\r
-  AliAnaConvIsolation * fAnaIsolation;\r
-\r
-  TObjArray * fAnaIsolationArray; //!Array of isolation analysis objects\r
-  TObjArray * fAnaPionArray;      //!Array of pion - hadron ana objects\r
-  TObjArray * fAnaPhotonArray;    //!Array of photon - hadron ana objects\r
-  TObjArray * fAnaPhotonJetArray; //!Array of photon - jet ana objects\r
-  TObjArray * fAnaPionJetArray; //!Array of photon - jet ana objects\r
-\r
-  Float_t fMinPt; //Minimum pt for leading particles\r
-  Int_t fMinNTracks; //Minimum number of tracks in event\r
-  \r
-  TH2F * fhTracksMissingPt[2];\r
\r
-\r
-\r
-  \r
-  AliAnalysisTaskGammaJet(const AliAnalysisTaskGammaJet&); // not implemented\r
-  AliAnalysisTaskGammaJet& operator=(const AliAnalysisTaskGammaJet&); // not implemented\r
-  \r
-  ClassDef(AliAnalysisTaskGammaJet, 4); // example of analysis\r
-};\r
-\r
-#endif\r
index ba7ffc71492326489e77aa7b0766ced295c77fa4..0a10f8a06bb8c47f6a45f26d11ae165bc105c2bb 100644 (file)
@@ -11,7 +11,6 @@
 #pragma link C++ class AliGammaConversionBGHandler+;
 #pragma link C++ class AliAnalysisTaskGammaConvDalitz+;
 #pragma link C++ class AliAnalysisTaskGCPartToPWG4Part+;
-#pragma link C++ class AliAnalysisTaskGammaJet+;
 
 #pragma link C++ class AliAnaConvIsolation+;
 #pragma link C++ class AliAnaConvCorrBase++;