PiKaPr/TestAOD/AliSpectraBothHistoManager.cxx
PiKaPr/TestAOD/AliSpectraBothPID.cxx
PiKaPr/TestAOD/AliAnalysisTaskSpectraBoth.cxx
+ PiKaPr/TestAOD/AliMultiplictyLoaderTask.cxx
Nuclei/B2/AliLnID.cxx
Nuclei/B2/AliLnHistoMap.cxx
Nuclei/B2/AliLnAODtrackCuts.cxx
install(DIRECTORY PiKaPr/TestAOD DESTINATION PWGLF/SPECTRA/PiKaPr)
install(FILES PiKaPr/TPCTOF/AddTaskCombinedHadronSpectra.C DESTINATION PWGLF/SPECTRA/PiKaPr/TPCTOF)
install(FILES PiKaPr/TPCTOFpA/AddTaskTPCTOFpA.C DESTINATION PWGLF/SPECTRA/PiKaPr/TPCTOFpA)
-install(DIRECTORY XtAnalysis/macros DESTINATION PWGLF/SPECTRA/XtAnalysis)
\ No newline at end of file
+install(DIRECTORY XtAnalysis/macros DESTINATION PWGLF/SPECTRA/XtAnalysis)
#pragma link C++ class AliSpectraBothHistoManager+;
#pragma link C++ class AliSpectraBothPID+;
#pragma link C++ class AliSpectraBothTrackCuts+;
+#pragma link C++ class AliMultiplictyLoaderTask+;
#pragma link C++ class AliLnID+;
#pragma link C++ class AliLnHistoMap+;
--- /dev/null
+AliMultiplictyLoaderTask* AddAliMultiplictyLoaderTask(Bool_t useAliPPVsMultUtils=kTRUE, TString cent="V0M")
+{
+ AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
+ if (!mgr)
+ {
+ ::Error("AliMultiplictyLoaderTask", "No analysis manager to connect to.");
+ return NULL;
+ }
+
+ if (!mgr->GetInputEventHandler())
+ {
+ ::Error("AliMultiplictyLoaderTask", "This task requires an input event handler");
+ return NULL;
+ }
+ TString type = mgr->GetInputEventHandler()->GetDataType();
+ if(type.Contains("AOD"))
+ {
+ ::Error("AliMultiplictyLoaderTask", "This task requires to run on ESD");
+ return NULL;
+ }
+
+ AliMultiplictyLoaderTask *task = new AliMultiplictyLoaderTask("AliMultiplictyLoaderTask");
+ task->SetUseAliPPVsMultUtils(useAliPPVsMultUtils);
+ task->SetCentEstimator(cent);
+ TString outputFileName = AliAnalysisManager::GetCommonFileName();
+ AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
+ mgr->ConnectInput(task, 0, cinput);
+ mgr->AddTask(task);
+
+ return task;
+
+}
--- /dev/null
+#include "AliMultiplictyLoaderTask.h"
+#include "AliAnalysisManager.h"
+#include "AliESDEvent.h"
+#include "AliInputEventHandler.h"
+#include "TParameter.h"
+#include "AliESDtrackCuts.h"
+#include "TChain.h"
+#include "AliCentrality.h"
+#include "AliPPVsMultUtils.h"
+#include "AliESDtrackCuts.h"
+using namespace std;
+
+ClassImp(AliMultiplictyLoaderTask)
+
+AliMultiplictyLoaderTask::AliMultiplictyLoaderTask(const char *name ):
+AliAnalysisTaskSE(name),
+fESD(0),
+fAliPPVsMultUtils(0),
+fCentEstimator(""),
+fUseAliPPVsMultUtils(0),
+fcentvalue(0),
+fncharged05value(0),
+fncharged08value(0),
+fFirstEvent(kFALSE)
+{
+ DefineInput(0, TChain::Class());
+ //DefineOutput(1, TList::Class());
+}
+//___________________________________________________________________________
+AliMultiplictyLoaderTask:: ~AliMultiplictyLoaderTask()
+{
+ if(fAliPPVsMultUtils)
+ delete fAliPPVsMultUtils;
+}
+//____________________________________________________________________
+void AliMultiplictyLoaderTask::UserCreateOutputObjects()
+{
+
+ fAliPPVsMultUtils=new AliPPVsMultUtils();
+ TString par1name("cent");
+ TString par2name("Ncheta0dot5");
+ TString par3name("Ncheta0dot8");
+ par1name+=fCentEstimator;
+ fcentvalue=new TParameter<Double_t>(par1name.Data(),-10.0);
+ fncharged05value=new TParameter<Int_t>(par2name.Data(),-10);
+ fncharged08value=new TParameter<Int_t>(par3name.Data(),-10);
+
+
+}
+//_______________________________________________________________________
+void AliMultiplictyLoaderTask::UserExec(Option_t *)
+{
+ fESD = dynamic_cast<AliESDEvent*> (InputEvent());
+ if (!fESD)
+ {
+ Printf("ERROR: fESD not available");
+ return;
+ }
+ Double_t cent=-1.0;
+ if(fUseAliPPVsMultUtils)
+ cent=fAliPPVsMultUtils->GetMultiplicityPercentile(fESD,fCentEstimator.Data());
+ else
+ cent=fESD->GetCentrality()->GetCentralityPercentile(fCentEstimator.Data());
+
+ AliESDtrackCuts::MultEstTrackType estType = fESD->GetPrimaryVertexTracks()->GetStatus() ? AliESDtrackCuts::kTrackletsITSTPC : AliESDtrackCuts::kTracklets;
+ Int_t ncharged05=AliESDtrackCuts::GetReferenceMultiplicity(fESD,estType,0.5);
+ Int_t ncharged08=AliESDtrackCuts::GetReferenceMultiplicity(fESD,estType,0.8);
+ fcentvalue->SetVal(cent);
+ fncharged05value->SetVal(ncharged05);
+ fncharged08value->SetVal(ncharged08);
+ if(!fFirstEvent)
+ {
+ fESD->AddObject(fcentvalue);
+ fESD->AddObject(fncharged05value);
+ fESD->AddObject(fncharged08value);
+ fFirstEvent=kTRUE;
+ }
+
+}
--- /dev/null
+#ifndef AliMultiplictyLoaderTask_H
+#define AliMultiplictyLoaderTask_H
+class TH1F;
+class TH2F;
+class TH3D;
+class AliESDEvent;
+class AliESDtrackCuts;
+class AliPPVsMultUtils;
+template<class T> class TParameter;
+//class TParameter;
+#include "AliAnalysisTaskSE.h"
+
+
+
+class AliMultiplictyLoaderTask : public AliAnalysisTaskSE
+{
+ public:
+ AliMultiplictyLoaderTask(const char *name = "AliMultiplictyLoaderTask");
+ virtual ~AliMultiplictyLoaderTask();
+
+ //virtual void ConnectInputData(Option_t *);
+ virtual void UserCreateOutputObjects();
+ virtual void UserExec(Option_t *option);
+ virtual void Terminate(Option_t *){};
+ //virtual void LocalInit();
+ void SetCentEstimator(TString cent = "V0M") {fCentEstimator = cent; };
+ void SetUseAliPPVsMultUtils(Bool_t flag) {fUseAliPPVsMultUtils=flag;};
+
+ private:
+ AliESDEvent *fESD; //! ESD object
+ AliPPVsMultUtils* fAliPPVsMultUtils; // tool to get V0M multiplicty/centrailty
+ TString fCentEstimator; // type of the centrailty estimator
+ Bool_t fUseAliPPVsMultUtils; // if true uses the centrality from AliPPVsMultUtils
+ TParameter<Double_t>* fcentvalue; // value of centrailty
+ TParameter<Int_t>* fncharged05value; // value of Nch for |eta|<0.5
+ TParameter<Int_t>* fncharged08value; // value of Nch for |eta|<0.8
+ Bool_t fFirstEvent; // first Event Flag
+ AliMultiplictyLoaderTask(const AliMultiplictyLoaderTask&){}; // private copy const
+ AliMultiplictyLoaderTask& operator=(const AliMultiplictyLoaderTask&){}; // private = operator
+
+
+ ClassDef(AliMultiplictyLoaderTask, 1);
+};
+
+#endif
#include "AliGenPythiaEventHeader.h"
//#include "AliSpectraBothHistoManager.h"
#include <iostream>
+#include "TParameter.h"
using namespace std;
// Check centrality cut
if ( fCentralityCutMax<0.0 && fCentralityCutMin<0.0 )
return kTRUE;
- Double_t cent=0;
- if(fUseAliPPVsMultUtils)
+ Double_t cent=0;
+ Bool_t validcent=kFALSE;
+ if(fAODEvent==AliSpectraBothTrackCuts::kESDobject)
{
- if(!fAliPPVsMultUtils)
- fAliPPVsMultUtils=new AliPPVsMultUtils();
- cent=fAliPPVsMultUtils->GetMultiplicityPercentile(fAOD,fCentEstimator.Data());
- }
- else
- {
- if(!fUseCentPatchAOD049)
- cent=fAOD->GetCentrality()->GetCentralityPercentile(fCentEstimator.Data());
- else
- cent=ApplyCentralityPatchAOD049();
+
+ TString par1name("cent");
+ par1name+=fCentEstimator;
+ cout<<par1name.Data()<<endl;
+ TParameter<Double_t>* par= dynamic_cast<TParameter<Double_t>*>(fAOD->FindListObject(par1name.Data()));
+ if(par)
+ {
+ validcent=kTRUE;
+ cent=par->GetVal();
+ }
+
+ }
+ if(!validcent)
+ {
+ if(fUseAliPPVsMultUtils)
+ {
+ if(!fAliPPVsMultUtils)
+ fAliPPVsMultUtils=new AliPPVsMultUtils();
+ cent=fAliPPVsMultUtils->GetMultiplicityPercentile(fAOD,fCentEstimator.Data());
+ }
+ else
+ {
+ if(!fUseCentPatchAOD049)
+ cent=fAOD->GetCentrality()->GetCentralityPercentile(fCentEstimator.Data());
+ else
+ cent=ApplyCentralityPatchAOD049();
+ }
}
fHistoCentrality->Fill(0.5,cent);
if ( (cent < fCentralityCutMax) && (cent >= fCentralityCutMin) )
return kTRUE;
Int_t Ncharged=-1;
if(fAODEvent==AliSpectraBothTrackCuts::kESDobject)
- {
- AliESDEvent* esdevent=dynamic_cast<AliESDEvent*>(fAOD);
- AliESDtrackCuts::MultEstTrackType estType = esdevent->GetPrimaryVertexTracks()->GetStatus() ? AliESDtrackCuts::kTrackletsITSTPC : AliESDtrackCuts::kTracklets;
- Ncharged=AliESDtrackCuts::GetReferenceMultiplicity(esdevent,estType,fetarangeofmultiplicitycut);
+ {
+
+ TParameter<Int_t>* par=0;
+ if(TMath::Abs(0.8-fetarangeofmultiplicitycut)<0.1)
+ par= dynamic_cast<TParameter<Int_t>*>(fAOD->FindListObject("Ncheta0dot8"));
+ else
+ par= dynamic_cast<TParameter<Int_t>*>(fAOD->FindListObject("Ncheta0dot5"));
+ if(par)
+ {
+ Ncharged=par->GetVal();
+ }
+ else
+ {
+ AliESDEvent* esdevent=dynamic_cast<AliESDEvent*>(fAOD);
+ AliESDtrackCuts::MultEstTrackType estType = esdevent->GetPrimaryVertexTracks()->GetStatus() ? AliESDtrackCuts::kTrackletsITSTPC : AliESDtrackCuts::kTracklets;
+ Ncharged=AliESDtrackCuts::GetReferenceMultiplicity(esdevent,estType,fetarangeofmultiplicitycut);
+ }
}
else if(fAODEvent==AliSpectraBothTrackCuts::kAODobject)
{
+++ /dev/null
-#ifdef __CINT__
-
-#pragma link C++ class AlidNdPtAcceptanceCuts+;
-#pragma link C++ class AlidNdPtAnalysis+;
-#pragma link C++ class AlidNdPtAnalysisPbPb+;
-#pragma link C++ class AlidNdPtAnalysisPbPb2011+;
-#pragma link C++ class AlidNdPtAnalysisPbPbAOD+;
-#pragma link C++ class AlidNdPtAnalysispPb+;
-#pragma link C++ class AlidNdPtBackgroundCuts+;
-#pragma link C++ class AlidNdPtCorrection+;
-#pragma link C++ class AlidNdPtCutAnalysis+;
-#pragma link C++ class AlidNdPtCutAnalysisPbPb+;
-#pragma link C++ class AlidNdPt+;
-#pragma link C++ class AlidNdPtEfficiency+;
-#pragma link C++ class AlidNdPtEventCuts+;
-#pragma link C++ class AlidNdPtHelper+;
-#pragma link C++ class AlidNdPtTask+;
-#pragma link C++ class AlidNdPtTrackDumpTask+;
-#pragma link C++ class AliPtResolAnalysis+;
-#pragma link C++ class AliPtResolAnalysisPbPb+;
-#pragma link C++ class AliAnalysisTaskSEITSsaSpectra+;
-#pragma link C++ class AliAnalysisCombinedHadronSpectra+;
-#pragma link C++ class AliAnalysisTPCTOFpA+;
-#pragma link C++ class TOFSpectrappAnalysis+;
-#pragma link C++ class AliAnalysisCombinedHadronSpectra2MC+;
-#pragma link C++ class AliAnalysisTaskParticleEfficiency+;
-
-#pragma link C++ class AliAnalysisTaskSpectraAOD+;
-#pragma link C++ class AliAnalysisTaskSpectraAllChAOD+;
-#pragma link C++ class AliAnalysisTaskV2AllChAOD+;
-#pragma link C++ class AliSpectraAODEventCuts+;
-#pragma link C++ class AliSpectraAODHistoManager+;
-#pragma link C++ class AliSpectraAODPID+;
-#pragma link C++ class AliSpectraAODTrackCuts+;
-#pragma link C++ class AliAnalysisKinkESDat+;
-#pragma link C++ class AliAnalysisKinkESDMC+;
-
-#pragma link C++ class AliAnalysisTaskSpectraBoth+;
-#pragma link C++ class AliSpectraBothEventCuts+;
-#pragma link C++ class AliSpectraBothHistoManager+;
-#pragma link C++ class AliSpectraBothPID+;
-#pragma link C++ class AliSpectraBothTrackCuts+;
-
-#pragma link C++ class AliLnID+;
-#pragma link C++ class AliLnHistoMap+;
-#pragma link C++ class AliLnAODtrackCuts+;
-#pragma link C++ class AliAnalysisTaskB2+;
-#pragma link C++ class AliAnalysisTaskB2AOD+;
-#pragma link C++ class AliAnalysisNucleiMass+;
-#pragma link C++ class AliAnalysisNucleiInfo+;
-
-#pragma link C++ class AliAnalysisDeuteronpA+;
-
-#pragma link C++ class AliXtAnalysis+;
-#pragma link C++ class AliJBaseTrack+;
-#pragma link C++ class AliJBaseCard+;
-#pragma link C++ class AliJCard+;
-#pragma link C++ class AliJXtHistos+;
-#pragma link C++ class AliAnalysisTaskHighPtDeDx+;
-
-#pragma link C++ class DeDxTrack+;
-#pragma link C++ class VZEROCell+;
-#pragma link C++ class DeDxV0+;
-#pragma link C++ class DeDxTrackMC+;
-#pragma link C++ class DeDxEvent+;
-
-#endif