]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Adding the multiplcity lodaer class to TestAOD directory and removing second copy...
authormchojnac <Marek.Chojnacki@cern.ch>
Fri, 19 Dec 2014 17:16:51 +0000 (18:16 +0100)
committermchojnac <Marek.Chojnacki@cern.ch>
Fri, 19 Dec 2014 17:21:15 +0000 (18:21 +0100)
PWGLF/SPECTRA/CMakeLists.txt
PWGLF/SPECTRA/PWGLFspectraLinkDef.h
PWGLF/SPECTRA/PiKaPr/TestAOD/AddAliMultiplictyLoaderTask.C [new file with mode: 0644]
PWGLF/SPECTRA/PiKaPr/TestAOD/AliMultiplictyLoaderTask.cxx [new file with mode: 0644]
PWGLF/SPECTRA/PiKaPr/TestAOD/AliMultiplictyLoaderTask.h [new file with mode: 0644]
PWGLF/SPECTRA/PiKaPr/TestAOD/AliSpectraBothEventCuts.cxx
PWGLF/SPECTRA/XtAnalysis/PWGLFspectraLinkDef.h [deleted file]

index 6577ba0c420c1a022c90e8669582758481a18a45..c9dc73e1cc0d045bdd56f43876e460ca9b7d99c8 100644 (file)
@@ -77,6 +77,7 @@ set(SRCS
   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
@@ -136,4 +137,4 @@ install(DIRECTORY Nuclei/masses  DESTINATION PWGLF/SPECTRA/Nuclei)
 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)
index 634c77339c72f79fcef825aa0ea903911ee97d91..2e1e4aa1a6e5cfca834f7e95d3fe3f992ce8022f 100644 (file)
@@ -40,6 +40,7 @@
 #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+;
diff --git a/PWGLF/SPECTRA/PiKaPr/TestAOD/AddAliMultiplictyLoaderTask.C b/PWGLF/SPECTRA/PiKaPr/TestAOD/AddAliMultiplictyLoaderTask.C
new file mode 100644 (file)
index 0000000..cbe431c
--- /dev/null
@@ -0,0 +1,32 @@
+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;
+
+}
diff --git a/PWGLF/SPECTRA/PiKaPr/TestAOD/AliMultiplictyLoaderTask.cxx b/PWGLF/SPECTRA/PiKaPr/TestAOD/AliMultiplictyLoaderTask.cxx
new file mode 100644 (file)
index 0000000..5e4d32e
--- /dev/null
@@ -0,0 +1,79 @@
+#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;
+       }       
+
+} 
diff --git a/PWGLF/SPECTRA/PiKaPr/TestAOD/AliMultiplictyLoaderTask.h b/PWGLF/SPECTRA/PiKaPr/TestAOD/AliMultiplictyLoaderTask.h
new file mode 100644 (file)
index 0000000..c972e65
--- /dev/null
@@ -0,0 +1,45 @@
+#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
index d8cf5fc4f05018d169e293cfc5a8ccff6926262e..82588caf3ef2fe1674f7e9c166dab88ba7e5c239 100644 (file)
@@ -41,6 +41,7 @@
 #include "AliGenPythiaEventHeader.h"
 //#include "AliSpectraBothHistoManager.h"
 #include <iostream>
+#include "TParameter.h"
 
 using namespace std;
 
@@ -348,19 +349,37 @@ Bool_t AliSpectraBothEventCuts::CheckCentralityCut()
   // 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) )  
@@ -381,10 +400,23 @@ Bool_t AliSpectraBothEventCuts::CheckMultiplicityCut()
                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)
        {
diff --git a/PWGLF/SPECTRA/XtAnalysis/PWGLFspectraLinkDef.h b/PWGLF/SPECTRA/XtAnalysis/PWGLFspectraLinkDef.h
deleted file mode 100644 (file)
index 634c773..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-#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