]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
complete rework (rosi)
authorloizides <loizides@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 4 Feb 2013 12:27:15 +0000 (12:27 +0000)
committerloizides <loizides@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 4 Feb 2013 12:27:15 +0000 (12:27 +0000)
PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskEmcalJetSpectra.cxx
PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskEmcalJetSpectra.h

index fc2795f68e0c92ecba880ff2974748bccfd91a6a..11820ae1e7ef84110fa46f2b968a2c73c68614a5 100644 (file)
@@ -11,6 +11,7 @@
 #include <TClonesArray.h>
 #include <TH1F.h>
 #include <TH2F.h>
+#include <THnSparse.h>
 #include <TList.h>
 #include <TLorentzVector.h>
 #include <TParameter.h>
 #include "AliESDInputHandler.h"
 #include "AliEmcalJet.h"
 #include "AliVCluster.h"
+#include "AliRhoParameter.h"
+#include "AliEmcalParticle.h"
 
 ClassImp(AliAnalysisTaskEmcalJetSpectra)
 
 //________________________________________________________________________
 AliAnalysisTaskEmcalJetSpectra::AliAnalysisTaskEmcalJetSpectra() : 
-  AliAnalysisTaskSE(), 
-  fTracksName("tracks"),
-  fJetsName("jets"),
-  fClustersName("clusters"),
-  fRhos1Name("fArrRhos"),
-  fRhos2Name("fArrRhos"),
-  fRhos3Name("fArrRhos"),
-  fPhimin(-10), 
-  fPhimax(10),
-  fEtamin(-0.9), 
-  fEtamax(0.9),
-  fAreacut(0.0),
-  fESD(0), 
-  fOutputList(0), 
-  fHistCentrality(0),  
-  fHistDeltaRho12vsCent(0), 
-  fHistDeltaRho13vsCent(0), 
-  fHistDeltaRho23vsCent(0), 
-  fHistDeltaJetPt12vsCent(0), 
-  fHistDeltaJetPt13vsCent(0), 
-  fHistDeltaJetPt23vsCent(0), 
-  fHistRho1vsCent(0), 
-  fHistRho2vsCent(0), 
-  fHistRho3vsCent(0)
+  AliAnalysisTaskEmcalJet("spectra",kFALSE), 
+  fHistRhovsCent(0),
+  fHistNjetvsCent(0)
 {
   // Default constructor.
+  for (Int_t i = 0;i<6;++i){
+    fHistJetPtvsTrackPt[i]      = 0;
+    fHistRawJetPtvsTrackPt[i]   = 0;
+    fHistTrackPt[i]             = 0;
+    fHistEP0[i]                 = 0;
+    fHistEP0A[i]                = 0;
+    fHistEP0C[i]                = 0;
+    fHistEPAvsC[i]              = 0;
+    fHistJetPtvsdEP[i]          = 0;
+    fHistJetPtvsdEPBias[i]      = 0;
+    fHistRhovsEP[i]             = 0;
 
-  for (Int_t i = 0;i<6;++i) {
-    fHistRawJetPt[i]       = 0;
-    fHistAreavsRawPt[i]    = 0;
-    for (Int_t j = 0;j<4;++j) {
-      fHistNEFvsPt[i][j]   = 0;
-       fHistZvsPt[i][j]     = 0;
-       fHistZchvsPt[i][j]   = 0;
-       fHistZemvsPt[i][j]   = 0;
-       fHistJetPt[i][j]     = 0;
-       fHistNconsvsPt[i][j] = 0;
-       fHistJetPt3[i][j]    = 0;
-       fHistJetPt5[i][j]    = 0;
-       fHistJetPt7[i][j]    = 0;
-       fHistJetPt9[i][j]    = 0;
-    }
   }
+  SetMakeGeneralHistograms(kTRUE);
 }
 
 //________________________________________________________________________
 AliAnalysisTaskEmcalJetSpectra::AliAnalysisTaskEmcalJetSpectra(const char *name) :
-  AliAnalysisTaskSE(name), 
-  fTracksName("tracks"),
-  fJetsName("jets"),
-  fClustersName("clusters"),
-  fRhos1Name("fArrRhos"),
-  fRhos2Name("fArrRhos"),
-  fRhos3Name("fArrRhos"),
-  fPhimin(-10), 
-  fPhimax(10),
-  fEtamin(-0.9), 
-  fEtamax(0.9),
-  fAreacut(0.0),
-  fESD(0), 
-  fOutputList(0), 
-  fHistCentrality(0),  
-  fHistDeltaRho12vsCent(0), 
-  fHistDeltaRho13vsCent(0), 
-  fHistDeltaRho23vsCent(0), 
-  fHistDeltaJetPt12vsCent(0), 
-  fHistDeltaJetPt13vsCent(0), 
-  fHistDeltaJetPt23vsCent(0), 
-  fHistRho1vsCent(0), 
-  fHistRho2vsCent(0), 
-  fHistRho3vsCent(0)
-{
-  // Constructor
-
-  for (Int_t i = 0;i<6;++i) {
-    fHistRawJetPt[i]       = 0;
-    fHistAreavsRawPt[i]    = 0;
-    for (Int_t j = 0;j<4;++j) {
-      fHistNEFvsPt[i][j]   = 0;
-      fHistZvsPt[i][j]     = 0;
-      fHistZchvsPt[i][j]   = 0;
-      fHistZemvsPt[i][j]   = 0;
-      fHistJetPt[i][j]     = 0;
-      fHistNconsvsPt[i][j] = 0;
-      fHistJetPt3[i][j]    = 0;
-      fHistJetPt5[i][j]    = 0;
-      fHistJetPt7[i][j]    = 0;
-      fHistJetPt9[i][j]    = 0;
-    }
-  }
-  
-  DefineInput(0, TChain::Class());
-  DefineOutput(1, TList::Class());
-}
+  AliAnalysisTaskEmcalJet(name,kTRUE),
+  fHistRhovsCent(0),
+  fHistNjetvsCent(0)
+ { 
+   for (Int_t i = 0;i<6;++i){
+    fHistJetPtvsTrackPt[i]      = 0;
+    fHistRawJetPtvsTrackPt[i]   = 0;
+    fHistTrackPt[i]             = 0;
+    fHistEP0[i]                 = 0;
+    fHistEP0A[i]                = 0;
+    fHistEP0C[i]                = 0;
+    fHistEPAvsC[i]              = 0;
+    fHistJetPtvsdEP[i]          = 0;
+    fHistJetPtvsdEPBias[i]      = 0;
+    fHistRhovsEP[i]             = 0;
+   }
+   SetMakeGeneralHistograms(kTRUE);
+ }
 
 //________________________________________________________________________
 void AliAnalysisTaskEmcalJetSpectra::UserCreateOutputObjects()
 {
-  // Called once at the beginning of the analysis.
-
-  AliVEventHandler* handler = AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler();
-  if (!handler) {
-    AliError("Input handler not available!");
+  if (! fCreateHisto)
     return;
+  AliAnalysisTaskEmcalJet::UserCreateOutputObjects();
+
+  fHistRhovsCent             = new TH2F("RhovsCent",              "RhovsCent",             100, 0.0, 100.0, 500, 0, 500);
+  fHistNjetvsCent            = new TH2F("NjetvsCent",             "NjetvsCent",            100, 0.0, 100.0, 100, 0, 100);
+
+  TString name;
+  TString title;
+  for (Int_t i = 0;i<6;++i){
+    name = TString(Form("JetPtvsTrackPt_%i",i));
+    title = TString(Form("Jet pT vs Leading Track pT cent bin %i",i));
+    fHistJetPtvsTrackPt[i] = new TH2F(name,title,1000,-500,500,100,0,100);
+    fOutput->Add(fHistJetPtvsTrackPt[i]);
+    name = TString(Form("RawJetPtvsTrackPt_%i",i));
+    title = TString(Form("Raw Jet pT vs Leading Track pT cent bin %i",i));
+    fHistRawJetPtvsTrackPt[i] = new TH2F(name,title,1000,-500,500,100,0,100);
+    fOutput->Add(fHistRawJetPtvsTrackPt[i]);
+    name = TString(Form("TrackPt_%i",i));
+    title = TString(Form("Track pT cent bin %i",i));
+    fHistTrackPt[i] = new TH1F(name,title,1000,0,200);
+    fOutput->Add(fHistTrackPt[i]);
+   
+    name = TString(Form("EP0_%i",i));
+    title = TString(Form("EP VZero cent bin %i",i));
+    fHistEP0[i] = new TH1F(name,title,100,-TMath::Pi(),TMath::Pi());
+    fOutput->Add(fHistEP0[i]);
+    name = TString(Form("EP0A_%i",i));
+    title = TString(Form("EP VZero cent bin %i",i));
+    fHistEP0A[i] = new TH1F(name,title,100,-TMath::Pi(),TMath::Pi());
+    fOutput->Add(fHistEP0A[i]);
+    name = TString(Form("EP0C_%i",i));
+    title = TString(Form("EP VZero cent bin %i",i));
+    fHistEP0C[i] = new TH1F(name,title,100,-TMath::Pi(),TMath::Pi());
+    fOutput->Add(fHistEP0C[i]);
+    name = TString(Form("EPAvsC_%i",i));
+    title = TString(Form("EP VZero cent bin %i",i));
+    fHistEPAvsC[i] = new TH2F(name,title,100,-TMath::Pi(),TMath::Pi(),100,-TMath::Pi(),TMath::Pi());
+    fOutput->Add(fHistEPAvsC[i]);
+    name = TString(Form("JetPtvsdEP_%i",i));
+    title = TString(Form("Jet pt vs dEP cent bin %i",i));
+    fHistJetPtvsdEP[i] = new TH2F(name,title,1000,-500,500,400,-2*TMath::Pi(),2*TMath::Pi());
+    fOutput->Add(fHistJetPtvsdEP[i]);
+    name = TString(Form("JetPtvsdEPBias_%i",i));
+    title = TString(Form("Bias Jet pt vs dEP cent bin %i",i));
+    fHistJetPtvsdEPBias[i] = new TH2F(name,title,1000,-500,500,400,-2*TMath::Pi(),2*TMath::Pi());
+    fOutput->Add(fHistJetPtvsdEPBias[i]);
+    name = TString(Form("JetPtvsEP_%i",i));
+    title = TString(Form("Jet pt vs EP cent bin %i",i));
+    fHistJetPtvsEP[i] = new TH2F(name,title,1000,-500,500,400,-2*TMath::Pi(),2*TMath::Pi());
+    fOutput->Add(fHistJetPtvsEP[i]);
+    name = TString(Form("JetPtvsEPBias_%i",i));
+    title = TString(Form("Bias Jet pt vs EP cent bin %i",i));
+    fHistJetPtvsEPBias[i] = new TH2F(name,title,1000,-500,500,400,-2*TMath::Pi(),2*TMath::Pi());
+    fOutput->Add(fHistJetPtvsEPBias[i]);
+    name = TString(Form("RhovsEP_%i",i));
+    title = TString(Form("Rho vs EP cent bin %i",i));
+    fHistRhovsEP[i] = new TH2F(name,title,500,0,500,400,-2*TMath::Pi(),2*TMath::Pi());
+    fOutput->Add(fHistRhovsEP[i]);
   }
 
-  OpenFile(1);
-  fOutputList = new TList();
-  fOutputList->SetOwner();
-
-  fHistCentrality            = new TH1F("Centrality",             "Centrality",            101, -1,  100);
-  fHistDeltaRho12vsCent      = new TH2F("DeltaRho12vsCent",       "DeltaRho12vsCent",      100, 0.0, 100.0, 500,-250,250);
-  fHistDeltaRho13vsCent      = new TH2F("DeltaRho13vsCent",       "DeltaRho13vsCent",      100, 0.0, 100.0, 500,-250,250);
-  fHistDeltaRho23vsCent      = new TH2F("DeltaRho23vsCent",       "DeltaRho23vsCent",      100, 0.0, 100.0, 500,-250,250);
-  fHistDeltaJetPt12vsCent    = new TH2F("DeltaJetPt12vsCent",     "DeltaJetPt12vsCent",    100, 0.0, 100.0, 500,-250,250);
-  fHistDeltaJetPt13vsCent    = new TH2F("DeltaJetPt13vsCent",     "DeltaJetPt13vsCent",    100, 0.0, 100.0, 500,-250,250);
-  fHistDeltaJetPt23vsCent    = new TH2F("DeltaJetPt23vsCent",     "DeltaJetPt23vsCent",    100, 0.0, 100.0, 500,-250,250);
-  fHistRho1vsCent            = new TH2F("Rho1vsCent",             "Rho1vsCent",            100, 0.0, 100.0, 500, 0, 500);
-  fHistRho2vsCent            = new TH2F("Rho2vsCent",             "Rho2vsCent",            100, 0.0, 100.0, 500, 0, 500);
-  fHistRho3vsCent            = new TH2F("Rho3vsCent",             "Rho3vsCent",            100, 0.0, 100.0, 500, 0, 500);
-
-  for (Int_t i = 0;i<6;++i) {
-    TString name00(Form("fHistRawJetPt_%i",i));
-    fHistRawJetPt[i] = new TH1F(name00,name00,250,0,500);
-    fOutputList->Add(fHistRawJetPt[i]);
-    TString name01(Form("fHistAreavsRawPt_%i",i));
-    fHistAreavsRawPt[i] = new TH2F(name01,name01,250,0,500,100,0,1);
-    fOutputList->Add(fHistAreavsRawPt[i]);
-    for (Int_t j = 0;j<4;j++) {
-      TString name0(Form("fHistNEFvsPt_%i_%i",i,j));
-      fHistNEFvsPt[i][j] = new TH2F(name0,name0,250,-250,250,200,0,2);
-      fOutputList->Add(fHistNEFvsPt[i][j]);
-      TString name1(Form("fHistZvsPt_%i_%i",i,j));
-      fHistZvsPt[i][j] = new TH2F(name1,name1,250,-250,250,200,0,2);
-      fOutputList->Add(fHistZvsPt[i][j]);
-      TString name2(Form("fHistZchvsPt_%i_%i",i,j));
-      fHistZchvsPt[i][j] = new TH2F(name2,name2,250,-250,250,200,0,2);
-      fOutputList->Add(fHistZchvsPt[i][j]);
-      TString name3(Form("fHistZemvsPt_%i_%i",i,j));
-      fHistZemvsPt[i][j] = new TH2F(name3,name3,250,-250,250,200,0,2);
-      fOutputList->Add(fHistZemvsPt[i][j]);
-      TString name5(Form("fHistJetPt_%i_%i",i,j));
-      fHistJetPt[i][j] = new TH1F(name5,name5,250,-250,250);
-      fOutputList->Add(fHistJetPt[i][j]);
-      TString name6(Form("fHistNconsvsPt_%i_%i",i,j));
-      fHistNconsvsPt[i][j] = new TH2F(name6,name6,250,-250,250,500,0,500);
-      fOutputList->Add(fHistNconsvsPt[i][j]);
-      TString name7(Form("fHistJetPt3_%i_%i",i,j));
-      fHistJetPt3[i][j] = new TH1F(name7,name7,250,-250,250);
-      fOutputList->Add(fHistJetPt3[i][j]);
-      TString name8(Form("fHistJetPt5_%i_%i",i,j));
-      fHistJetPt5[i][j] = new TH1F(name8,name8,250,-250,250);
-      fOutputList->Add(fHistJetPt5[i][j]);
-      TString name9(Form("fHistJetPt7_%i_%i",i,j));
-      fHistJetPt7[i][j] = new TH1F(name9,name9,250,-250,250);
-      fOutputList->Add(fHistJetPt7[i][j]);
-      TString name10(Form("fHistJetPt9_%i_%i",i,j));
-      fHistJetPt9[i][j] = new TH1F(name10,name10,250,-250,250);
-      fOutputList->Add(fHistJetPt9[i][j]);
-    }
-  }
-  fOutputList->Add(fHistCentrality);
-  fOutputList->Add(fHistDeltaRho12vsCent);
-  fOutputList->Add(fHistDeltaRho13vsCent);
-  fOutputList->Add(fHistDeltaRho23vsCent);
-  fOutputList->Add(fHistDeltaJetPt12vsCent);
-  fOutputList->Add(fHistDeltaJetPt13vsCent);
-  fOutputList->Add(fHistDeltaJetPt23vsCent);
-  fOutputList->Add(fHistRho1vsCent);
-  fOutputList->Add(fHistRho2vsCent);
-  fOutputList->Add(fHistRho3vsCent);
   
-  PostData(1, fOutputList);
+  fOutput->Add(fHistRhovsCent);
+  fOutput->Add(fHistNjetvsCent);
+  
+   PostData(1, fOutput);
 }
 
 //________________________________________________________________________
+
 Int_t AliAnalysisTaskEmcalJetSpectra::GetCentBin(Double_t cent) const 
 {
   // Get centrality bin.
@@ -228,201 +170,84 @@ Int_t AliAnalysisTaskEmcalJetSpectra::GetCentBin(Double_t cent) const
 }
 
 //________________________________________________________________________
-void AliAnalysisTaskEmcalJetSpectra::UserExec(Option_t *) 
-{
-  // Main loop, called for each event.
 
-  // esd or aod mode
-  Bool_t esdMode = kTRUE;
-  if (dynamic_cast<AliAODEvent*>(InputEvent()))
-    esdMode = kFALSE;
-
-  if (esdMode) {
-    // optimization in case autobranch loading is off
-    AliAnalysisManager *am = AliAnalysisManager::GetAnalysisManager();
-    if (fTracksName == "Tracks")
-      am->LoadBranch("Tracks");
-  }
+Float_t AliAnalysisTaskEmcalJetSpectra:: RelativePhi(Double_t mphi,Double_t vphi) const
+{
+  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());
+  else if (mphi > TMath::Pi()) mphi -= (2*TMath::Pi());
+  double dphi = mphi-vphi;
+  if (dphi < -1*TMath::Pi()) dphi += (2*TMath::Pi());
+  else if (dphi > TMath::Pi()) dphi -= (2*TMath::Pi());
+
+  return dphi;//dphi in [-Pi, Pi]                                                                                                    
+}
 
-  // get centrality 
-  Double_t fCent = -1; 
-  TList *l = InputEvent()->GetList();
-  AliCentrality *centrality = InputEvent()->GetCentrality() ;
-  if (centrality)
-    fCent = centrality->GetCentralityPercentile("V0M");
-  else
-    fCent=99; // probably pp data
-  if (fCent<0) {
-    AliError(Form("Centrality negative: %f", fCent));
-    return;
-  }
 
+//________________________________________________________________________
+Bool_t AliAnalysisTaskEmcalJetSpectra::Run()
+{
   Int_t centbin = GetCentBin(fCent);
+  //for pp analyses we will just use the first centrality bin
+  if (centbin == -1)
+    centbin = 0;
 
-  //don't want to analyze events 90-100
-  if (centbin < 0)
-    return;
-
-  TClonesArray *jets = 0;
-  TClonesArray *tracks = 0;
-
-  tracks = dynamic_cast<TClonesArray*>(l->FindObject(fTracksName));
-  if (!tracks) {
-    AliError(Form("Pointer to tracks %s == 0", fTracksName.Data() ));
-    return;
-  }
+  if (!fTracks)
+    return kTRUE;
   
-  jets = dynamic_cast<TClonesArray*>(l->FindObject(fJetsName));
-  if (!jets) {
-    AliError(Form("Pointer to tracks %s == 0", fTracksName.Data() ));
-    return;
+  const Int_t nTrack = fTracks->GetEntriesFast();
+  for (int i = 0;i<nTrack;i++){
+    AliVParticle *track = static_cast<AliVParticle*>(fTracks->At(i));
+    if (! track)
+      continue;
+    fHistTrackPt[centbin]->Fill(track->Pt());
   }
 
-  Double_t rho1 = 0;
-  TParameter<Double_t> *Rho1Param = dynamic_cast<TParameter<Double_t>*>(InputEvent()->FindListObject(fRhos1Name));
-  if (Rho1Param)
-    rho1 = Rho1Param->GetVal();
-
-  Double_t rho2 = 0;
-  TParameter<Double_t> *Rho2Param = dynamic_cast<TParameter<Double_t>*>(InputEvent()->FindListObject(fRhos2Name));
-  if (Rho2Param)
-    rho2 = Rho2Param->GetVal();
+  fHistEP0[centbin]->Fill(fEPV0);
+  fHistEP0A[centbin]->Fill(fEPV0A);
+  fHistEP0C[centbin]->Fill(fEPV0C);
+  fHistEPAvsC[centbin]->Fill(fEPV0A,fEPV0C);
+  TString fRhoScaledName = fRhoName;
+  fRhoScaledName.Append("_Scaled");
+  fRho = GetRhoFromEvent(fRhoScaledName);
+  fRhoVal = fRho->GetVal();
+  fHistRhovsCent->Fill(fCent,fRhoVal);
+  fHistRhovsEP[centbin]->Fill(fRhoVal,fEPV0);
+  const Int_t Njets = fJets->GetEntriesFast();
 
-  Double_t rho3 = 0;
-  TParameter<Double_t> *Rho3Param = dynamic_cast<TParameter<Double_t>*>(InputEvent()->FindListObject(fRhos3Name));
-  if (Rho3Param)
-    rho3 = Rho3Param->GetVal();
-
-  fHistRho1vsCent->Fill(fCent,rho1);
-  fHistRho2vsCent->Fill(fCent,rho2);
-  fHistRho3vsCent->Fill(fCent,rho3);
-  
-  if (( rho1>0 ) && ( rho2>0 )) 
-    fHistDeltaRho12vsCent->Fill(fCent,rho1-rho2);
-  if (( rho1>0 ) && ( rho3>0 )) 
-    fHistDeltaRho13vsCent->Fill(fCent,rho1-rho3);
-  if (( rho2>0 ) && ( rho3>0 )) 
-    fHistDeltaRho23vsCent->Fill(fCent,rho2-rho3);
-  fHistCentrality->Fill(fCent);
-
-  Double_t lJetPt   = -500;
-  Double_t lJetPtun = -500;
-  const Int_t Njets = jets->GetEntries();
   Int_t NjetAcc = 0;
   for (Int_t iJets = 0; iJets < Njets; ++iJets) {
-    AliEmcalJet *jet = static_cast<AliEmcalJet*>(jets->At(iJets));
-    if (!jet)
-      continue; 
-    if ((jet->Phi()<fPhimin)||(jet->Phi()>fPhimax))
-      continue;
-    if ((jet->Eta()<fEtamin)||(jet->Eta()>fEtamax))
-      continue;
-    fHistAreavsRawPt[centbin]->Fill(jet->Pt(),jet->Area());
-    if (jet->Area()<fAreacut)
-      continue;
-    //prevents 0 area jets from sneaking by when area cut == 0
-    if (jet->Area()==0)
-      continue;
-    if (jet->Pt()==0)
-      continue;
-    if (jet->MaxTrackPt()>100)
-      continue;
-    fHistRawJetPt[centbin]->Fill(jet->Pt());
-    
-    NjetAcc++;
-    Double_t Z; 
-    Double_t jetPt1 = -500;
-    Double_t jetPt2 = -500;
-    Double_t jetPt3 = -500;
-    jetPt1 = jet->Pt()-jet->Area()*rho1;
-    jetPt2 = jet->Pt()-jet->Area()*rho2;
-    jetPt3 = jet->Pt()-jet->Area()*rho3;
-    if (( rho1>0 ) && ( rho2>0 )) 
-      fHistDeltaJetPt12vsCent->Fill(fCent,jetPt1-jetPt2);
-    if (( rho1>0 ) && ( rho3>0 )) 
-      fHistDeltaJetPt13vsCent->Fill(fCent,jetPt1-jetPt3);
-    if (( rho2>0 ) && ( rho3>0 )) 
-      fHistDeltaJetPt23vsCent->Fill(fCent,jetPt2-jetPt3);
-
-    if (lJetPt < jetPt2) {
-      lJetPt= jetPt2;
-      lJetPtun = jet->Pt();
-    }
-  
-    Z = jet->MaxTrackPt();   
-    fHistNEFvsPt[centbin][0]->Fill(jet->Pt(),jet->NEF());
-    fHistZvsPt[centbin][0]->Fill(jet->Pt(),Z/jet->Pt());
-    fHistZchvsPt[centbin][0]->Fill(jet->Pt(),jet->MaxTrackPt()/jet->Pt());
-    fHistZemvsPt[centbin][0]->Fill(jet->Pt(),jet->MaxClusterPt()/jet->Pt());
-    fHistJetPt[centbin][0]->Fill(jet->Pt());
-    fHistNconsvsPt[centbin][0]->Fill(jet->Pt(),jet->N());
-    if (jet->MaxTrackPt()>3)
-      fHistJetPt3[centbin][0]->Fill(jet->Pt());
-    if (jet->MaxTrackPt()>5)
-      fHistJetPt5[centbin][0]->Fill(jet->Pt());
-    if (jet->MaxTrackPt()>7)
-      fHistJetPt7[centbin][0]->Fill(jet->Pt());
-    if (jet->MaxTrackPt()>9)
-      fHistJetPt9[centbin][0]->Fill(jet->Pt());
-
-    if (jetPt1!=0){
-      fHistNEFvsPt[centbin][1]->Fill(jetPt1,jet->NEF());
-      fHistZvsPt[centbin][1]->Fill(jetPt1,Z/jetPt1);
-      fHistZchvsPt[centbin][1]->Fill(jetPt1,jet->MaxTrackPt()/jetPt1);
-      fHistZemvsPt[centbin][1]->Fill(jetPt1,jet->MaxClusterPt()/jetPt1);
-      fHistJetPt[centbin][1]->Fill(jetPt1);
-      fHistNconsvsPt[centbin][1]->Fill(jetPt1,jet->N());
-      if (jet->MaxTrackPt()>3) 
-       fHistJetPt3[centbin][1]->Fill(jetPt1);
-      if (jet->MaxTrackPt()>5) 
-       fHistJetPt5[centbin][1]->Fill(jetPt1);
-      if (jet->MaxTrackPt()>7) 
-       fHistJetPt7[centbin][1]->Fill(jetPt1);
-      if (jet->MaxTrackPt()>9) 
-       fHistJetPt9[centbin][1]->Fill(jetPt1);}
-    
-    if (jetPt2!=0){
-      fHistNEFvsPt[centbin][2]->Fill(jetPt2,jet->NEF());
-      fHistZvsPt[centbin][2]->Fill(jetPt2,Z/jetPt2);
-      fHistZchvsPt[centbin][2]->Fill(jetPt2,jet->MaxTrackPt()/jetPt2);
-      fHistZemvsPt[centbin][2]->Fill(jetPt2,jet->MaxClusterPt()/jetPt2);
-      fHistJetPt[centbin][2]->Fill(jetPt2);
-      fHistNconsvsPt[centbin][2]->Fill(jetPt2,jet->N());
-      if (jet->MaxTrackPt()>3)
-       fHistJetPt3[centbin][2]->Fill(jetPt2);
-      if (jet->MaxTrackPt()>5)
-       fHistJetPt5[centbin][2]->Fill(jetPt2);
-      if (jet->MaxTrackPt()>7)
-       fHistJetPt7[centbin][2]->Fill(jetPt2);
-      if (jet->MaxTrackPt()>9)
-       fHistJetPt9[centbin][2]->Fill(jetPt2);}
-    
-    if (jetPt3!=0){
-      fHistNEFvsPt[centbin][3]->Fill(jetPt3,jet->NEF());
-      fHistZvsPt[centbin][3]->Fill(jetPt3,Z/jetPt3);
-      fHistZchvsPt[centbin][3]->Fill(jetPt3,jet->MaxTrackPt()/jetPt3);
-      fHistZemvsPt[centbin][3]->Fill(jetPt3,jet->MaxClusterPt()/jetPt3);
-      fHistJetPt[centbin][3]->Fill(jetPt3);
-      fHistNconsvsPt[centbin][3]->Fill(jetPt3,jet->N());
-      if (jet->MaxTrackPt()>3)
-       fHistJetPt3[centbin][3]->Fill(jetPt3);
-      if (jet->MaxTrackPt()>5)
-       fHistJetPt5[centbin][3]->Fill(jetPt3);
-      if (jet->MaxTrackPt()>7)
-       fHistJetPt7[centbin][3]->Fill(jetPt3);
-      if (jet->MaxTrackPt()>9)
-       fHistJetPt9[centbin][3]->Fill(jetPt3);}
+     AliEmcalJet *jet = static_cast<AliEmcalJet*>(fJets->At(iJets));
+     if (!jet)
+       continue; 
+     if (jet->Area()==0)
+       continue;
+     if (jet->Pt()<0.1)
+       continue;
+     if (jet->MaxTrackPt()>100)
+       continue;
+     if (! AcceptJet(jet))
+       continue;
+     //  jets.push_back(jet);
+     NjetAcc++;
+     Double_t jetPt = -500;
+     jetPt = jet->Pt()-jet->Area()*fRhoVal;    
+     fHistJetPtvsTrackPt[centbin]->Fill(jetPt,jet->MaxTrackPt());
+     fHistRawJetPtvsTrackPt[centbin]->Fill(jet->Pt(),jet->MaxTrackPt());
+     fHistJetPtvsdEP[centbin]->Fill(jetPt,RelativePhi((fEPV0+TMath::Pi()),jet->Phi()));
+     fHistJetPtvsEP[centbin]->Fill(jetPt,fEPV0);
+     if (jet->MaxTrackPt()>5.0){
+       fHistJetPtvsdEPBias[centbin]->Fill(jetPt,RelativePhi((fEPV0+TMath::Pi()),jet->Phi()));
+       fHistJetPtvsEPBias[centbin]->Fill(jetPt,fEPV0);
+     }
   }
   
-  PostData(1, fOutputList);
+  fHistNjetvsCent->Fill(fCent,NjetAcc);
+  return kTRUE;
 }      
 
-//________________________________________________________________________
-void AliAnalysisTaskEmcalJetSpectra::Terminate(Option_t *) 
-{
-  // Called once at the end of the analysis.
-}
+
+
 
 
index 3dde66a6e41d4bc011370afea85012af7cc99df0..50fcccc647bf969afbe69b5bd23038828cfaa0ea 100644 (file)
@@ -3,76 +3,49 @@
 
 // $Id$
 
-class TList;
+
 class TH1F;
 class TH2F;
-class AliESDEvent;
+class THnSparse;
 
-#include "AliAnalysisTaskSE.h"
+#include "AliAnalysisTaskEmcalJet.h"
 
-class AliAnalysisTaskEmcalJetSpectra : public AliAnalysisTaskSE {
+class AliAnalysisTaskEmcalJetSpectra : public AliAnalysisTaskEmcalJet {
  public:
   AliAnalysisTaskEmcalJetSpectra();
   AliAnalysisTaskEmcalJetSpectra(const char *name);
   virtual ~AliAnalysisTaskEmcalJetSpectra() {}
   
+  
   virtual void           UserCreateOutputObjects();
-  virtual void           UserExec(Option_t *option);
-  virtual void           Terminate(Option_t *);
 
-  virtual void           SetAreaCut(Double_t a)                   { fAreacut    = a; }
-  virtual void           SetJetEta(Double_t emin, Double_t emax)  { fEtamin = emin; fEtamax = emax; }
-  virtual void           SetJetPhi(Double_t pmin, Double_t pmax)  { fPhimin = pmin; fPhimax = pmax; }
-  virtual void           SetJetsName(const char *n)               { fJetsName   = n; }
-  virtual void           SetRhos1Name(const char *n)              { fRhos1Name  = n; }
-  virtual void           SetRhos2Name(const char *n)              { fRhos2Name  = n; }
-  virtual void           SetRhos3Name(const char *n)              { fRhos3Name  = n; }
-  virtual void           SetTracksName(const char *n)             { fTracksName = n; }
-  
  protected:
+  Bool_t                 Run();
   virtual Int_t          GetCentBin(Double_t cent) const;
-   
+  Float_t                RelativePhi(Double_t mphi,Double_t vphi) const;
+
  private:
-  TString                fTracksName;              // name of track collection
-  TString                fJetsName;                // name of jet collection
-  TString                fClustersName;            // name of clusters collection
-  TString                fRhos1Name;               // name of Rho1 array output
-  TString                fRhos2Name;               // name of Rho2 array output
-  TString                fRhos3Name;               // name of Rho2 array output
-  Double_t               fPhimin;                  // phi min
-  Double_t               fPhimax;                  // phi max
-  Double_t               fEtamin;                  // eta min
-  Double_t               fEtamax;                  // eta max
-  Double_t               fAreacut;                 // area cut
+  TH2F                  *fHistRhovsCent; //!
+  TH2F                  *fHistNjetvsCent;          //!number of jets versus Centrality
+  TH2F                  *fHistJetPtvsTrackPt[6];//!
+  TH2F                  *fHistRawJetPtvsTrackPt[6];//!
+  TH1F                  *fHistTrackPt[6];//!
+  TH1F                  *fHistEP0[6];//!
+  TH1F                  *fHistEP0A[6];//!
+  TH1F                  *fHistEP0C[6];//!
+  TH2F                  *fHistEPAvsC[6];//!
+  TH2F                  *fHistJetPtvsdEP[6];//!
+  TH2F                  *fHistJetPtvsdEPBias[6];//!
+  TH2F                  *fHistJetPtvsEP[6];//!
+  TH2F                  *fHistJetPtvsEPBias[6];//!
+  TH2F                  *fHistRhovsEP[6]; //!
+
+
 
-  AliESDEvent           *fESD;                     //!esd event
-  TList                 *fOutputList;              //!output list
-  TH1F                  *fHistCentrality;          //!centrality
-  TH2F                  *fHistDeltaRho12vsCent;    //!delta rho1 and rho2 vs centrality
-  TH2F                  *fHistDeltaRho13vsCent;    //!delta rho1 and rho3 vs centrality
-  TH2F                  *fHistDeltaRho23vsCent;    //!delta rho2 and rho3 vs centrality
-  TH2F                  *fHistDeltaJetPt12vsCent;  //!delta jet pt1 and pt2 vs centrality 
-  TH2F                  *fHistDeltaJetPt13vsCent;  //!delta jet pt1 and pt3 vs centrality 
-  TH2F                  *fHistDeltaJetPt23vsCent;  //!delta jet pt2 and pt3 vs centrality 
-  TH2F                  *fHistRho1vsCent;          //!rho1 vs centrality
-  TH2F                  *fHistRho2vsCent;          //!rho2 vs centrality
-  TH2F                  *fHistRho3vsCent;          //!rho3 vs centrality
-  TH2F                  *fHistNEFvsPt[6][4];       //!neutral energy fraction vs pt
-  TH2F                  *fHistZvsPt[6][4];         //!z all vs pt
-  TH2F                  *fHistZchvsPt[6][4];       //!z charged vs pt
-  TH2F                  *fHistZemvsPt[6][4];       //!z neutral vs pt
-  TH1F                  *fHistJetPt[6][4];         //!jet pt
-  TH1F                  *fHistJetPt3[6][4];        //!jet pt>3
-  TH1F                  *fHistJetPt5[6][4];        //!jet pt>5
-  TH1F                  *fHistJetPt7[6][4];        //!jet pt>7
-  TH1F                  *fHistJetPt9[6][4];        //!jet pt>9
-  TH2F                  *fHistNconsvsPt[6][4];     //!constituents vs pt
-  TH1F                  *fHistRawJetPt[6];         //!raw jet pt
-  TH2F                  *fHistAreavsRawPt[6];      //!area vs raw pt
 
   AliAnalysisTaskEmcalJetSpectra(const AliAnalysisTaskEmcalJetSpectra&); // not implemented
   AliAnalysisTaskEmcalJetSpectra& operator=(const AliAnalysisTaskEmcalJetSpectra&); // not implemented
   
-  ClassDef(AliAnalysisTaskEmcalJetSpectra, 3); // Emcal jet spectra task
+  ClassDef(AliAnalysisTaskEmcalJetSpectra, 4); // Emcal jet spectra task
 };
 #endif