Updating corr classes and isolation
authorslindal <slindal@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 6 Jan 2012 09:40:52 +0000 (09:40 +0000)
committerslindal <slindal@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 6 Jan 2012 09:40:52 +0000 (09:40 +0000)
PWG4/GammaConv/ConvCorrelations/AliAnaConvCorrBase.cxx
PWG4/GammaConv/ConvCorrelations/AliAnaConvCorrBase.h
PWG4/GammaConv/ConvCorrelations/AliAnaConvCorrPion.cxx
PWG4/GammaConv/ConvCorrelations/AliAnaConvIsolation.cxx
PWG4/GammaConv/ConvCorrelations/AliAnaConvIsolation.h

index 6cb0fa1..e45e378 100644 (file)
@@ -86,6 +86,10 @@ void AliAnaConvCorrBase::SetUpDefaultBins() {
   fAxiscPt.SetNameTitle("cPt", "track Pt");
   fAxesList.AddAt(&fAxiscPt, 3);
 
+  // TAxis * isoAxis = new TAxis();
+  // isoAxis->Set(2, 0, 2);
+  // fAxesList.AddAt(isoAxis, 5);
+  
   for(int iIso = 0; iIso < 2; iIso++) {
     fHNTriggers[iIso] = NULL;
   }
@@ -200,7 +204,7 @@ void AliAnaConvCorrBase::FillTriggerCounters(const AliAODConversionParticle * pa
 
 
 //________________________________________________________________
-void AliAnaConvCorrBase::CorrelateWithTracks(AliAODConversionParticle * particle, TObjArray * tracks, Int_t const tIDs[4], Bool_t isolated /*= kFALSE*/) {
+void AliAnaConvCorrBase::CorrelateWithTracks(const AliAODConversionParticle * particle, const TObjArray * tracks, Int_t const tIDs[4], Bool_t isolated /*= kFALSE*/) {
   //Correlate particle with tracks
 
   FillTriggerCounters(particle, isolated);
index c9a9fd6..202cb82 100644 (file)
@@ -63,7 +63,7 @@ public:
 \r
   void PrintStatistics();\r
 \r
-  void CorrelateWithTracks(AliAODConversionParticle * particle, TObjArray * tracks, const Int_t tIDs[4], Bool_t isolated);\r
+  void CorrelateWithTracks(const AliAODConversionParticle * particle, const 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
index fcad528..35de87a 100644 (file)
@@ -59,8 +59,9 @@ AliAnaConvCorrPion::AliAnaConvCorrPion(TString name, TString title = "Pion Corr"
 AliAnaConvCorrPion::~AliAnaConvCorrPion() {
   //destructor
 }
-
+//________________________________________________________________________________
 void AliAnaConvCorrPion::InitMassAxis() {
+  ///Add mass axis to axis list
   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");
index 1d14092..ea8d7fa 100644 (file)
@@ -46,18 +46,18 @@ AliAnaConvIsolation::AliAnaConvIsolation () : TObject(),
   fMaxPtThreshold(0),
   fSumPtThreshold(0),
   fMaxPtFraction(0),
-  fSumPtFraction(0),
-  fHistograms(NULL),
-  fHistogramMaxPt(50)  
+  fSumPtFraction(0)
+  // fHistograms(NULL),
+  // fHistogramMaxPt(50)  
 {
   //Constructor
-  for(Int_t i = 0; i < 2; i++){
-    fhMaxPtInCone[i] = NULL;
-    fhSumPtInCone[i] = NULL;
-    fhSumPtVsMaxPt[i] = NULL;
-    fhPtCandidates[i] = NULL;
-    fhTrackMult[i] = NULL;
-  }
+  // for(Int_t i = 0; i < 2; i++){
+  //   fhMaxPtInCone[i] = NULL;
+  //   fhSumPtInCone[i] = NULL;
+  //   fhSumPtVsMaxPt[i] = NULL;
+  //   fhPtCandidates[i] = NULL;
+  //   fhTrackMult[i] = NULL;
+  // }
   
   
 }
@@ -72,18 +72,21 @@ AliAnaConvIsolation::AliAnaConvIsolation(Float_t coneSize, Float_t maxPtThreshol
   fMaxPtThreshold(maxPtThreshold),
   fSumPtThreshold(sumPtThreshold),
   fMaxPtFraction(maxPtFraction),
-  fSumPtFraction(sumPtFraction),
-  fHistograms(NULL),
-  fHistogramMaxPt(50)
+  fSumPtFraction(sumPtFraction)
+  // fHistograms(NULL),
+  // fHistogramMaxPt(50)
 {
   //Constructor
-  for(Int_t i = 0; i < 2; i++){
-    fhMaxPtInCone[i] = NULL;
-    fhSumPtInCone[i] = NULL;
-    fhSumPtVsMaxPt[i] = NULL;
-    fhPtCandidates[i] = NULL;
-    fhTrackMult[i] = NULL;
-  }
+  // for(Int_t i = 0; i < 2; i++){
+  //   fhMaxPtInCone[i] = NULL;
+  //   fhSumPtInCone[i] = NULL;
+  //   fhSumPtVsMaxPt[i] = NULL;
+  //   fhPtCandidates[i] = NULL;
+  //   fhTrackMult[i] = NULL;
+  // }
+
+  fIsoCurve = new TF1("Isolation_curve", fCurveFunction.Data(), 0, 100);
+
 }
 
 
@@ -95,44 +98,43 @@ AliAnaConvIsolation::~AliAnaConvIsolation() {
 
 
 //________________________________________________________________________
-void AliAnaConvIsolation::CreateHistograms()
-{
+// void AliAnaConvIsolation::CreateHistograms()
+// {
        //Create histograms
-  if(!fHistograms) fHistograms = new TList();
-  fHistograms->SetName(Form("Isolation_histo_cone_%f_maxPt_%f_sumPt_%f", fConeSize, fSumPtThreshold, fMaxPtThreshold));
+  // if(!fHistograms) fHistograms = new TList();
+  // fHistograms->SetName(Form("Isolation_histo_cone_%f_maxPt_%f_sumPt_%f", fConeSize, fSumPtThreshold, fMaxPtThreshold));
 
-  fIsoCurve = new TF1("Isolation_curve", fCurveFunction.Data(), 0, 100);
-  fHistograms->Add(fIsoCurve);
+  //fHistograms->Add(fIsoCurve);
 
-  cout << "Creatin isolation histograms conesize :" << fConeSize << endl;
+  //cout << "Creatin isolation histograms conesize :" << fConeSize << endl;
 
   //Create histograms add, to outputlis
-  for(Int_t i = 0; i < 2; i++){
-    fhMaxPtInCone[i] = new TH2F(Form("fhMaxPtInCone_%s_%f", (i==0)? "nonIso" : "isolated", fConeSize), 
-                               Form("Max pt nonIso particle in cone %f vs candidate pt", fConeSize), 
-                               200, 0, fHistogramMaxPt, 200, 0, fHistogramMaxPt);
-    fHistograms->Add(fhMaxPtInCone[i]);
+  // for(Int_t i = 0; i < 2; i++){
+  //   fhMaxPtInCone[i] = new TH2F(Form("fhMaxPtInCone_%s_%f", (i==0)? "nonIso" : "isolated", fConeSize), 
+  //                           Form("Max pt nonIso particle in cone %f vs candidate pt", fConeSize), 
+  //                           200, 0, fHistogramMaxPt, 200, 0, fHistogramMaxPt);
+  //   fHistograms->Add(fhMaxPtInCone[i]);
     
-    fhSumPtInCone[i] = new TH2F(Form("fhSumPtInCone_%s_%f",  (i==0)? "nonIso" : "isolated", fConeSize), 
-                            Form("Sum pt in cone %f vs candidate pt %s", fConeSize,  (i==0)? "nonIsoay" : "isolated"), 
-                            200, 0, fHistogramMaxPt, 200, 0, fHistogramMaxPt);
-    fHistograms->Add(fhSumPtInCone[i]);
-
-    fhSumPtVsMaxPt[i] = new TH2F(Form("fhSumPtVsMaxPt_%s_%f",  (i==0)? "nonIso" : "isolated", fConeSize), 
-                                Form("fhSumPtVsMaxPt_%s_%f",  (i==0)? "nonIso" : "isolated", fConeSize), 
-                                200, 0, fHistogramMaxPt, 200, 0, fHistogramMaxPt);
-    fHistograms->Add(fhSumPtVsMaxPt[i]);
-  }
+  //   fhSumPtInCone[i] = new TH2F(Form("fhSumPtInCone_%s_%f",  (i==0)? "nonIso" : "isolated", fConeSize), 
+  //                        Form("Sum pt in cone %f vs candidate pt %s", fConeSize,  (i==0)? "nonIsoay" : "isolated"), 
+  //                        200, 0, fHistogramMaxPt, 200, 0, fHistogramMaxPt);
+  //   fHistograms->Add(fhSumPtInCone[i]);
+
+  //   fhSumPtVsMaxPt[i] = new TH2F(Form("fhSumPtVsMaxPt_%s_%f",  (i==0)? "nonIso" : "isolated", fConeSize), 
+  //                            Form("fhSumPtVsMaxPt_%s_%f",  (i==0)? "nonIso" : "isolated", fConeSize), 
+  //                            200, 0, fHistogramMaxPt, 200, 0, fHistogramMaxPt);
+  //   fHistograms->Add(fhSumPtVsMaxPt[i]);
+  // }
 
-  for(Int_t iIso = 0; iIso < 2; iIso++){
-    fhPtCandidates[iIso] = new TH1F(Form("fhPtCandidates_%s_%f", (iIso==0)? "nonIso" : "isolated", fConeSize),
-                                   Form("Pt of %s candidates, cone size %f", (iIso==0)? "nonIsolated" : "isolated", fConeSize),
-                                200, 0 , fHistogramMaxPt);
-    fhPtCandidates[iIso]->GetXaxis()->SetTitle("P_{T} (GeV/c)");
-    fhPtCandidates[iIso]->GetYaxis()->SetTitle("dN/dP_{T} (c/GeV)");
-    fhPtCandidates[iIso]->SetMarkerStyle(kFullCircle);
-    fHistograms->Add(fhPtCandidates[iIso]);
-  }
+  // for(Int_t iIso = 0; iIso < 2; iIso++){
+  //   fhPtCandidates[iIso] = new TH1F(Form("fhPtCandidates_%s_%f", (iIso==0)? "nonIso" : "isolated", fConeSize),
+  //                               Form("Pt of %s candidates, cone size %f", (iIso==0)? "nonIsolated" : "isolated", fConeSize),
+  //                            200, 0 , fHistogramMaxPt);
+  //   fhPtCandidates[iIso]->GetXaxis()->SetTitle("P_{T} (GeV/c)");
+  //   fhPtCandidates[iIso]->GetYaxis()->SetTitle("dN/dP_{T} (c/GeV)");
+  //   fhPtCandidates[iIso]->SetMarkerStyle(kFullCircle);
+  //   fHistograms->Add(fhPtCandidates[iIso]);
+  // }
 
   // for(int iDec = 0; iDec < 2; iDec++) {
   //   for(int iIso = 0; iIso < 2; iIso++) {
@@ -159,17 +161,17 @@ void AliAnaConvIsolation::CreateHistograms()
   // }
 
 
-  for(Int_t iIso = 0; iIso < 2; iIso++){
-    fhTrackMult[iIso] = new TH1F(Form("fhTrackMult_%s_%f", (iIso==0)? "nonIso" : "isolated", fConeSize),
-                                   Form("Pt of %s candidates, cone size %f", (iIso==0)? "nonIsolated" : "isolated", fConeSize),
-                                150, 0 , 150);
-    fhTrackMult[iIso]->GetXaxis()->SetTitle("n tracks in event");
-    fhTrackMult[iIso]->GetYaxis()->SetTitle("dN/dNTracks");
-    fhTrackMult[iIso]->SetMarkerStyle(kFullCircle);
-    fHistograms->Add(fhTrackMult[iIso]);
-  }
+  // for(Int_t iIso = 0; iIso < 2; iIso++){
+  //   fhTrackMult[iIso] = new TH1F(Form("fhTrackMult_%s_%f", (iIso==0)? "nonIso" : "isolated", fConeSize),
+  //                               Form("Pt of %s candidates, cone size %f", (iIso==0)? "nonIsolated" : "isolated", fConeSize),
+  //                            150, 0 , 150);
+  //   fhTrackMult[iIso]->GetXaxis()->SetTitle("n tracks in event");
+  //   fhTrackMult[iIso]->GetYaxis()->SetTitle("dN/dNTracks");
+  //   fhTrackMult[iIso]->SetMarkerStyle(kFullCircle);
+  //   fHistograms->Add(fhTrackMult[iIso]);
+  // }
 
-}
+//}
 
 //________________________________________________________________________
 Bool_t AliAnaConvIsolation::IsLeading(AliAODConversionParticle * particle, const TObjArray * tracks, const TObjArray * aodParticles) {
@@ -194,6 +196,19 @@ Bool_t AliAnaConvIsolation::IsLeading(AliAODConversionParticle * particle, const
   return kTRUE;
 }
 
+///________________________________________________________________________
+Bool_t AliAnaConvIsolation::IsLeading(const AliAODConversionParticle * particle, const TObjArray * tracks, const Int_t tIDs[4]) const {
+  //Is there a higher pt particle within cone ?
+  Float_t tPt = particle->Pt();
+  for(int it = 0; it < tracks->GetEntriesFast(); it++) {
+    AliVTrack * track = static_cast<AliVTrack*>(tracks->UncheckedAt(it));
+       Int_t tid = track->GetID();
+       if(tid == tIDs[0] || tid == tIDs[1] || tid == tIDs[2] || tid == tIDs[3]) continue;
+       if(track->Pt() > tPt && IsInCone(particle->Eta() - track->Eta(), particle->Phi() - track->Phi(), 0.8)) 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) {
   //See header file for documentation
@@ -230,7 +245,7 @@ Bool_t AliAnaConvIsolation::IsIsolated(AliAODConversionPhoton * particle, const
 
   Bool_t isolated = EvaluateIsolationCriteria( ptSum, particle->Pt());
 
-  FillHistograms(particle->Pt(), ptMax, ptSum, isolated, tracks->GetEntriesFast());
+  //FillHistograms(particle->Pt(), ptMax, ptSum, isolated, tracks->GetEntriesFast());
 
   return isolated;
 
@@ -270,22 +285,22 @@ Bool_t AliAnaConvIsolation::IsIsolated(const AliAODConversionPhoton * const part
 
   Bool_t isolated = EvaluateIsolationCriteria( ptSum, particle->Pt());
 
-  FillHistograms(particle->Pt(), ptMax, ptSum, isolated, tracks->GetEntriesFast());
+  //FillHistograms(particle->Pt(), ptMax, ptSum, isolated, tracks->GetEntriesFast());
 
   
   return isolated;
 
 }
 
-///___________________________________________________________________________
-void AliAnaConvIsolation::FillHistograms(Float_t pt, Float_t ptMax, Float_t ptSum, Bool_t isolated, Int_t nTracks) {
-  //Fill histograms
-  fhMaxPtInCone[isolated]->Fill(pt, ptMax);
-  fhSumPtInCone[isolated]->Fill(pt, ptSum);
-  fhSumPtVsMaxPt[isolated]->Fill(ptMax, ptSum);
-  fhPtCandidates[isolated]->Fill(pt);
-  fhTrackMult[isolated]->Fill(nTracks);
-}
+// ///___________________________________________________________________________
+// void AliAnaConvIsolation::FillHistograms(Float_t pt, Float_t ptMax, Float_t ptSum, Bool_t isolated, Int_t nTracks) {
+//   //Fill histograms
+//   fhMaxPtInCone[isolated]->Fill(pt, ptMax);
+//   fhSumPtInCone[isolated]->Fill(pt, ptSum);
+//   fhSumPtVsMaxPt[isolated]->Fill(ptMax, ptSum);
+//   fhPtCandidates[isolated]->Fill(pt);
+//   fhTrackMult[isolated]->Fill(nTracks);
+// }
 
 
 ///_____________________________________________________________________________
index 63ded7f..53b4553 100644 (file)
@@ -33,7 +33,7 @@ public:
   virtual ~AliAnaConvIsolation();\r
   \r
 \r
-  void CreateHistograms();\r
+  //void CreateHistograms();\r
 \r
 \r
   ///Set And get cone size\r
@@ -73,14 +73,15 @@ public:
 \r
 \r
   //Fill histograms\r
-  void FillHistograms(Float_t pt, Float_t ptMax, Float_t ptSum, Bool_t isolated, Int_t nTracks);\r
+  //void FillHistograms(Float_t pt, Float_t ptMax, Float_t ptSum, Bool_t isolated, Int_t nTracks);\r
 \r
   //Get list of histograms\r
-  TList * GetHistograms() const { return fHistograms;}\r
+  //TList * GetHistograms() const { return fHistograms;}\r
 \r
   //Is particle isolated\r
   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
+  Bool_t IsLeading(const AliAODConversionParticle * particle, const TObjArray * tracks, const Int_t * tIDs) const;\r
 \r
   //Is eta - phi distance smaller than conesize ?\r
   Bool_t IsInCone(Float_t dEta, Float_t dPhi, const Float_t coneSize) const {\r
@@ -103,20 +104,20 @@ public:
   Float_t fMaxPtFraction;  //max pt fraction threshold\r
   Float_t fSumPtFraction; //sum pt fraction threshold\r
 \r
-  TList * fHistograms; //list of histograms\r
+  // TList * fHistograms; //list of histograms\r
 \r
-  TH2F * fhMaxPtInCone[2]; //histogram of max pt in cone\r
-  TH2F * fhSumPtInCone[2]; //histogram of sum pt in cone\r
-  TH2F * fhSumPtVsMaxPt[2];//sum pt vs max pt\r
+  // TH2F * fhMaxPtInCone[2]; //histogram of max pt in cone\r
+  // TH2F * fhSumPtInCone[2]; //histogram of sum pt in cone\r
+  // TH2F * fhSumPtVsMaxPt[2];//sum pt vs max pt\r
   \r
-  // TH1F * fHistSumPt[2][2]; \r
-  // TH1F * fHistMaxPt[2][2];\r
+  // // TH1F * fHistSumPt[2][2]; \r
+  // // TH1F * fHistMaxPt[2][2];\r
   \r
-  TH1F * fhPtCandidates[2]; //pt distribution of isolation candidates\r
-  TH1F * fhTrackMult[2];    //Track multiplicity of events with / wo isolated particles\r
+  // TH1F * fhPtCandidates[2]; //pt distribution of isolation candidates\r
+  // TH1F * fhTrackMult[2];    //Track multiplicity of events with / wo isolated particles\r
   \r
 \r
-  Float_t fHistogramMaxPt; //Upper pt limit in histograms\r
+  // Float_t fHistogramMaxPt; //Upper pt limit in histograms\r
 \r
 \r
   AliAnaConvIsolation(const AliAnaConvIsolation&); // not implemented\r