]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGJE/AliAnalysisTaskJetCore.cxx
enable reading from input AODs and output AODs at the same time
[u/mrichter/AliRoot.git] / PWGJE / AliAnalysisTaskJetCore.cxx
index cdcbb4958222285667afaab61400f8e1a98bb555..582acfece991f5110eb8fb95f97e0099ac5836fc 100644 (file)
@@ -57,7 +57,8 @@ ClassImp(AliAnalysisTaskJetCore)
 AliAnalysisTaskJetCore::AliAnalysisTaskJetCore() :
 AliAnalysisTaskSE(),
 fESD(0x0),
-fAOD(0x0),
+fAODIn(0x0),
+fAODOut(0x0),
 fAODExtension(0x0),
 fBackgroundBranch(""),
 fNonStdFile(""),
@@ -120,10 +121,20 @@ fh2AngStructpt1C60(0x0),
 fh2AngStructpt2C60(0x0),
 fh2AngStructpt3C60(0x0),
 fh2AngStructpt4C60(0x0),
+fh2JetsumHT3R2(0x0),
+fh2JetsumHT3R2gap(0x0),
+fh2JetsumHT3R4(0x0),
+fh2JetsumHT3R4gap(0x0),
+fh2JetsumHT3R6(0x0),
+fh2JetsumHT3R6gap(0x0),
+fh2JetsumHT3R8(0x0),
+fh2JetsumHT3R8gap(0x0),
+fh2JetsumHT3R10(0x0),
+fh2JetsumHT3R10gap(0x0),
 fh3spectriggered(0x0),
 fh3specbiased(0x0),
-fh3spectot(0x0)
-
+fh3spectot(0x0),
+fh3spectotb(0x0)
  
 {
    // default Constructor
@@ -150,7 +161,8 @@ fh3spectot(0x0)
 AliAnalysisTaskJetCore::AliAnalysisTaskJetCore(const char *name) :
 AliAnalysisTaskSE(name),
 fESD(0x0),
-fAOD(0x0),
+fAODIn(0x0),
+fAODOut(0x0),
 fAODExtension(0x0),
 fBackgroundBranch(""),
 fNonStdFile(""),
@@ -213,10 +225,20 @@ fh2AngStructpt1C60(0x0),
 fh2AngStructpt2C60(0x0),
 fh2AngStructpt3C60(0x0),
 fh2AngStructpt4C60(0x0),    
+fh2JetsumHT3R2(0x0),
+fh2JetsumHT3R2gap(0x0),
+fh2JetsumHT3R4(0x0),
+fh2JetsumHT3R4gap(0x0),
+fh2JetsumHT3R6(0x0),
+fh2JetsumHT3R6gap(0x0),
+fh2JetsumHT3R8(0x0),
+fh2JetsumHT3R8gap(0x0),
+fh2JetsumHT3R10(0x0),
+fh2JetsumHT3R10gap(0x0),
 fh3spectriggered(0x0),
 fh3specbiased(0x0),
-fh3spectot(0x0)
-
+fh3spectot(0x0),
+fh3spectotb(0x0)
  {
    // Constructor
 
@@ -283,11 +305,39 @@ void AliAnalysisTaskJetCore::UserCreateOutputObjects()
      UInt_t entries = 0; // bit coded, see GetDimParams() below 
      entries = 1<<0 | 1<<1 | 1<<2 | 1<<3 | 1<<4 | 1<<5 | 1<<6 |1<<7; 
      fhnDeltaR = NewTHnSparseF("fhnDeltaR", entries);
-   
+
+     //change binning in pTtrack
+     Double_t *xPt3 = new Double_t[10];
+     xPt3[0] = 0.;
+     for(int i = 1; i<=9;i++){
+      if(xPt3[i-1]<1)xPt3[i] = xPt3[i-1] + 0.2; // 1 - 5
+      else if(xPt3[i-1]<10)xPt3[i] = xPt3[i-1] + 3; // 5 - 12
+      else xPt3[i] = xPt3[i-1] + 150.; // 18 
+     }
+    fhnDeltaR->SetBinEdges(2,xPt3);
+    delete [] xPt3;
+
+    //change binning in HTI
+     Double_t *xPt4 = new Double_t[14];
+     xPt4[0] = 0.;
+     for(int i = 1; i<=13;i++){
+      if(xPt4[i-1]<10)xPt4[i] = xPt4[i-1] + 1; // 1 - 10
+      else if(xPt4[i-1]<20)xPt4[i] = xPt4[i-1] + 5; // 10 - 12
+      else xPt4[i] = xPt4[i-1] + 30.; // 13
+     }
+    fhnDeltaR->SetBinEdges(6,xPt4);
+    delete [] xPt4;
+
     
+
+
+
+
+   
+     if(fDoEventMixing){    
      UInt_t cifras = 0; // bit coded, see GetDimParams() below 
      cifras = 1<<0 | 1<<1 | 1<<2 | 1<<3 | 1<<4 | 1<<5 | 1<<6 |1<<7; 
-     fhnMixedEvents = NewTHnSparseF("fhnMixedEvents", cifras);
+     fhnMixedEvents = NewTHnSparseF("fhnMixedEvents", cifras);}
 
     if(fCheckMethods){
 
@@ -319,10 +369,21 @@ void AliAnalysisTaskJetCore::UserCreateOutputObjects()
     fh2AngStructpt2C60 = new TH2F("Ang struct pt2 C60","",15,0.,1.5,150,0.,10.);
     fh2AngStructpt3C60 = new TH2F("Ang struct pt3 C60","",15,0.,1.5,150,0.,10.);
     fh2AngStructpt4C60 = new TH2F("Ang struct pt4 C60","",15,0.,1.5,150,0.,10.); }
+
+    fh2JetsumHT3R2 = new TH2F("Pt sum R02 HT3","",20,0.,200.,100,0.,10.);
+    fh2JetsumHT3R2gap = new TH2F("Pt sum R02 HT3 gap","",20,0.,200.,100,0.,10.);
+    fh2JetsumHT3R4 = new TH2F("Pt sum R04 HT3","",20,0.,200.,100,0.,10.);
+    fh2JetsumHT3R4gap = new TH2F("Pt sum R04 HT3 gap","",20,0.,200.,100,0.,10.);
+    fh2JetsumHT3R6 = new TH2F("Pt sum R06 HT3","",20,0.,200.,100,0.,10.);
+    fh2JetsumHT3R6gap = new TH2F("Pt sum R06 HT3 gap","",20,0.,200.,100,0.,10.);
+    fh2JetsumHT3R8 = new TH2F("Pt sum R08 HT3","",20,0.,200.,100,0.,10.);
+    fh2JetsumHT3R8gap = new TH2F("Pt sum R08 HT3 gap","",20,0.,200.,100,0.,10.);
+    fh2JetsumHT3R10 = new TH2F("Pt sum R10 HT3","",20,0.,200.,100,0.,10.);
+    fh2JetsumHT3R10gap = new TH2F("Pt sum R10 HT3 gap","",20,0.,200.,100,0.,10.);  
     fh3spectriggered = new TH3F("Triggered spectrum","",10,0,100,50,0.,200,50,0.,50.);
     fh3specbiased = new TH3F("Biased spectrum","",10,0,100,50,0.,200.,50,0.,50.);
-    fh3spectot = new TH3F("Total spectrum","",50,0.,200.,50,0.,50.,50,0.,50.);
-
+    fh3spectot = new TH3F("Total spectrum 0-10","",50,0.,200.,50,0.,50.,50,0.,50.);
+    fh3spectotb = new TH3F("Total spectrum 0-20","",50,0.,200.,50,0.,50.,50,0.,50.);    
    fOutputList->Add(fHistEvtSelection);
 
    fOutputList->Add(fhnDeltaR);
@@ -363,10 +424,32 @@ void AliAnalysisTaskJetCore::UserCreateOutputObjects()
        fOutputList->Add(fh2AngStructpt2C60);
        fOutputList->Add(fh2AngStructpt3C60);
        fOutputList->Add(fh2AngStructpt4C60);}  
+
+
+       fOutputList->Add(fh2JetsumHT3R2);
+        fOutputList->Add(fh2JetsumHT3R2gap);
+
+
+               fOutputList->Add(fh2JetsumHT3R4);
+        fOutputList->Add(fh2JetsumHT3R4gap);
+
+
+        fOutputList->Add(fh2JetsumHT3R6);
+        fOutputList->Add(fh2JetsumHT3R6gap);
+
+
+               fOutputList->Add(fh2JetsumHT3R8);
+        fOutputList->Add(fh2JetsumHT3R8gap);
+
+
+        fOutputList->Add(fh2JetsumHT3R10);
+        fOutputList->Add(fh2JetsumHT3R10gap);
+
+
        fOutputList->Add(fh3spectriggered);
        fOutputList->Add(fh3specbiased);
        fOutputList->Add(fh3spectot);
-
+       fOutputList->Add(fh3spectotb); 
    // =========== Switch on Sumw2 for all histos ===========
    for (Int_t i=0; i<fOutputList->GetEntries(); ++i) {
       TH1 *h1 = dynamic_cast<TH1*>(fOutputList->At(i));
@@ -396,10 +479,17 @@ void AliAnalysisTaskJetCore::UserExec(Option_t *)
    fESD=dynamic_cast<AliESDEvent*>(InputEvent());
    if (!fESD) {
       AliError("ESD not available");
-      fAOD = dynamic_cast<AliAODEvent*>(InputEvent());
-   } else {
-      fAOD = dynamic_cast<AliAODEvent*>(AODEvent());
-   }
+      fAODIn = dynamic_cast<AliAODEvent*>(InputEvent());
+   } 
+      fAODOut = dynamic_cast<AliAODEvent*>(AODEvent());
+
+       static AliAODEvent* aod = 0;
+       // take all other information from the aod we take the tracks from
+       if(!aod){
+       if(!fESD)aod = fAODIn;
+       else aod = fAODOut;}
+
+   
  
     if(fNonStdFile.Length()!=0){
     // case that we have an AOD extension we need can fetch the jets from the extended output
@@ -428,17 +518,18 @@ void AliAnalysisTaskJetCore::UserExec(Option_t *)
    }
 
    // vertex selection
-   if(!fAOD){
+   if(!aod){
      if(fDebug) Printf("%s:%d No AOD",(char*)__FILE__,__LINE__);
      fHistEvtSelection->Fill(3);
       PostData(1, fOutputList);
    }
-   AliAODVertex* primVtx = fAOD->GetPrimaryVertex();
+   AliAODVertex* primVtx = aod->GetPrimaryVertex();
 
    if(!primVtx){
      if(fDebug) Printf("%s:%d No primVtx",(char*)__FILE__,__LINE__);
      fHistEvtSelection->Fill(3);
-      PostData(1, fOutputList);
+     PostData(1, fOutputList);
+     return;
    }
 
    Int_t nTracksPrim = primVtx->GetNContributors();
@@ -463,8 +554,10 @@ void AliAnalysisTaskJetCore::UserExec(Option_t *)
    // centrality selection
    AliCentrality *cent = 0x0;
    Double_t centValue = 0.; 
-   if(fESD) cent = fESD->GetCentrality();
-   if(cent) centValue = cent->GetCentralityPercentile("V0M");
+   if(fESD) {cent = fESD->GetCentrality();
+     if(cent) centValue = cent->GetCentralityPercentile("V0M");}
+   else     centValue=aod->GetHeader()->GetCentrality();
+   
    if(fDebug) printf("centrality: %f\n", centValue);
    if (centValue < fCentMin || centValue > fCentMax){
       fHistEvtSelection->Fill(4);
@@ -479,14 +572,19 @@ void AliAnalysisTaskJetCore::UserExec(Option_t *)
   
    // get background
    AliAODJetEventBackground* externalBackground = 0;
-   if(fAOD&&!externalBackground&&fBackgroundBranch.Length()){
-      externalBackground =  (AliAODJetEventBackground*)(fAOD->FindListObject(fBackgroundBranch.Data()));
+   if(fAODOut&&!externalBackground&&fBackgroundBranch.Length()){
+      externalBackground =  (AliAODJetEventBackground*)(fAODOut->FindListObject(fBackgroundBranch.Data()));
       if(!externalBackground)Printf("%s:%d Background branch not found %s",(char*)__FILE__,__LINE__,fBackgroundBranch.Data());;
    }
    if(fAODExtension&&!externalBackground&&fBackgroundBranch.Length()){
      externalBackground =  (AliAODJetEventBackground*)(fAODExtension->GetAOD()->FindListObject(fBackgroundBranch.Data()));
       if(!externalBackground)Printf("%s:%d Background branch not found %s",(char*)__FILE__,__LINE__,fBackgroundBranch.Data());;
    }
+
+    if(fAODIn&&!externalBackground&&fBackgroundBranch.Length()){
+      externalBackground =  (AliAODJetEventBackground*)(fAODIn->FindListObject(fBackgroundBranch.Data()));
+      if(!externalBackground)Printf("%s:%d Background branch not found %s",(char*)__FILE__,__LINE__,fBackgroundBranch.Data());;
+    }
    
    Float_t rho = 0;
    if(externalBackground)rho = externalBackground->GetBackground(0);
@@ -495,12 +593,16 @@ void AliAnalysisTaskJetCore::UserExec(Option_t *)
    // fetch jets
    TClonesArray *aodJets[2];
    aodJets[0]=0;
-   if(fAOD&&!aodJets[0]){
-   aodJets[0] = dynamic_cast<TClonesArray*>(fAOD->FindListObject(fJetBranchName[0].Data())); 
-   aodJets[1] = dynamic_cast<TClonesArray*>(fAOD->FindListObject(fJetBranchName[1].Data()));  }
+   if(fAODOut&&!aodJets[0]){
+   aodJets[0] = dynamic_cast<TClonesArray*>(fAODOut->FindListObject(fJetBranchName[0].Data())); 
+   aodJets[1] = dynamic_cast<TClonesArray*>(fAODOut->FindListObject(fJetBranchName[1].Data()));  }
    if(fAODExtension && !aodJets[0]){ 
    aodJets[0] = dynamic_cast<TClonesArray*>(fAODExtension->GetAOD()->FindListObject(fJetBranchName[0].Data())); 
    aodJets[1] = dynamic_cast<TClonesArray*>(fAODExtension->GetAOD()->FindListObject(fJetBranchName[1].Data()));  }
+     if(fAODIn&&!aodJets[0]){
+   aodJets[0] = dynamic_cast<TClonesArray*>(fAODIn->FindListObject(fJetBranchName[0].Data())); 
+   aodJets[1] = dynamic_cast<TClonesArray*>(fAODIn->FindListObject(fJetBranchName[1].Data()));  } 
+
 
    //Double_t ptsub[aodJets[0]->GetEntriesFast()];
    //Int_t inord[aodJets[0]->GetEntriesFast()];
@@ -567,6 +669,7 @@ void AliAnalysisTaskJetCore::UserExec(Option_t *)
               AliVParticle *partback = (AliVParticle*)ParticleList.At(point);                            
                if(!partback) continue; 
                   fh3spectriggered->Fill(centValue,ptcorr,partback->Pt());
+                  //if(partback->Pt()<6.) continue;
                        AliAODTrack* leadtrack; 
                        Int_t ippt=0;
                        Double_t ppt=-10;   
@@ -581,6 +684,7 @@ void AliAnalysisTaskJetCore::UserExec(Option_t *)
                         if(!leadtrack) continue;
                         fh3specbiased->Fill(centValue,ptcorr,leadtrack->Pt());
                         if(centValue<10)fh3spectot->Fill(ptcorr,leadtrack->Pt(),partback->Pt());
+                        if(centValue<20)fh3spectotb->Fill(ptcorr,leadtrack->Pt(),partback->Pt()); 
                        //store one trigger info                   
                         if((partback->Pt()>10.)&&(iCount==0)){                        
                          trigJet=i;
@@ -616,18 +720,69 @@ void AliAnalysisTaskJetCore::UserExec(Option_t *)
                   if((centValue>20)&&(centValue<40)) fh2JetCoreMethod2C20->Fill(ptcorr,jetmethod2->Pt()/ptbig); 
                  if((centValue>30)&&(centValue<60)) fh2JetCoreMethod2C30->Fill(ptcorr,jetmethod2->Pt()/ptbig);
                  if(centValue>60) fh2JetCoreMethod2C60->Fill(ptcorr,jetmethod2->Pt()/ptbig); }}  
+                 Double_t sumpt2a=0.;
+                  Double_t sumpt2b=0.;
+                  
+                  Double_t sumpt4a=0.;
+                  Double_t sumpt4b=0.;
+                  
+                  Double_t sumpt6a=0.;
+                  Double_t sumpt6b=0.;
+                  
+                  Double_t sumpt8a=0.;
+                  Double_t sumpt8b=0.;
+                  
+                  Double_t sumpt10a=0.;
+                  Double_t sumpt10b=0.;
+                  
 
           for(int it = 0;it<nT;++it){
          AliVParticle *part = (AliVParticle*)ParticleList.At(it);
                  Double_t deltaR = jetbig->DeltaR(part);
-          Double_t deltaEta = etabig-part->Eta();
+           Double_t deltaEta = etabig-part->Eta();
+          if(partback->Pt()>10.){
+            if(centValue<10){
+               if(deltaR<0.2){if(leadtrack->Pt()>3.){ sumpt2a=sumpt2a+part->Pt();
+              if(TMath::Abs(deltaEta)>0.8) sumpt2b=sumpt2b+part->Pt();}}
+               if(deltaR>=0.2 && deltaR<0.4){if(leadtrack->Pt()>3.){ sumpt4a=sumpt4a+part->Pt();
+              if(TMath::Abs(deltaEta)>0.8) sumpt4b=sumpt4b+part->Pt();}} 
+               if(deltaR>=0.4 && deltaR<0.6){if(leadtrack->Pt()>3.){ sumpt6a=sumpt6a+part->Pt();
+              if(TMath::Abs(deltaEta)>0.8) sumpt6b=sumpt6b+part->Pt();}} 
+               if(deltaR>=0.6 && deltaR<0.8){if(leadtrack->Pt()>3.){ sumpt8a=sumpt8a+part->Pt();
+              if(TMath::Abs(deltaEta)>0.8) sumpt8b=sumpt8b+part->Pt();}}                               
+               if(deltaR>=0.8 && deltaR<1.2){if(leadtrack->Pt()>3.){ sumpt10a=sumpt10a+part->Pt();
+                  if(TMath::Abs(deltaEta)>0.8) sumpt10b=sumpt10b+part->Pt();}}}}
+
+
           Double_t deltaPhi=phibig-part->Phi();
           if(deltaPhi<-0.5*TMath::Pi()) deltaPhi+=2.*TMath::Pi();
           if(deltaPhi>3./2.*TMath::Pi()) deltaPhi-=2.*TMath::Pi();
                  Double_t jetEntries[8] = {centValue,ptcorr,part->Pt(),deltaR,deltaEta,deltaPhi,leadtrack->Pt(),partback->Pt()};                     fhnDeltaR->Fill(jetEntries);
           }
           //end of track loop
-          }
+            Double_t rhoin2=rho*TMath::Pi()*0.2*0.2; 
+            Double_t rhoin4=rho*TMath::Pi()*(0.4*0.4-0.2*0.2);
+            Double_t rhoin6=rho*TMath::Pi()*(0.6*0.6-0.4*0.4);
+            Double_t rhoin8=rho*TMath::Pi()*(0.8*0.8-0.6*0.6);
+            Double_t rhoin10=rho*TMath::Pi()*(1.2*1.2-0.8*0.8); 
+           
+              
+          if(rho!=0){
+          if(partback->Pt()>10.){
+          fh2JetsumHT3R2->Fill(ptcorr,sumpt2a/rhoin2);
+          fh2JetsumHT3R2gap->Fill(ptcorr,sumpt2b/rhoin2);
+          fh2JetsumHT3R4->Fill(ptcorr,sumpt4a/rhoin4);
+          fh2JetsumHT3R4gap->Fill(ptcorr,sumpt4b/rhoin4);        
+          fh2JetsumHT3R6->Fill(ptcorr,sumpt6a/rhoin6);
+          fh2JetsumHT3R6gap->Fill(ptcorr,sumpt6b/rhoin6);
+          fh2JetsumHT3R8->Fill(ptcorr,sumpt8a/rhoin8);
+          fh2JetsumHT3R8gap->Fill(ptcorr,sumpt8b/rhoin8);
+          fh2JetsumHT3R10->Fill(ptcorr,sumpt10a/rhoin10);
+          fh2JetsumHT3R10gap->Fill(ptcorr,sumpt10b/rhoin10);
+         }}
+
+   }
           //end of jet loop
 
 
@@ -648,7 +803,8 @@ void AliAnalysisTaskJetCore::UserExec(Option_t *)
            if (TMath::Abs(fTrigBuffer[fTindex][6]-centValue<10)){  
              
                         for(int it = 0;it<nT;++it){
-                       AliVParticle *part = (AliVParticle*)ParticleList.At(it);                        Double_t DPhi = fTrigBuffer[fTindex][1] - part->Phi();
+                       AliVParticle *part = (AliVParticle*)ParticleList.At(it);         
+                        Double_t DPhi = fTrigBuffer[fTindex][1] - part->Phi();
                         Double_t DEta = fTrigBuffer[fTindex][2] - part->Eta();
                         Double_t DR=TMath::Sqrt(DPhi*DPhi+DEta*DEta);
                         if(DPhi<-0.5*TMath::Pi()) DPhi+=2.*TMath::Pi();
@@ -793,21 +949,18 @@ void AliAnalysisTaskJetCore::Terminate(const Option_t *)
 
 
 
-
-
-
-
-
-
+  
 
 
 Int_t  AliAnalysisTaskJetCore::GetListOfTracks(TList *list){
 
-    Int_t iCount = 0;
+     Int_t iCount = 0;
+     AliAODEvent *aod = 0;
+     if(!fESD)aod = fAODIn;
+     else aod = fAODOut;   
     
-    for(int it = 0;it < fAOD->GetNumberOfTracks();++it){
-      AliAODTrack *tr = fAOD->GetTrack(it);
+    for(int it = 0;it < aod->GetNumberOfTracks();++it){
+      AliAODTrack *tr = aod->GetTrack(it);
       if((fFilterMask>0)&&!(tr->TestFilterBit(fFilterMask)))continue;
       if(TMath::Abs(tr->Eta())>0.9)continue;
       if(tr->Pt()<0.15)continue;
@@ -822,15 +975,17 @@ Int_t  AliAnalysisTaskJetCore::GetListOfTracks(TList *list){
 }
 
    Int_t  AliAnalysisTaskJetCore::GetHardestTrackBackToJet(AliAODJet *jetbig){
-
-   
+    AliAODEvent *aod = 0;
+    if(!fESD)aod = fAODIn;
+    else aod = fAODOut;     
     Int_t index=-1;
     Double_t ptmax=-10;
     Double_t dphi=0;
     Double_t dif=0;
     Int_t iCount=0;
-    for(int it = 0;it < fAOD->GetNumberOfTracks();++it){
-      AliAODTrack *tr = fAOD->GetTrack(it);
+    for(int it = 0;it < aod->GetNumberOfTracks();++it){
+      AliAODTrack *tr = aod->GetTrack(it);
       if((fFilterMask>0)&&!(tr->TestFilterBit(fFilterMask)))continue;
       if(TMath::Abs(tr->Eta())>0.9)continue;
       if(tr->Pt()<0.15)continue;
@@ -838,8 +993,8 @@ Int_t  AliAnalysisTaskJetCore::GetListOfTracks(TList *list){
       dphi=RelativePhi(tr->Phi(),jetbig->Phi());  
       if(TMath::Abs(dphi)<TMath::Pi()-0.2) continue;
       if(tr->Pt()>ptmax){ ptmax=tr->Pt();
-       index=iCount;
-        dif=dphi;  }}
+      index=iCount-1;
+      dif=dphi;  }}
   
       return index;
 
@@ -856,10 +1011,12 @@ Int_t  AliAnalysisTaskJetCore::GetListOfTracks(TList *list){
  Int_t  AliAnalysisTaskJetCore::GetListOfTracksCloseToJet(TList *list,AliAODJet *jetbig){
 
     Int_t iCount = 0;
+      AliAODEvent *aod = 0;
+     if(!fESD)aod = fAODIn;
+     else aod = fAODOut;   
   
-    for(int it = 0;it < fAOD->GetNumberOfTracks();++it){
-      AliAODTrack *tr = fAOD->GetTrack(it);
+    for(int it = 0;it < aod->GetNumberOfTracks();++it){
+      AliAODTrack *tr = aod->GetTrack(it);
       if((fFilterMask>0)&&!(tr->TestFilterBit(fFilterMask)))continue;
       if(TMath::Abs(tr->Eta())>0.9)continue;
       if(tr->Pt()<0.15)continue;
@@ -889,7 +1046,9 @@ Int_t AliAnalysisTaskJetCore::GetNInputTracks()
 {
 
    Int_t nInputTracks = 0;
-
+     AliAODEvent *aod = 0;
+     if(!fESD)aod = fAODIn;
+     else aod = fAODOut;   
    TString jbname(fJetBranchName[1]);
    //needs complete event, use jets without background subtraction
    for(Int_t i=1; i<=3; ++i){
@@ -900,7 +1059,7 @@ Int_t AliAnalysisTaskJetCore::GetNInputTracks()
    if(jbname.Contains("AODextra")) jbname.ReplaceAll("AODextra","AOD");
 
    if(fDebug) Printf("Multiplicity from jet branch %s", jbname.Data());
-   TClonesArray *tmpAODjets = dynamic_cast<TClonesArray*>(fAOD->FindListObject(jbname.Data()));
+   TClonesArray *tmpAODjets = dynamic_cast<TClonesArray*>(aod->FindListObject(jbname.Data()));
    if(!tmpAODjets){
       Printf("Jet branch %s not found", jbname.Data());
       Printf("AliAnalysisTaskJetCore::GetNInputTracks FAILED");
@@ -990,7 +1149,7 @@ void AliAnalysisTaskJetCore::GetDimParams(Int_t iEntry, TString &label, Int_t &n
       
    case 1:
       label = "corrected jet pt";
-         nbins = 50;
+         nbins = 20;
          xmin = 0.;
          xmax = 200.;
           break;
@@ -999,9 +1158,9 @@ void AliAnalysisTaskJetCore::GetDimParams(Int_t iEntry, TString &label, Int_t &n
    case 2:
       label = "track pT";
      
-         nbins = 1000;
+         nbins = 10;
          xmin = 0.;
-         xmax = 50;
+         xmax = 150;
          break;
       
       
@@ -1016,7 +1175,7 @@ void AliAnalysisTaskJetCore::GetDimParams(Int_t iEntry, TString &label, Int_t &n
 
    case 4:
       label = "deltaEta";
-      nbins = 30;
+      nbins = 15;
       xmin = -1.5;
       xmax = 1.5;
       break;
@@ -1033,7 +1192,7 @@ void AliAnalysisTaskJetCore::GetDimParams(Int_t iEntry, TString &label, Int_t &n
         
     case 6:
       label = "leading track";
-      nbins = 50;
+      nbins = 14;
       xmin = 0;
       xmax = 50;
       break;
@@ -1041,7 +1200,7 @@ void AliAnalysisTaskJetCore::GetDimParams(Int_t iEntry, TString &label, Int_t &n
      case 7:
     
       label = "trigger track";
-      nbins =50;
+      nbins =5;
       xmin = 0;
       xmax = 50;
       break;