]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskEmcalJetHMEC.cxx
- Add THnSparse for correlation of different trigger bits - Change request in SelectC...
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / UserTasks / AliAnalysisTaskEmcalJetHMEC.cxx
index 7d67cff7cf537e5f54ea5035dfe69c0b77d2f548..5c706254d1f281ef7f180afc54cc4fe0bc8a68bb 100644 (file)
@@ -40,9 +40,9 @@ ClassImp(AliAnalysisTaskEmcalJetHMEC)
 
 //________________________________________________________________________
 AliAnalysisTaskEmcalJetHMEC::AliAnalysisTaskEmcalJetHMEC() : 
-  AliAnalysisTaskSE(),
-  fTracksName("tracks"),
-  fJetsName("jets"),
+  AliAnalysisTaskEmcalJet("HMEC",kFALSE),
+  fTracksName(""),
+  fJetsName(""),
   fPhimin(-10), 
   fPhimax(10),
   fEtamin(-0.9), 
@@ -53,9 +53,9 @@ AliAnalysisTaskEmcalJetHMEC::AliAnalysisTaskEmcalJetHMEC() :
   fTrkEta(0.9),
   fDoEventMixing(0),
   fMixingTracks(50000),
-  fESD(0), 
+  fESD(0),
+  fAOD(0), 
   fPoolMgr(0x0), 
-  fOutputList(0),
   fHistTrackPt(0),
   fHistCentrality(0), 
   fHistJetEtaPhi(0), 
@@ -69,7 +69,6 @@ AliAnalysisTaskEmcalJetHMEC::AliAnalysisTaskEmcalJetHMEC() :
     fHistTrackEtaPhi[ipta]=0;
   }
 
-
   for(Int_t icent = 0; icent<6; ++icent){
     fHistJetPt[icent]=0;
     fHistJetPtBias[icent]=0;
@@ -78,10 +77,9 @@ AliAnalysisTaskEmcalJetHMEC::AliAnalysisTaskEmcalJetHMEC() :
     fHistJetPtTT[icent]=0;
     for(Int_t iptjet = 0; iptjet<5; ++iptjet){
       for(Int_t ieta = 0; ieta<3; ++ieta){     
-       fHistJetH[icent][iptjet][ieta]=0;
-       fHistJetHBias[icent][iptjet][ieta]=0;
-       fHistJetHTT[icent][iptjet][ieta]=0;
-
+           fHistJetH[icent][iptjet][ieta]=0;
+           fHistJetHBias[icent][iptjet][ieta]=0;
+           fHistJetHTT[icent][iptjet][ieta]=0;
       }
     }
   }
@@ -89,9 +87,9 @@ AliAnalysisTaskEmcalJetHMEC::AliAnalysisTaskEmcalJetHMEC() :
 }
 //________________________________________________________________________
 AliAnalysisTaskEmcalJetHMEC::AliAnalysisTaskEmcalJetHMEC(const char *name) : 
-  AliAnalysisTaskSE(name),
-  fTracksName("tracks"),
-  fJetsName("jets"),
+  AliAnalysisTaskEmcalJet(name,kTRUE),
+  fTracksName(""),
+  fJetsName(""),
   fPhimin(-10), 
   fPhimax(10),
   fEtamin(-0.9), 
@@ -102,9 +100,9 @@ AliAnalysisTaskEmcalJetHMEC::AliAnalysisTaskEmcalJetHMEC(const char *name) :
   fTrkEta(0.9),
   fDoEventMixing(0),
   fMixingTracks(50000),
-  fESD(0), 
+  fESD(0),
+  fAOD(0), 
   fPoolMgr(0x0), 
-  fOutputList(0), 
   fHistTrackPt(0),
   fHistCentrality(0), 
   fHistJetEtaPhi(0), 
@@ -124,133 +122,101 @@ AliAnalysisTaskEmcalJetHMEC::AliAnalysisTaskEmcalJetHMEC(const char *name) :
     fHistJetPtTT[icent]=0;
     for(Int_t iptjet = 0; iptjet<5; ++iptjet){
       for(Int_t ieta = 0; ieta<3; ++ieta){     
-       fHistJetH[icent][iptjet][ieta]=0;
-       fHistJetHBias[icent][iptjet][ieta]=0;
-       fHistJetHTT[icent][iptjet][ieta]=0;
+           fHistJetH[icent][iptjet][ieta]=0;
+           fHistJetHBias[icent][iptjet][ieta]=0;
+           fHistJetHTT[icent][iptjet][ieta]=0;
       }
     }
   }
 
-
-  DefineInput(0, TChain::Class());
-  DefineOutput(1, TList::Class());
-
 }
 
 //________________________________________________________________________
-void AliAnalysisTaskEmcalJetHMEC::UserCreateOutputObjects()
-{
-  // Called once
-
-  AliVEventHandler* handler = AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler();
-  if (!handler) {
-    AliError("Input handler not available!");
-    return;
-  }
-
+void AliAnalysisTaskEmcalJetHMEC::UserCreateOutputObjects() {
+  // Called once 
+  AliAnalysisTaskEmcalJet::UserCreateOutputObjects();
   OpenFile(1);
-  fOutputList = new TList();
-  fOutputList->SetOwner();
-
-
 
   // Create histograms
   fHistTrackPt = new TH1F("fHistTrackPt", "P_{T} distribution", 1000, 0.0, 100.0);
-
-
-
   fHistCentrality = new TH1F("fHistCentrality","centrality",100,0,100);
+  fHistJetEtaPhi = new TH2F("fHistJetEtaPhi","Jet eta-phi",900,-1.8,1.8,720,-3.2,3.2);
+  fHistJetHEtaPhi = new TH2F("fHistJetHEtaPhi","Jet-Hadron deta-dphi",900,-1.8,1.8,720,-1.6,4.8);
 
-  fHistJetEtaPhi = new TH2F("fHistJetEtaPhi","Jet eta-phi",900,-1.8,1.8,640,-3.2,3.2);
-  fHistJetHEtaPhi = new TH2F("fHistJetHEtaPhi","Jet-Hadron deta-dphi",900,-1.8,1.8,640,-1.6,4.8);
-
-  char name[200];
+  TString name;
 
   for(Int_t ipta=0; ipta<7; ++ipta){
-    sprintf(name, "fHistTrackEtaPhi_%i", ipta);
-    fHistTrackEtaPhi[ipta] = new TH2F(name,name,400,-1,1,640,0.0,2.0*TMath::Pi());
-    fOutputList->Add(fHistTrackEtaPhi[ipta]);
-
+    name = Form("fHistTrackEtaPhi_%i", ipta);
+    fHistTrackEtaPhi[ipta] = new TH2F(name,name,400,-1,1,720,0.0,2.0*TMath::Pi());
+    fOutput->Add(fHistTrackEtaPhi[ipta]);
   }
  
   for(Int_t icent = 0; icent<6; ++icent){
-    sprintf(name,"fHistJetPt_%i",icent);   
+    name = Form("fHistJetPt_%i",icent);   
     fHistJetPt[icent] = new TH1F(name,name,200,0,200);
-    fOutputList->Add(fHistJetPt[icent]);
+    fOutput->Add(fHistJetPt[icent]);
 
-    sprintf(name,"fHistJetPtBias_%i",icent);   
+    name = Form("fHistJetPtBias_%i",icent);   
     fHistJetPtBias[icent] = new TH1F(name,name,200,0,200);
-    fOutputList->Add(fHistJetPtBias[icent]);
+    fOutput->Add(fHistJetPtBias[icent]);
 
-    sprintf(name,"fHistLeadJetPt_%i",icent);   
+    name = Form("fHistLeadJetPt_%i",icent);   
     fHistLeadJetPt[icent] = new TH1F(name,name,200,0,200);
-    fOutputList->Add(fHistLeadJetPt[icent]);
+    fOutput->Add(fHistLeadJetPt[icent]);
 
-    sprintf(name,"fHistLeadJetPtBias_%i",icent);   
+    name = Form("fHistLeadJetPtBias_%i",icent);   
     fHistLeadJetPtBias[icent] = new TH1F(name,name,200,0,200);
-    fOutputList->Add(fHistLeadJetPtBias[icent]);
+    fOutput->Add(fHistLeadJetPtBias[icent]);
 
-    sprintf(name,"fHistJetPtTT_%i",icent);   
+    name = Form("fHistJetPtTT_%i",icent);   
     fHistJetPtTT[icent] = new TH1F(name,name,200,0,200);
-    fOutputList->Add(fHistJetPtTT[icent]);
+    fOutput->Add(fHistJetPtTT[icent]);
 
     for(Int_t iptjet = 0; iptjet<5; ++iptjet){
       for(Int_t ieta = 0; ieta<3; ++ieta){     
-       sprintf(name,"fHistJetH_%i_%i_%i",icent,iptjet,ieta);   
-       fHistJetH[icent][iptjet][ieta]=new TH2F(name,name,64,-0.5*TMath::Pi(),1.5*TMath::Pi(),300,0,30);
-       fOutputList->Add(fHistJetH[icent][iptjet][ieta]);
+           name = Form("fHistJetH_%i_%i_%i",icent,iptjet,ieta);   
+           fHistJetH[icent][iptjet][ieta]=new TH2F(name,name,72,-0.5*TMath::Pi(),1.5*TMath::Pi(),300,0,30);
+           fOutput->Add(fHistJetH[icent][iptjet][ieta]);
 
-       sprintf(name,"fHistJetHBias_%i_%i_%i",icent,iptjet,ieta);   
-       fHistJetHBias[icent][iptjet][ieta]=new TH2F(name,name,64,-0.5*TMath::Pi(),1.5*TMath::Pi(),300,0,30);
-       fOutputList->Add(fHistJetHBias[icent][iptjet][ieta]);
+               name = Form("fHistJetHBias_%i_%i_%i",icent,iptjet,ieta);   
+           fHistJetHBias[icent][iptjet][ieta]=new TH2F(name,name,72,-0.5*TMath::Pi(),1.5*TMath::Pi(),300,0,30);
+           fOutput->Add(fHistJetHBias[icent][iptjet][ieta]);
 
-       sprintf(name,"fHistJetHTT_%i_%i_%i",icent,iptjet,ieta);   
-       fHistJetHTT[icent][iptjet][ieta]=new TH2F(name,name,64,-0.5*TMath::Pi(),1.5*TMath::Pi(),300,0,30);
-       fOutputList->Add(fHistJetHTT[icent][iptjet][ieta]);
+           name = Form("fHistJetHTT_%i_%i_%i",icent,iptjet,ieta);   
+           fHistJetHTT[icent][iptjet][ieta]=new TH2F(name,name,72,-0.5*TMath::Pi(),1.5*TMath::Pi(),300,0,30);
+           fOutput->Add(fHistJetHTT[icent][iptjet][ieta]);
 
       }
     }
   }
 
-
-
   UInt_t cifras = 0; // bit coded, see GetDimParams() below 
   cifras = 1<<0 | 1<<1 | 1<<2 | 1<<3 | 1<<4 | 1<<5 | 1<<7 | 1<<8; 
   fhnJH = NewTHnSparseF("fhnJH", cifras);
-  
   fhnJH->Sumw2();
-
-  fOutputList->Add(fhnJH);
-
+  fOutput->Add(fhnJH);
 
   if(fDoEventMixing){    
     cifras = 1<<0 | 1<<1 | 1<<2 | 1<<3 | 1<<4 | 1<<5 | 1<<7 | 1<<8; 
     fhnMixedEvents = NewTHnSparseF("fhnMixedEvents", cifras);
-    
     fhnMixedEvents->Sumw2();
-    
-    fOutputList->Add(fhnMixedEvents);
-    
+    fOutput->Add(fhnMixedEvents);
   }
   
+  fOutput->Add(fHistTrackPt);
+  fOutput->Add(fHistCentrality);
+  fOutput->Add(fHistJetEtaPhi);
+  fOutput->Add(fHistJetHEtaPhi);
 
-  fOutputList->Add(fHistTrackPt);
-  fOutputList->Add(fHistCentrality);
-  fOutputList->Add(fHistJetEtaPhi);
-  fOutputList->Add(fHistJetHEtaPhi);
-
-
-  PostData(1, fOutputList);
-
+  PostData(1, fOutput);
 
   //Event Mixing
   Int_t trackDepth = fMixingTracks; 
   Int_t poolsize   = 1000;  // Maximum number of events, ignored in the present implemented of AliEventPoolManager
  
-  Int_t nZvtxBins  = 7+1+7;
+  Int_t nZvtxBins  = 5+1+5;
   // bins for second buffer are shifted by 100 cm
-  Double_t vertexBins[] = { -7, -5, -3, -1, 1, 3, 5, 7, 93, 95, 97, 99, 101, 103, 105, 107 };
+  Double_t vertexBins[] = { -10, -8, -6, -4, -2, 0, 2, 4, 6, 8, 10, };
   Double_t* zvtxbin = vertexBins;
 
   Int_t nCentralityBins  = 100;
@@ -261,15 +227,12 @@ void AliAnalysisTaskEmcalJetHMEC::UserCreateOutputObjects()
 
   fPoolMgr = new AliEventPoolManager(poolsize, trackDepth, nCentralityBins, centralityBins, nZvtxBins, zvtxbin);
 
-  
-
 }
 
 //________________________________________________________________________
 
 Double_t AliAnalysisTaskEmcalJetHMEC:: RelativePhi(Double_t mphi,Double_t vphi) {
 
-
   if (vphi < -1*TMath::Pi()) vphi += (2*TMath::Pi());
   else if (vphi > TMath::Pi()) vphi -= (2*TMath::Pi());
   if (mphi < -1*TMath::Pi()) mphi += (2*TMath::Pi());
@@ -281,41 +244,28 @@ Double_t AliAnalysisTaskEmcalJetHMEC:: RelativePhi(Double_t mphi,Double_t vphi)
   return dphi;//dphi in [-Pi, Pi]                                                                                                    
 }
 
-
 //________________________________________________________________________
-Int_t AliAnalysisTaskEmcalJetHMEC::GetCentBin(Double_t cent) const 
-{
+Int_t AliAnalysisTaskEmcalJetHMEC::GetCentBin(Double_t cent) const {
   // Get centrality bin.
 
   Int_t centbin = -1;
-  if (cent>=0 && cent<10)
-    centbin = 0;
-  else if (cent>=10 && cent<20)
-    centbin = 1;
-  else if (cent>=20 && cent<30)
-    centbin = 2;
-  else if (cent>=30 && cent<40)
-    centbin = 3;
-  else if (cent>=40 && cent<50)
-    centbin = 4;
-  else if (cent>=50 && cent<90)
-    centbin = 5;
+  if (cent>=0 && cent<10) centbin = 0;
+  else if (cent>=10 && cent<20) centbin = 1;
+  else if (cent>=20 && cent<30) centbin = 2;
+  else if (cent>=30 && cent<40) centbin = 3;
+  else if (cent>=40 && cent<50) centbin = 4;
+  else if (cent>=50 && cent<90) centbin = 5;
   return centbin;
 }
 
-
 //________________________________________________________________________
-Int_t AliAnalysisTaskEmcalJetHMEC::GetEtaBin(Double_t eta) const 
-{
+Int_t AliAnalysisTaskEmcalJetHMEC::GetEtaBin(Double_t eta) const {
   // Get eta bin for histos.
 
   Int_t etabin = -1;
-  if (TMath::Abs(eta)<=0.4)
-    etabin = 0;
-  else if (TMath::Abs(eta)>0.4 && TMath::Abs(eta)<0.8)
-    etabin = 1;
-  else if (TMath::Abs(eta)>=0.8)
-    etabin = 2;
+  if (TMath::Abs(eta)<=0.4) etabin = 0;
+  else if (TMath::Abs(eta)>0.4 && TMath::Abs(eta)<0.8) etabin = 1;
+  else if (TMath::Abs(eta)>=0.8) etabin = 2;
   return etabin;
 }
 //________________________________________________________________________
@@ -324,135 +274,137 @@ Int_t AliAnalysisTaskEmcalJetHMEC::GetpTjetBin(Double_t pt) const
   // Get jet pt  bin for histos.
 
   Int_t ptbin = -1;
-  if (pt>=15 && pt<20)
-    ptbin = 0;
-  else if (pt>=20 && pt<25)
-    ptbin = 1;
-  else if (pt>=25 && pt<30)
-    ptbin = 2;
-  else if (pt>=30 && pt<60)
-    ptbin = 3;
-  else if (pt>=60)
-    ptbin = 4;
-
+  if (pt>=15 && pt<20) ptbin = 0;
+  else if (pt>=20 && pt<25) ptbin = 1;
+  else if (pt>=25 && pt<30) ptbin = 2;
+  else if (pt>=30 && pt<60) ptbin = 3;
+  else if (pt>=60) ptbin = 4;
 
   return ptbin;
 }
 
+//________________________________________________________________________
+void AliAnalysisTaskEmcalJetHMEC::ExecOnce() {
+  AliAnalysisTaskEmcalJet::ExecOnce();
+
+}
 
 //________________________________________________________________________
-void AliAnalysisTaskEmcalJetHMEC::UserExec(Option_t *) 
-{
+Bool_t AliAnalysisTaskEmcalJetHMEC::Run() {
+ // Main loop called for each event
+  if(!fTracks){
+    AliError(Form("No fTracks object!!\n"));
+    return kTRUE;
+  }
+  if(!fJets){
+    AliError(Form("No fJets object!!\n"));
+    return kTRUE;
+  }
 
+  // what kind of event do we have: AOD or ESD?
+  Bool_t esdMode = kTRUE; 
+  if (dynamic_cast<AliAODEvent*>(InputEvent())) esdMode = kFALSE;
 
-  // Main loop called for each event
- // esd or aod mode
-  Bool_t esdMode = kTRUE;
-  if (dynamic_cast<AliAODEvent*>(InputEvent()))
-    esdMode = kFALSE;
+  // if we have ESD event, set up ESD object
+  if(esdMode){
+    fESD = dynamic_cast<AliESDEvent*>(InputEvent());
+    if (!fESD) {
+      AliError(Form("ERROR: fESD not available\n"));
+      return kTRUE;
+    }
+  }
 
+  // if we have AOD event, set up AOD object
+  if(!esdMode){
+    fAOD = dynamic_cast<AliAODEvent*>(InputEvent());
+    if(!fAOD) {
+      AliError(Form("ERROR: fAOD not available\n"));
+      return kTRUE;
+    }
+  }
 
-  if (esdMode) {
-    // optimization in case autobranch loading is off
-    AliAnalysisManager *am = AliAnalysisManager::GetAnalysisManager();
-    if (fTracksName == "Tracks")
-      am->LoadBranch("Tracks");
+  TList *list = InputEvent()->GetList(); 
+  if(!list) {
+    AliError(Form("ERROR: list not attached\n"));
+    return kTRUE;
   }
 
-  //get centrality
-  TList *list = InputEvent()->GetList();
-  AliCentrality *centrality = InputEvent()->GetCentrality() ;
-  Double_t fcent=-1; 
-  if(centrality)
-    fcent = centrality->GetCentralityPercentile("V0M");
-  else
-    fcent=99;//probably pp data
-
-  if (fcent<0) {
-    AliError(Form("Centrality negative: %f", fcent));
-    return;
+  // get centrality
+  if (fCent<0) {
+    AliError(Form("Centrality negative: %f", fCent));
+    return kTRUE;
   }
 
+  Int_t centbin = GetCentBin(fCent);
+  if(centbin<0) return kTRUE;
+
+  Double_t fvertex[3]={0,0,0};
+  InputEvent()->GetPrimaryVertex()->GetXYZ(fvertex);
+  Double_t zVtx=fvertex[2];
 
-  fHistCentrality->Fill(fcent);
-  Int_t centbin = GetCentBin(fcent);
+  if(fabs(zVtx)>10.0) return kTRUE;
 
-  if(centbin<0)
-    return;
+  fHistCentrality->Fill(fCent);
     
   TClonesArray *jets = 0;
   TClonesArray *tracks = 0;
 
-  tracks = dynamic_cast<TClonesArray*>(list->FindObject(fTracksName));
+  tracks = dynamic_cast<TClonesArray*>(list->FindObject(fTracks));
   if (!tracks) {
-    AliError(Form("Pointer to tracks %s == 0", fTracksName.Data() ));
-    return;
+    AliError(Form("Pointer to tracks %s == 0", fTracks->GetName() ));
+    return kTRUE;
   }
   const Int_t Ntracks=tracks->GetEntries();
 
-  jets= dynamic_cast<TClonesArray*>(list->FindObject(fJetsName));
+  jets= dynamic_cast<TClonesArray*>(list->FindObject(fJets));
+  if (!jets) {
+    AliError(Form("Pointer to tracks %s == 0", fJets->GetName() ));
+    return kTRUE;
+  }
   const Int_t Njets = jets->GetEntries();
  
   //Leticia's loop to find hardest track
-
   Int_t iTT=-1;
   Double_t ptmax=-10;
 
-  for (Int_t iTracks = 0; iTracks < Ntracks; iTracks++) 
-    {
-      AliVTrack* track = static_cast<AliVTrack*>(tracks->At(iTracks));
-      if (!track) {
-       printf("ERROR: Could not receive track %d\n", iTracks);
-       continue;
-      }
+  for (Int_t iTracks = 0; iTracks < Ntracks; iTracks++) {
+    AliVTrack* track = static_cast<AliVTrack*>(tracks->At(iTracks));
+    if (!track) {
+      printf("ERROR: Could not receive track %d\n", iTracks);
+      continue;
+    }
       
-      if(TMath::Abs(track->Eta())>0.9) continue;
-      if(track->Pt()<0.15)continue;
-      //iCount++;
-      if(track->Pt()>ptmax){
-       ptmax=track->Pt();
-       iTT=iTracks;
-      }
+    if(TMath::Abs(track->Eta())>0.9) continue;
+    if(track->Pt()<0.15) continue;
+    //iCount++;
+    if(track->Pt()>ptmax){
+         ptmax=track->Pt();
+         iTT=iTracks;
     }
+  }
 
-  
   Int_t ijethi=-1;
-
   Double_t highestjetpt=0.0;
-
   Int_t passedTTcut=0;
 
-  for (Int_t ijet = 0; ijet < Njets; ijet++)
-    {
-      AliEmcalJet *jet = static_cast<AliEmcalJet*>(jets->At(ijet));
-      
-      if (!jet)
-       continue;
-      
-      if(!AcceptJet(jet))
-       continue;
+  for (Int_t ijets = 0; ijets < Njets; ijets++){
+      AliEmcalJet *jet = static_cast<AliEmcalJet*>(jets->At(ijets));
+      if (!jet) continue;
+      if(!AcceptthisJet(jet)) continue;
 
       Double_t jetPt = jet->Pt();
 
       if(highestjetpt<jetPt){
-       ijethi=ijet;
-       highestjetpt=jetPt;
+           ijethi=ijets;
+           highestjetpt=jetPt;
       }
+  }
 
-    }
-
-
-    
-  for (Int_t ijet = 0; ijet < Njets; ijet++){
-    
+  for (Int_t ijet = 0; ijet < Njets; ijet++){    
     AliEmcalJet *jet = static_cast<AliEmcalJet*>(jets->At(ijet));
+    if (!jet) continue; 
+    if(!AcceptthisJet(jet)) continue;
 
-    if(!AcceptJet(jet))
-      continue;
-
-        
     Double_t jetphi = jet->Phi();
     Double_t jetPt = jet->Pt();
     Double_t jeteta=jet->Eta();
@@ -460,7 +412,6 @@ void AliAnalysisTaskEmcalJetHMEC::UserExec(Option_t *)
     Double_t leadjet=0;
     if (ijet==ijethi) leadjet=1;
 
-
     fHistJetPt[centbin]->Fill(jet->Pt());
     fHistLeadJetPt[centbin]->Fill(jet->Pt());
     
@@ -469,88 +420,82 @@ void AliAnalysisTaskEmcalJetHMEC::UserExec(Option_t *)
       fHistLeadJetPtBias[centbin]->Fill(jet->Pt());
     }
 
-      fHistJetEtaPhi->Fill(jet->Eta(),jetphi);
+    fHistJetEtaPhi->Fill(jet->Eta(),jetphi);
 
+    if(iTT>0){
+         AliVTrack* TT = static_cast<AliVTrack*>(tracks->At(iTT));
+         if(TMath::Abs(jetphi-TT->Phi()-TMath::Pi())<0.6) passedTTcut=1;
+         else passedTTcut=0;
+    }
 
-      if(iTT>0){
-       AliVTrack* TT = static_cast<AliVTrack*>(tracks->At(iTT));
-       if(TMath::Abs(jetphi-TT->Phi()-TMath::Pi())<0.6) passedTTcut=1;
-       else passedTTcut=0;
-      }
+    if(passedTTcut)
+         fHistJetPtTT[centbin]->Fill(jet->Pt());
 
-      if(passedTTcut)
-       fHistJetPtTT[centbin]->Fill(jet->Pt());
-   
+      Int_t iptjet=-1;
+      iptjet=GetpTjetBin(jetPt);
+      if(iptjet<0) continue;
 
-  if (highestjetpt>15) {
-   
-    for (Int_t iTracks = 0; iTracks < Ntracks; iTracks++) 
-      {
-       AliVTrack* track = static_cast<AliVTrack*>(tracks->At(iTracks));
-       if (!track) {
-         printf("ERROR: Could not receive track %d\n", iTracks);
-         continue;
-       }
+      //if (highestjetpt>15) {
+      if (highestjetpt>8) {
+
+      for (Int_t iTracks = 0; iTracks < Ntracks; iTracks++) {
+           AliVTrack* track = static_cast<AliVTrack*>(tracks->At(iTracks));
+           if (!track) {
+             printf("ERROR: Could not receive track %d\n", iTracks);
+             continue;
+           }
        
-         if(TMath::Abs(track->Eta())>fTrkEta) continue;
+           if(TMath::Abs(track->Eta())>fTrkEta) continue;
 
-         fHistTrackPt->Fill(track->Pt());
+           fHistTrackPt->Fill(track->Pt());
                  
-         if (track->Pt()<0.15)
-           continue;
+           if (track->Pt()<0.15) continue;
          
-         Double_t trackphi = track->Phi();
-         if (trackphi > TMath::Pi())
-           trackphi = trackphi-2*TMath::Pi();
-
-         Double_t tracketa=track->Eta();
-         Double_t trackpt=track->Pt();
-         Double_t deta=tracketa-jeteta;
-         Int_t ieta=GetEtaBin(deta);
-
-         //Jet pt, track pt, dPhi,deta,fcent
-         Double_t dphijh = RelativePhi(jetphi,trackphi);
-         if (dphijh < -0.5*TMath::Pi())
-           dphijh+= 2*TMath::Pi();
-         if (dphijh > 1.5*TMath::Pi()) dphijh-=2.*TMath::Pi();
-
-
-         Int_t iptjet=-1;
-         iptjet=GetpTjetBin(jetPt);
-
-         fHistJetH[centbin][iptjet][ieta]->Fill(dphijh,track->Pt());
-         fHistJetHEtaPhi->Fill(deta,dphijh);
-
-         Double_t dR=sqrt(deta*deta+dphijh*dphijh);
-
-         if ((jet->MaxTrackPt()>fTrkBias) || (jet->MaxClusterPt()>fClusBias)){
-           fHistJetHBias[centbin][iptjet][ieta]->Fill(dphijh,trackpt);
+           Double_t trackphi = track->Phi();
+           if (trackphi > TMath::Pi())
+             trackphi = trackphi-2*TMath::Pi();
+
+           Double_t tracketa=track->Eta();
+           Double_t trackpt=track->Pt();
+           Double_t deta=tracketa-jeteta;
+           Int_t ieta=GetEtaBin(deta);
+           if (ieta<0) {
+             AliError(Form("Eta Bin negative: %f", deta));
+             continue;
+           }
+      
+           //Jet pt, track pt, dPhi,deta,fCent
+           Double_t dphijh = RelativePhi(jetphi,trackphi);
+           if (dphijh < -0.5*TMath::Pi())
+             dphijh+= 2*TMath::Pi();
+           if (dphijh > 1.5*TMath::Pi()) 
+          dphijh-=2.*TMath::Pi();
 
+           fHistJetH[centbin][iptjet][ieta]->Fill(dphijh,track->Pt());
+           fHistJetHEtaPhi->Fill(deta,dphijh);
 
-           Double_t triggerEntries[8] = {fcent,jetPt,track->Pt(),dR,deta,dphijh,0.0,leadjet};                      
-           fhnJH->Fill(triggerEntries);
-         }
+           Double_t dR=sqrt(deta*deta+dphijh*dphijh);
 
-         if(passedTTcut)
-           fHistJetHTT[centbin][iptjet][ieta]->Fill(dphijh,trackpt);
+           if ((jet->MaxTrackPt()>fTrkBias) || (jet->MaxClusterPt()>fClusBias)){
+             fHistJetHBias[centbin][iptjet][ieta]->Fill(dphijh,trackpt);
 
+             Double_t triggerEntries[8] = {fCent,jetPt,trackpt,dR,deta,dphijh,0.0,leadjet};                      
+             fhnJH->Fill(triggerEntries);
+           }
 
-       } //track loop
-  }//jet pt cut
+           if(passedTTcut)
+             fHistJetHTT[centbin][iptjet][ieta]->Fill(dphijh,trackpt);
 
+         } //track loop
+    }//jet pt cut
   }//jet loop
   
-
   //Prepare to do event mixing
 
   // create a list of reduced objects. This speeds up processing and reduces memory consumption for the event pool
   TObjArray* tracksClone = CloneAndReduceTrackList(tracks);
   //delete tracks;
 
-  Double_t fvertex[3]={0,0,0};
-  InputEvent()->GetPrimaryVertex()->GetXYZ(fvertex);
-  Double_t zVtx=fvertex[2];
-
   if(fDoEventMixing>0){
     
     // event mixing
@@ -571,92 +516,76 @@ void AliAnalysisTaskEmcalJetHMEC::UserExec(Option_t *)
     //    FillCorrelations(). Also nMix should be passed in, so a weight
     //    of 1./nMix can be applied.
 
-
-
-
-
-    AliEventPool* pool = fPoolMgr->GetEventPool(fcent, zVtx);
+    AliEventPool* pool = fPoolMgr->GetEventPool(fCent, zVtx);
     
-    if (!pool)
-      AliFatal(Form("No pool found for centrality = %f, zVtx = %f", fcent, zVtx));
-
+    if (!pool){
+      AliFatal(Form("No pool found for centrality = %f, zVtx = %f", fCent, zVtx));
+      return kTRUE;
+    }
 
     //check for a trigger jet
-        
+    if (pool->IsReady() || pool->NTracksInPool() > fMixingTracks / 10 || pool->GetCurrentNEvents() >= 5) {
 
-    if (pool->IsReady() || pool->NTracksInPool() > fMixingTracks / 10 || pool->GetCurrentNEvents() >= 5) 
-      {
-       
        for (Int_t ijet = 0; ijet < Njets; ijet++){
-
          Double_t leadjet=0;
          if (ijet==ijethi) leadjet=1;
          
          AliEmcalJet *jet = static_cast<AliEmcalJet*>(jets->At(ijet));
-
-         if(!AcceptJet(jet))
-           continue;
+         if(!AcceptthisJet(jet)) continue;
 
          Double_t jetPt = jet->Pt();   
          Double_t jetphi = jet->Phi();
          Double_t jeteta=jet->Eta();
          
-         
          Int_t nMix = pool->GetCurrentNEvents();
          
          //Fill for biased jet triggers only
          if ((jet->MaxTrackPt()>fTrkBias) || (jet->MaxClusterPt()>fClusBias)){
 
            // Fill mixed-event histos here  
-           for (Int_t jMix=0; jMix<nMix; jMix++) 
-             {
-               TObjArray* bgTracks = pool->GetEvent(jMix);
-               const Int_t Nbgtrks = bgTracks->GetEntries();
-               for(Int_t ibg=0; ibg<Nbgtrks; ibg++){
-                 AliPicoTrack *part = static_cast<AliPicoTrack*>(bgTracks->At(ibg));         
-                 if(!part) continue;
-  
-                 Double_t DPhi = jetphi - part->Phi();
-                 Double_t DEta = jeteta - part->Eta();
-                 Double_t DR=TMath::Sqrt(DPhi*DPhi+DEta*DEta);
-                 if(DPhi<-0.5*TMath::Pi()) DPhi+=2.*TMath::Pi();
-                 if(DPhi>3./2.*TMath::Pi()) DPhi-=2.*TMath::Pi();
-                 Double_t triggerEntries[8] = {fcent,jetPt,part->Pt(),DR,DEta,DPhi,0.0,leadjet};                      
-                 fhnMixedEvents->Fill(triggerEntries,1./nMix);
-                 
+           for (Int_t jMix=0; jMix<nMix; jMix++) {
+                 TObjArray* bgTracks = pool->GetEvent(jMix);
+                 const Int_t Nbgtrks = bgTracks->GetEntries();
                  
-               }
+          for(Int_t ibg=0; ibg<Nbgtrks; ibg++){
+                   AliPicoTrack *part = static_cast<AliPicoTrack*>(bgTracks->At(ibg));         
+                   if(!part) continue;
+  
+                   Double_t DEta = part->Eta()-jeteta;
+                   Double_t DPhi = RelativePhi(jetphi,part->Phi());
+
+                   Double_t DR=TMath::Sqrt(DPhi*DPhi+DEta*DEta);
+                   if(DPhi<-0.5*TMath::Pi()) DPhi+=2.*TMath::Pi();
+                   if(DPhi>3./2.*TMath::Pi()) DPhi-=2.*TMath::Pi();
+                   Double_t triggerEntries[8] = {fCent,jetPt,part->Pt(),DR,DEta,DPhi,0.0,leadjet};                      
+                   fhnMixedEvents->Fill(triggerEntries,1./nMix);                 
+                   }
              }
+           }
          }
-       }
     }
 
     //update pool if jet in event or not
     pool->UpdatePool(tracksClone);
-    
   }
 
-  
-  
-   
-  PostData(1, fOutputList);
+  return kTRUE;
 }      
 
 //________________________________________________________________________
 void AliAnalysisTaskEmcalJetHMEC::Terminate(Option_t *) 
 {
   //just terminate
-
 }
 
 //________________________________________________________________________
-Int_t AliAnalysisTaskEmcalJetHMEC::AcceptJet(AliEmcalJet *jet) 
+Int_t AliAnalysisTaskEmcalJetHMEC::AcceptthisJet(AliEmcalJet *jet) 
 {
   //applies all jet cuts except pt
   float jetphi = jet->Phi();
   if (jetphi>TMath::Pi())
     jetphi = jetphi-2*TMath::Pi();
-  
+
   if ((jet->Phi()<fPhimin)||(jet->Phi()>fPhimax))
     return 0;
   if ((jet->Eta()<fEtamin)||(jet->Eta()>fEtamax))
@@ -665,21 +594,18 @@ Int_t AliAnalysisTaskEmcalJetHMEC::AcceptJet(AliEmcalJet *jet)
     return 0;
   //prevents 0 area jets from sneaking by when area cut == 0
   if (jet->Area()==0)
-    return 0;
-  
+    return 0;  
   //exclude jets with extremely high pt tracks which are likely misreconstructed
   if(jet->MaxTrackPt()>100)
     return 0;
 
   //passed all above cuts
   return 1;
-  
 }
 
 //________________________________________________________________________
 
-THnSparse* AliAnalysisTaskEmcalJetHMEC::NewTHnSparseF(const char* name, UInt_t entries)
-{
+THnSparse* AliAnalysisTaskEmcalJetHMEC::NewTHnSparseF(const char* name, UInt_t entries){
    // generate new THnSparseF, axes are defined in GetDimParams()
 
    Int_t count = 0;
@@ -723,39 +649,32 @@ void AliAnalysisTaskEmcalJetHMEC::GetDimParams(Int_t iEntry, TString &label, Int
       
    case 0:
       label = "V0 centrality (%)";
-     
          nbins = 10;
          xmin = 0.;
          xmax = 100.;
          break;
       
-      
    case 1:
       label = "corrected jet pt";
-         nbins = 20;
-         xmin = 0.;
-         xmax = 200.;
-          break;
-      
+      nbins = 20;
+      xmin = 0.;
+      xmax = 200.;
+      break;
       
    case 2:
       label = "track pT";
-     
-         nbins = 100;
-         xmin = 0.;
-         xmax = 10;
-         break;
-      
-      
+      nbins = 100;
+      xmin = 0.;
+      xmax = 10;
+      break;
+        
     case 3:
       label = "deltaR";
-      nbins = 15;
+      nbins = 10;
       xmin = 0.;
-      xmax = 1.5;
+      xmax = 5.0;
       break;
 
-
-
    case 4:
       label = "deltaEta";
       nbins = 24;
@@ -763,15 +682,12 @@ void AliAnalysisTaskEmcalJetHMEC::GetDimParams(Int_t iEntry, TString &label, Int
       xmax = 1.2;
       break;
 
-
   case 5:
       label = "deltaPhi";
-      nbins = 64;
+      nbins = 72;
       xmin = -0.5*pi;
       xmax = 1.5*pi;
-      break;   
-   
-      
+      break;         
         
     case 6:
       label = "leading track";
@@ -795,12 +711,9 @@ void AliAnalysisTaskEmcalJetHMEC::GetDimParams(Int_t iEntry, TString &label, Int
       xmax = 2.5;
       break;
   
-
    }
-
 }
 
-
 //_________________________________________________
 // From CF event mixing code PhiCorrelations
 TObjArray* AliAnalysisTaskEmcalJetHMEC::CloneAndReduceTrackList(TObjArray* tracks)
@@ -814,7 +727,7 @@ TObjArray* AliAnalysisTaskEmcalJetHMEC::CloneAndReduceTrackList(TObjArray* track
   {
     AliVParticle* particle = (AliVParticle*) tracks->At(i);
     if(TMath::Abs(particle->Eta())>fTrkEta) continue;
-    if(particle->Pt()<0.15)continue;
+    if(particle->Pt()<0.15) continue;
 
     Double_t trackpt=particle->Pt();
 
@@ -829,13 +742,8 @@ TObjArray* AliAnalysisTaskEmcalJetHMEC::CloneAndReduceTrackList(TObjArray* track
 
     if(hadbin>-1) fHistTrackEtaPhi[hadbin]->Fill(particle->Eta(),particle->Phi());
 
-
     tracksClone->Add(new AliPicoTrack(particle->Pt(), particle->Eta(), particle->Phi(), particle->Charge(), 0, 0, 0, 0));
   }
   
   return tracksClone;
 }
-
-
-
-