* provided "as is" without express or implied warranty. *
**************************************************************************/
-// ***************************************************
-// * particle level cuts for azimuthal isotropic *
-// * expansion in highly central collisions analysis *
-// * author: Cristian Andrei *
-// * acristian@niham.nipne.ro *
-// ***************************************************
+// -----------------------------------------------
+// particle level cuts for azimuthal isotropic
+// expansion in highly central collisions analysis
+// author: Cristian Andrei
+// acristian@niham.nipne.ro
+// ------------------------------------------------
-#include <TFile.h>
#include <TF1.h>
+#include <TFile.h>
+#include "AliAnalysisCentralCutESD.h"
#include "AliESDtrack.h"
-#include "AliAnalysisCentralCutESD.h"
+
+class TObject;
+class TParticle;
+
//____________________________________________________________________
ClassImp(AliAnalysisCentralCutESD)
fProtonFunction = (TF1 *)f->Get("fitProtons");
}
+ printf("AliAnalysisCentralCutESD::Constructor\n");
}
AliAnalysisCentralCutESD::~AliAnalysisCentralCutESD() {
if(fPionFunction) delete fPionFunction;
if(fKaonFunction) delete fKaonFunction;
if(fProtonFunction) delete fProtonFunction;
+
+ printf("AliAnalysisCentralCutESD::Destructor\n");
}
#ifndef ALIANALYSISCENTRALCUTESD_H
#define ALIANALYSISCENTRALCUTESD_H
+
+
/*
* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved.
* See cxx source for full Copyright notice
* $Id$
*/
-// ***************************************************
-// * ESD particle level cuts for azimuthal isotropic *
-// * expansion in highly central collisions analysis *
-// * author: Cristian Andrei *
-// * acristian@niham.nipne.ro *
-// ***************************************************
+// ---------------------------------------------------
+// ESD particle level cuts for azimuthal isotropic
+// expansion in highly central collisions analysis
+// author: Cristian Andrei
+// acristian@niham.nipne.ro
+// ---------------------------------------------------
+
+#include <TString.h>
#include <TPDGCode.h>
#include "AliAnalysisCuts.h"
+
class TObject;
class TList;
class TF1;
-class TString;
class AliESDtrack;
* provided "as is" without express or implied warranty. *
**************************************************************************/
-// ***************************************************
-// * ESD event level cuts for azimuthal isotropic *
-// * expansion in highly central collisions analysis *
-// * author: Cristian Andrei *
-// * acristian@niham.nipne.ro *
-// ***************************************************
+// ---------------------------------------------------
+// ESD event level cuts for azimuthal isotropic
+// expansion in highly central collisions analysis
+// author: Cristian Andrei
+// acristian@niham.nipne.ro
+// --------------------------------------------------
#include "TMath.h"
#include <TObjArray.h>
+#include <TList.h>
#include "AliESDEvent.h"
#include "AliESDtrack.h"
#include "AliESDtrackCuts.h"
-#include "AliMultiplicity.h"
-#include "AliAnalysisCentralCutESD.h"
+ #include "AliMultiplicity.h"
+#include "AliAnalysisCentralCutESD.h"
#include "AliAnalysisCentralCutEvtESD.h"
+class TObject;
+
+
//____________________________________________________________________
ClassImp(AliAnalysisCentralCutEvtESD)
fCutsList[i] = 0;
}
+ InitCuts();
+ if (!fCutsList) {
+ Printf("ERROR: fCutsList not available");
+ return;
+ }
+
+ printf("AliAnalysisCentralCutEvtESD::Constructor\n");
}
AliAnalysisCentralCutEvtESD::~AliAnalysisCentralCutEvtESD() {
delete [] fCutsList;
}
+ printf("AliAnalysisCentralCutEvtESD::Destructor\n");
}
Bool_t AliAnalysisCentralCutEvtESD::IsSelected(TObject *obj){
// check whether the event passes the cuts
AliESDEvent *esdEvent = dynamic_cast<AliESDEvent *>(obj);
-
if(!esdEvent){
printf("AliAnalysisCentralCutEvtESD:IsSelected ->Can't get ESD event!\n");
return kFALSE;
}
- if(fReqMult){
+ if(fReqMult){
Int_t mult = CalcMult(esdEvent);
if((mult<fMultMin)||(mult>fMultMax)){
return kFALSE;
//Compute the directivity - FULL ALICE
- InitCuts();
+// InitCuts();
Double_t dir;
Double_t px,py;
//Compute multiplicity - FULL ALICE
- InitCuts();
+// InitCuts();
Int_t charged = 0;
//Compute directivity - SPD ONLY
- InitCuts();
+// InitCuts();
Double_t dirU;
Double_t pxU,pyU;
//Compute multiplicity - SPD ONLY
- InitCuts();
+// InitCuts();
const AliMultiplicity *spdMult=esdEv->GetMultiplicity();
if(!spdMult){
#ifndef ALIANALYSISCENTRALCUTEVTESD_H
#define ALIANALYSISCENTRALCUTEVTESD_H
+
/*
* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved.
* See cxx source for full Copyright notice
* $Id$
*/
-// *****************************************************
-// * ESD event level cuts for azimuthal isotropic *
-// * expansion in highly central collisions analysis *
-// * author: Cristian Andrei *
-// * acristian@niham.nipne.ro *
-// *****************************************************
+// ---------------------------------------------------
+// ESD event level cuts for azimuthal isotropic
+// expansion in highly central collisions analysis
+// author: Cristian Andrei
+// acristian@niham.nipne.ro
+// --------------------------------------------------
+
#include "AliAnalysisCuts.h"
+
class TObject;
class TObjArray;
class TList;
class AliESDEvent;
+
class AliAnalysisCentralCutEvtESD: public AliAnalysisCuts {
public:
AliAnalysisCentralCutEvtESD(const char *name="AliAnalysisCentralCutEvtESD", const char *title="ESD_Event_cuts");
* provided "as is" without express or implied warranty. *
**************************************************************************/
-// ***************************************************
-// * MC event level cuts for azimuthal isotropic *
-// * expansion in highly central collisions analysis *
-// * author: Cristian ANDREI *
-// * acristian@niham.nipne.ro *
-// ***************************************************
+// ---------------------------------------------------
+// MC event level cuts for azimuthal isotropic
+// expansion in highly central collisions analysis
+// author: Cristian ANDREI
+// acristian@niham.nipne.ro
+// ----------------------------------------------------
+
#include <TParticle.h>
#include "AliStack.h"
#include "AliAnalysisCentralCutEvtMC.h"
+
+
+class TObject;
+
//____________________________________________________________________
ClassImp(AliAnalysisCentralCutEvtMC)
{
//constructor
-
+ printf("AliAnalysisCentralCutEvtMC::Constructor\n");
}
AliAnalysisCentralCutEvtMC::~AliAnalysisCentralCutEvtMC(){
//destructor
-
+printf("AliAnalysisCentralCutEvtMC::Destructor\n");
}
//___________________________________________________________________________
#ifndef ALIANALYSISCENTRALCUTEVTMC_H
#define ALIANALYSISCENTRALCUTEVTMC_H
+
+
/*
* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved.
* See cxx source for full Copyright notice
* $Id$
*/
-// ***************************************************
-// * MC event level cuts for azimuthal isotropic *
-// * expansion in highly central collisions analysis *
-// * author: Cristian Andrei *
-// * acristian@niham.nipne.ro *
-// ***************************************************
+// ---------------------------------------------------
+// MC event level cuts for azimuthal isotropic
+// expansion in highly central collisions analysis
+// author: Cristian Andrei
+// acristian@niham.nipne.ro
+// ----------------------------------------------------
+
+
#include "AliAnalysisCuts.h"
+
class TObject;
class AliMCEvent;
class AliStack;
+
class AliAnalysisCentralCutEvtMC: public AliAnalysisCuts {
public:
AliAnalysisCentralCutEvtMC(const char *name="AliAnalysisCentralCutEvtMC", const char *title="MC_cuts");
* provided "as is" without express or implied warranty. *
**************************************************************************/
-// ***************************************************
-// * MC particle level cuts for azimuthal isotropic *
-// * expansion in highly central collisions analysis *
-// * author: Cristian Andrei *
-// * acristian@niham.nipne.ro *
-// * *************************************************
+// ----------------------------------------------------
+// MC particle level cuts for azimuthal isotropic
+// expansion in highly central collisions analysis
+// author: Cristian Andrei
+// acristian@niham.nipne.ro
+// ----------------------------------------------------
#include <TParticle.h>
#include "AliMCParticle.h"
#include "AliAnalysisCentralCutMC.h"
+
+class TObject;
+
//____________________________________________________________________
ClassImp(AliAnalysisCentralCutMC)
SetPDGCode();
SetPtRange();
SetEtaRange();
+
+ printf("AliAnalysisCentralCutMC::Constructor\n");
}
//____________________________________________________________________
if(fMCEvt) delete fMCEvt;
+ printf("AliAnalysisCentralCutMC::Destructor\n");
}
//___________________________________________________________________________
#ifndef ALIANALYSISCENTRALCUTMC_H
#define ALIANALYSISCENTRALCUTMC_H
+
/*
* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved.
* See cxx source for full Copyright notice
* $Id$
*/
-// ***************************************************
-// * MC particle level cuts for azimuthal isotropic *
-// * expansion in highly central collisions analysis *
-// * author: Cristian Andrei *
-// * acristian@niham.nipne.ro *
-// * *************************************************
+// ---------------------------------------------------
+// MC particle level cuts for azimuthal isotropic
+// expansion in highly central collisions analysis
+// author: Cristian Andrei
+// acristian@niham.nipne.ro
+// --------------------------------------------------
+
#include "AliAnalysisCuts.h"
+
class TObject;
class TList;
class AliMCEvent;
class AliMCParticle;
+
class AliAnalysisCentralCutMC: public AliAnalysisCuts{
public:
AliAnalysisCentralCutMC(const char *name="AliAnalysisCentralCutMC", const char *title="MC_cuts");
* provided "as is" without express or implied warranty. *
**************************************************************************/
-// *********************************************************
-// * pt spectra extrapolation in the 0. - 0.2 region using *
-// * Boltzmann-Gibbs Blast Wave model or Tsallis Blast *
-// * Wave model for azimuthal isotropic expansion in *
-// * highly central collisions analysis *
-// * author: Cristian Andrei *
-// * acristian@niham.nipne.ro *
-// * *******************************************************
+// -------------------------------------------------------
+// pt spectra extrapolation in the 0. - 0.2 region using
+// Boltzmann-Gibbs Blast Wave model or Tsallis Blast
+// Wave model for azimuthal isotropic expansion in
+// highly central collisions analysis
+// author: Cristian Andrei
+// acristian@niham.nipne.ro
+// ----------------------------------------------------------
+
#include "TH1D.h"
#include "TFile.h"
#include "TList.h"
-// #include "TCanvas.h"
-// #include "TLegend.h"
+#include "TCanvas.h"
+#include "TLegend.h"
// #include "TString.h"
// #include "TPaveStats.h"
#include "TMath.h"
AliAnalysisCentralExtrapolate::AliAnalysisCentralExtrapolate(const char *name)
: TObject()
,fPartType()
- ,fInputList(0x0)
+ ,fInputList(0)
,fResultsList(0x0)
{
// Constructor
// printf("AliAnalysisCentralExtrapolate::AliAnalysisCentralExtrapolate(const char *name)\n");
-
+ fInputList = new TList();
fResultsList = new TList();
}
Int_t stepRec = 1;
AliCFContainer *data = 0;
-
+
+
TFile *file1 = new TFile("$ALICE_ROOT/PWG2/data/AliAnalysisCentralEfficiency.root", "read");
AliCFEffGrid *eff = 0;
-// TCanvas *ccorrdata;
-
- if(fPartType.Contains("kPi")){
- data = dynamic_cast<AliCFContainer*>(fInputList->FindObject("AliAnalysisCentral_CFCont_Pi"));
+ if(fPartType.Contains("kPi")){
+ data = dynamic_cast<AliCFContainer*>(fInputList->FindObject("TaskCentral_CFCont_Pi"));
eff = dynamic_cast<AliCFEffGrid*>(file1->Get("eff_Pi"));
mass= 0.13957;//(GeV - pions)
// ccorrdata =new TCanvas("Pions ccorrdata","Pions - corrected data",0,0,600,800);
printf("\tRunning for pions!\n");
}
else if(fPartType.Contains("kK")){
- data = dynamic_cast<AliCFContainer*>(fInputList->FindObject("AliAnalysisCentral_CFCont_K"));
+ data = dynamic_cast<AliCFContainer*>(fInputList->FindObject("TaskCentral_CFCont_K"));
eff = dynamic_cast<AliCFEffGrid*>(file1->Get("eff_K"));
mass= 0.49368;//(GeV - kaons)
// ccorrdata =new TCanvas("Kaons ccorrdata","Kaons - corrected data",0,0,600,800);
printf("\tRunning for kaons!\n");
}
else if(fPartType.Contains("kProton")){
- data = dynamic_cast<AliCFContainer*>(fInputList->FindObject("AliAnalysisCentral_CFCont_P"));
+ data = dynamic_cast<AliCFContainer*>(fInputList->FindObject("TaskCentral_CFCont_P"));
eff = dynamic_cast<AliCFEffGrid*>(file1->Get("eff_P"));
mass = 0.93827;//(GeV - protons)
// ccorrdata =new TCanvas("Protons ccorrdata","Protons - corrected data",0,0,600,800);
printf("No Eff Grid found! \n");
return;
}
-
+
+// TCanvas *ccorrdata = new TCanvas();
// ccorrdata->Divide(1,2);
// ccorrdata->cd(1);
-// ccorrdata->cd(1)->SetLogy();
+// ccorrdata->cd(1)->SetLogy();
AliCFDataGrid *corrdata = new AliCFDataGrid("corrdata","corrected data",*data);
corrdata->SetMeasured(stepRec); //set data to be corrected
corrdata->ApplyEffCorrection(*eff);//apply the correction for efficiency
- TH1D *hPtMC = data->ShowProjection(0,0); //MC distribution ShowProjection(ivar, istep)
- hPtMC->SetMarkerStyle(20);
- hPtMC->SetMarkerColor(kGreen-3);
- hPtMC->GetXaxis()->SetTitle("p_{T}(GeV/c)");
- hPtMC->GetYaxis()->SetTitle("#frac{dN}{p_{T}dp_{T}}");
+// TH1D *hPtMC = data->ShowProjection(0,0); //MC distribution ShowProjection(ivar, istep)
+// hPtMC->SetMarkerStyle(20);
+// hPtMC->SetMarkerColor(kGreen-3);
+// hPtMC->GetXaxis()->SetTitle("p_{T}(GeV/c)");
+// hPtMC->GetYaxis()->SetTitle("#frac{dN}{p_{T}dp_{T}}");
// hPtMC->Draw("p e1");
-
- TH1D *hPtESDI = corrdata->GetData()->Project(0); //uncorrected ESD Project(ivar)
- hPtESDI->SetMarkerStyle(25);
- hPtESDI->SetMarkerColor(kBlue);
- hPtESDI->GetXaxis()->SetTitle("Pt");
+//
+// TH1D *hPtESDI = corrdata->GetData()->Project(0); //uncorrected ESD Project(ivar)
+// hPtESDI->SetMarkerStyle(25);
+// hPtESDI->SetMarkerColor(kBlue);
+// hPtESDI->GetXaxis()->SetTitle("Pt");
// hPtESDI->Draw("p e1 same");
TH1D *hPtESDCorr = corrdata->Project(0); //corrected data
// ccorrdata->cd(2);
// ccorrdata->cd(2)->SetLogy();
-
- TH1D *efficiency = eff->Project(0); //the efficiency vs pt (ipt = 0)
- efficiency->GetXaxis()->SetTitle("p_{T}(GeV/c)");
+//
+// TH1D *efficiency = eff->Project(0); //the efficiency vs pt (ipt = 0)
+// efficiency->GetXaxis()->SetTitle("p_{T}(GeV/c)");
// efficiency->Draw();
-//scalez hist corectata la nr de ev
-
- TH1F *hNoEvt = dynamic_cast<TH1F*>(fInputList->FindObject("AliAnalysisCentral_NoEvt"));
+ TH1F *hNoEvt = dynamic_cast<TH1F*>(fInputList->FindObject("TaskCentral_NoEvt"));
if(!hNoEvt){
printf("Unable to get the number of events! \n");
return;
}
+
Int_t noEvt = (Int_t)(hNoEvt->GetEntries());
printf("\n** No of processed events = %i **\n",noEvt);
TH1D *ptSpectra = dynamic_cast<TH1D*>(fResultsList->FindObject("hPtESDCorrNorm"));
if(!ptSpectra){
- printf("BoltzmannFit: Can't get the normalized spectrum\n");
+ printf("TsallisFit: Can't get the normalized spectrum\n");
return;
}
if(!ptSpectra->GetEntries()){
- printf("BoltzmannFit: The fit data is empty!\n");
+ printf("TsallisFit: The fit data is empty!\n");
return;
}
gStyle->SetOptFit(1112);
- ptFit->SetParName(0,"T");
- ptFit->SetParName(1,"betaS");
- ptFit->SetParName(2,"q");
+// ptFit->SetParName(0,"T");
+// ptFit->SetParName(1,"betaS");
+// ptFit->SetParName(2,"q");
ptFit->SetParameters(0.1,0.5,1.05); //GeV
ptFit->SetParLimits(0,0.0,0.5);//GeV
Double_t betaR = betaS*(r/rMax);
+
Double_t rho = TMath::ATanH(betaR);
+
Double_t mt = sqrt(mass*mass + pt*pt);// !!! par[0]= pt !!!!!
-
+
Double_t argI0 = (pt*TMath::SinH(rho))/T; //T = par[1]
+ if(argI0>700.0) return 0.0; // !! floating point exception protection
Double_t argK1 = (mt*TMath::CosH(rho))/T;
+
Double_t i0 = TMath::BesselI0(argI0);
+
Double_t k1 = TMath::BesselK1(argK1);
- Double_t f = r*mt*i0*k1;
+ Double_t f = r*mt*i0*k1;
+
return f;
}
return;
}
+ printf("pt spectra get entries: %f\n",ptSpectra->GetEntries());
+
if(!ptSpectra->GetEntries()){
printf("BoltzmannFit: The fit data is empty!\n");
return;
gStyle->SetOptFit(1112);
- ptFit->SetParName(0,"T");
- ptFit->SetParName(1,"betaS");
+// ptFit->SetParName(0,"T");
+// ptFit->SetParName(1,"betaS");
ptFit->SetParameters(0.1,0.5); //GeV
- ptFit->SetParLimits(0,0.0,0.5);//GeV
+ ptFit->SetParLimits(0,0.001,0.5);//GeV
ptFit->SetParLimits(1,0.0,1.0);
-
+
ptSpectra->Fit("ptFit","Q R B ME I N");
- timer.Stop();
+ timer.Stop();
timer.Print();
// ----------- print the fit results ----------
#ifndef ALIANALYSISCENTRALEXTRAPOLATE_H
#define ALIANALYSISCENTRALEXTRAPOLATE_H
+
+
/*
* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved.
* See cxx source for full Copyright notice
* $Id$
*/
-// *********************************************************
-// * pt spectra extrapolation in the 0. - 0.2 region using *
-// * Boltzmann-Gibbs Blast Wave model or Tsallis Blast *
-// * Wave model for azimuthal isotropic expansion in *
-// * highly central collisions analysis *
-// * author: Cristian Andrei *
-// * acristian@niham.nipne.ro *
-// * *******************************************************
+// -------------------------------------------------------
+// pt spectra extrapolation in the 0. - 0.2 region using
+// Boltzmann-Gibbs Blast Wave model or Tsallis Blast
+// Wave model for azimuthal isotropic expansion in
+// highly central collisions analysis
+// author: Cristian Andrei
+// acristian@niham.nipne.ro
+// ----------------------------------------------------------
#include "TObject.h"
virtual ~AliAnalysisCentralExtrapolate();
void SetInputList(TList* const list) {fInputList = list;} //get the input from the task
-
+
void SetParticle(TString part) {fPartType = part;} //set the particle type to be processed
//suported: kPi*, kK* and kProton
TString fPartType; //can be kPi*, kK* or kProton
TList *fInputList; //the input list = the output of the analysis Task
-
+
TList *fResultsList; //List containing the results: corrected, normalized and extrapolated spectra
ClassDef(AliAnalysisCentralExtrapolate, 1);
* provided "as is" without express or implied warranty. *
**************************************************************************/
-// ******************************************
-// * analysis task for azimuthal isotropic *
-// * expansion in highly central collisions *
-// * author: Cristian Andrei *
-// * acristian@niham.nipne.ro *
-// ******************************************
+// ------------------------------------------
+// analysis task for azimuthal isotropic
+// expansion in highly central collisions
+// author: Cristian Andrei
+// acristian@niham.nipne.ro
+// ------------------------------------------
#include "TChain.h"
#include "TTree.h"
#include "TList.h"
#include "TObjArray.h"
#include "TString.h"
-// #include "TCanvas.h"
+#include "TFile.h"
#include "AliAnalysisManager.h"
#include "AliMCEvent.h"
#include "AliESDInputHandler.h"
#include "AliESDtrackCuts.h"
#include "AliCFContainer.h"
+#include "AliAnalysisDataContainer.h"
+#include "AliAnalysisDataSlot.h"
#include "AliAnalysisCentralCutMC.h"
#include "AliAnalysisCentralCutESD.h"
fCutsList[i] = 0;
}
+ InitCuts(); //initialize the analysis specific cuts
+ if (!fCutsList) {
+ Printf("ERROR: fCutsList not available");
+ return;
+ }
+
+ printf("AliAnalysisTaskCentral::Constructor\n");
}
if(fOutList) delete fOutList;
+ printf("AliAnalysisTaskCentral::Destructor\n");
}
//________________________________________________________________________
void AliAnalysisTaskCentral::CreateOutputObjects(){
//Creates the output list
- fNoEvt = new TH1F(Form("%s_NoEvt",GetName()), "Number of processed events", 1, 0.0, 1.0);
+// fNoEvt = new TH1F(Form("%s_NoEvt",GetName()), "Number of processed events", 1, 0.0, 1.0);
+ fNoEvt = new TH1F("TaskCentral_NoEvt", "Number of processed events", 1, 0.0, 1.0);
//set here the:
//min and max variable values (to do: move these to a separate cuts class)
const Double_t ptmin = 0.0 ; //bins in pt
for(Int_t i=0; i<=nbineta; i++) binLim2[i]=(Double_t)etamin + (etamax-etamin) /nbineta*(Double_t)i ;
//container creation
- fCFContainerPi = new AliCFContainer(Form("%s_CFCont_Pi",GetName()),"container for tracks",nstep,nvar,iBin);
- fCFContainerK = new AliCFContainer(Form("%s_CFCont_K",GetName()),"container for tracks",nstep,nvar,iBin);
- fCFContainerP = new AliCFContainer(Form("%s_CFCont_P",GetName()),"container for tracks",nstep,nvar,iBin);
+ fCFContainerPi = new AliCFContainer("TaskCentral_CFCont_Pi","container for tracks",nstep,nvar,iBin);
+ fCFContainerK = new AliCFContainer("TaskCentral_CFCont_K","container for tracks",nstep,nvar,iBin);
+ fCFContainerP = new AliCFContainer("TaskCentral_CFCont_P","container for tracks",nstep,nvar,iBin);
//setting the bin limits
fCFContainerPi -> SetBinLimits(ipt,binLim1);
Bool_t AliAnalysisTaskCentral::CheckCuts(Int_t no, TObject *obj) const{
// For each cut run IsSelected();
+// printf("AliAnalysisTaskCentral::CheckCuts IN\n");
if(no > 10){
printf("\nAliAnalysisTaskCentral::CheckCuts -> Cut number is not ok! \n");
AliAnalysisCuts *cut = 0;
while((cut = (AliAnalysisCuts*)iter.Next())){
- if(!cut->IsSelected(obj)) return kFALSE;
+ if(!cut->IsSelected(obj)){
+// printf("AliAnalysisTaskCentral::CheckCuts OUT\n");
+ return kFALSE;
+ }
}
+// printf("AliAnalysisTaskCentral::CheckCuts OUT\n");
return kTRUE;
}
// Main loop
// Called for each event
- InitCuts(); //initialize the analysis specific cuts
- if (!fCutsList) {
- Printf("ERROR: fCutsList not available");
- return;
- }
-
Double_t pt, eta;
Double_t w = 1.0;
const Int_t nvar=2; //number of variables on the grid:pt,vtx
extK->SetParticle("kKPlus");
extK->ApplyEff();
extK->BoltzmannFit();
- extK->TsallisFit();
+ extK->TsallisFit();
TList *extOutListK = extK->GetOutputList();
AliAnalysisCentralExtrapolate *extP = new AliAnalysisCentralExtrapolate("extrapolationP");
extP->SetParticle("kProton");
extP->ApplyEff();
extP->BoltzmannFit();
- extP->TsallisFit();
+ extP->TsallisFit();
TList *extOutListP = extP->GetOutputList();
- fOutList->Add(extOutListPi);
- fOutList->Add(extOutListK);
- fOutList->Add(extOutListP);
+
+ AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
+ if(!mgr){
+ printf("Unable to get AnalysisManager! \n");
+ return;
+ }
+
+ TString anaType;
+ mgr->GetAnalysisTypeString(anaType);
+
+ if(anaType.Contains("local")){
+ fOutList->Add(extOutListPi);
+ fOutList->Add(extOutListK);
+ fOutList->Add(extOutListP);
+ }
+ else{
+ AliAnalysisDataContainer *cont = GetOutputSlot(0)->GetContainer();
+ if(!cont){
+ printf("Unable to get DataContainer! \n");
+ return;
+ }
+
+ printf("file name = %s\n", cont->GetFileName());
+ TFile file(cont->GetFileName(),"update");
+
+ file.cd("PWG2Central");
+
+ gFile->WriteObject(extOutListPi,"pion_list","SingleKey");
+ gFile->WriteObject(extOutListK,"kaon_list","SingleKey");
+ gFile->WriteObject(extOutListP,"proton_list","SingleKey");
+ file.Close();
+ }
+
}
-#ifndef ALI_ANALYSIS_TASK_CENTRAL_H
-#define ALI_ANALYSIS_TASK_CENTRAL_H
+#ifndef ALIANALYSISTASKCENTRAL_H
+#define ALIANALYSISTASKCENTRAL_H
+
/*
* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved.
* See cxx source for full Copyright notice
* $Id$
*/
-// ******************************************
-// * analysis task for azimuthal isotropic *
-// * expansion in highly central collisions *
-// * author: Cristian Andrei *
-// * acristian@niham.nipne.ro *
-// ******************************************
+//-----------------------------------------
+// analysis task for azimuthal isotropic
+// expansion in highly central collisions
+// author: Cristian Andrei
+// acristian@niham.nipne.ro
+//-----------------------------------------
#include "AliAnalysisTask.h"