]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGLF/STRANGENESS/Hypernuclei/AliAnalysisTaskNucleiv2SP.cxx
Split: removed dirs now in AliPhysics
[u/mrichter/AliRoot.git] / PWGLF / STRANGENESS / Hypernuclei / AliAnalysisTaskNucleiv2SP.cxx
diff --git a/PWGLF/STRANGENESS/Hypernuclei/AliAnalysisTaskNucleiv2SP.cxx b/PWGLF/STRANGENESS/Hypernuclei/AliAnalysisTaskNucleiv2SP.cxx
deleted file mode 100644 (file)
index 54a3fee..0000000
+++ /dev/null
@@ -1,814 +0,0 @@
-/**************************************************************************
- * Contributors are not mentioned at all.                                 *
- *                                                                        *
- * Permission to use, copy, modify and distribute this software and its   *
- * documentation strictly for non-commercial purposes is hereby granted   *
- * without fee, provided that the above copyright noticxse appears in all *
- * copies and that both the copyright notice and this permission notice   *
- * appear in the supporting documentation. The authors make no claims     *
- * about the suitability of this software for any purpose. It is          *
- * provided "as is" without express or implied warranty.                  *
- **************************************************************************/
-//-----------------------------------------------------------------
-//                 AliAnalysisTaskNucleiv2SP class
-//-----------------------------------------------------------------
-
-class TTree;
-class TParticle;
-class TVector3;
-
-#include "AliAnalysisManager.h"
-#include <AliMCEventHandler.h>
-#include <AliMCEvent.h>
-#include <AliStack.h>
-
-class AliESDVertex;
-class AliAODVertex;
-class AliESDv0;
-class AliAODv0; 
-
-#include <iostream>
-
-#include "TList.h"
-#include "TH1.h"
-#include "TH2.h"
-#include "TH3.h"
-#include "TNtuple.h"
-#include "TGraph.h"
-#include "TF1.h"
-#include "TCanvas.h"
-#include "TMath.h"
-#include "TChain.h"
-#include "Riostream.h"
-#include "AliLog.h"
-#include "AliCascadeVertexer.h"
-#include "AliESDEvent.h"
-#include "AliESDtrack.h"
-#include "AliExternalTrackParam.h"
-#include "AliAODEvent.h"
-#include "AliInputEventHandler.h"
-#include "AliESDcascade.h"
-#include "AliAODcascade.h"
-#include "AliAnalysisTaskNucleiv2SP.h"
-#include "AliESDtrackCuts.h"
-#include "AliCentrality.h"
-
-
-ClassImp(AliAnalysisTaskNucleiv2SP)
-
-using std::cout;
-using std::endl;
-    
-//________________________________________________________________________
-AliAnalysisTaskNucleiv2SP::AliAnalysisTaskNucleiv2SP() 
-: AliAnalysisTaskSE(), 
-  fisPrimCut(kFALSE),
-  fptc(1),     
-  fListHist(0), 
-  fHistEventMultiplicity(0), 
-  fHistTrackMultiplicity(0),
-  fHistTrackMultiplicityCentral(0),    
-  fHistTrackMultiplicitySemiCentral(0),
-  fHistTrackMultiplicityMB(0),
-  fhBB(0),
-  fhBBDeu(0),
-  fhTOF(0),
-  fhMassTOF(0),
-  EPVzAvsCentrality(0), 
-  EPVzCvsCentrality(0), 
-  EPTPCvsCentrality(0), 
-  EPVzvsCentrality(0), 
-  EPTPCpvsCentrality(0), 
-  EPTPCnvsCentrality(0), 
-  hEvPlaneTPCvsEvPVz05(0),                      
-  hEvPlaneTPCvsEvPVz075(0), 
-  hEvPlaneTPCvsEvPVz1530(0),
-  hEvPlaneTPCvsEvPVz3050(0),                      
-  hEvPlaneTPCvsEvPVz2040(0),                      
-  hEvPlaneTPCvsEvPVz4060(0),       
-  hCos2DeltaTPCVzAvsCentrality(0),
-  hCos2DeltaTPCVzCvsCentrality(0),
-  hCos2DeltaVzAVzCvsCentrality(0),
-  hCos2DeltaVzMVzAvsCentrality(0),
-  hCos2DeltaVzMVzCvsCentrality(0),
-  hCos2DeltaVzATPCvsCentrality(0),
-  hCos2DeltaVzCTPCvsCentrality(0),
-  hCos2DeltaVzCVzAvsCentrality(0),
-  hCos2DeltaVzMTPCpvsCentrality(0),
-  hCos2DeltaVzMTPCnvsCentrality(0),
-  hCos2DeltaTPCpTPCnvsCentrality(0),
-  hQVzAQVzCvsCentrality(0),
-  hQxVzAvsCentrality(0),
-  hQyVzAvsCentrality(0),
-  hQxVzCvsCentrality(0),
-  hQyVzCvsCentrality(0),
-  hQxVzMvsCentrality(0),
-  hQyVzMvsCentrality(0),
-  ftree(0),           
-  tCentrality(0),     
-  tType(0),  
-  tHasTOF(0),    
-  tpT(0),  
-  tMassTOF(0),
-  tuqV0A(0),
-  tuqV0C(0),
-  tCharge(0),
-  tCosdeltaphiTPC(0),
-  tCosdeltaphiV0M(0),
-  tCosdeltaphiV0A(0),
-  tCosdeltaphiV0C(0),
-  timpactXY(0),
-  timpactZ(0),
-  tpull(0),
-  tphi(0),
-  fESDtrackCuts(0),
-  fESDtrackCutsEP(0),
-  fPIDResponse(0)
-{
-  // Dummy Constructor 
-  fESDtrackCuts   = new AliESDtrackCuts("AliESDtrackCuts","AliESDtrackCuts");
-  fESDtrackCutsEP = new AliESDtrackCuts("AliESDtrackCutsEP","AliESDtrackCutsEP");
-  Initialize();
-  cout<<"Dummy constructor"<<endl;
-}
-
-//________________________________________________________________________
-AliAnalysisTaskNucleiv2SP::AliAnalysisTaskNucleiv2SP(const char *name) 
-: AliAnalysisTaskSE(name), 
-  fisPrimCut(kFALSE),
-  fptc(1),     
-  fListHist(0), 
-  fHistEventMultiplicity(0), 
-  fHistTrackMultiplicity(0),
-  fHistTrackMultiplicityCentral(0),    
-  fHistTrackMultiplicitySemiCentral(0),
-  fHistTrackMultiplicityMB(0),
-  fhBB(0),
-  fhBBDeu(0),
-  fhTOF(0),
-  fhMassTOF(0),
-  EPVzAvsCentrality(0), 
-  EPVzCvsCentrality(0), 
-  EPTPCvsCentrality(0), 
-  EPVzvsCentrality(0), 
-  EPTPCpvsCentrality(0), 
-  EPTPCnvsCentrality(0), 
-  hEvPlaneTPCvsEvPVz05(0),                      
-  hEvPlaneTPCvsEvPVz075(0), 
-  hEvPlaneTPCvsEvPVz1530(0),
-  hEvPlaneTPCvsEvPVz3050(0),                      
-  hEvPlaneTPCvsEvPVz2040(0),                      
-  hEvPlaneTPCvsEvPVz4060(0),       
-  hCos2DeltaTPCVzAvsCentrality(0),
-  hCos2DeltaTPCVzCvsCentrality(0),
-  hCos2DeltaVzAVzCvsCentrality(0),
-  hCos2DeltaVzMVzAvsCentrality(0),
-  hCos2DeltaVzMVzCvsCentrality(0),
-  hCos2DeltaVzATPCvsCentrality(0),
-  hCos2DeltaVzCTPCvsCentrality(0),
-  hCos2DeltaVzCVzAvsCentrality(0),
-  hCos2DeltaVzMTPCpvsCentrality(0),
-  hCos2DeltaVzMTPCnvsCentrality(0),
-  hCos2DeltaTPCpTPCnvsCentrality(0),
-  hQVzAQVzCvsCentrality(0),
-  hQxVzAvsCentrality(0),
-  hQyVzAvsCentrality(0),
-  hQxVzCvsCentrality(0),
-  hQyVzCvsCentrality(0),
-  hQxVzMvsCentrality(0),
-  hQyVzMvsCentrality(0),
-  ftree(0),           
-  tCentrality(0),     
-  tType(0),  
-  tHasTOF(0),    
-  tpT(0),  
-  tMassTOF(0),
-  tuqV0A(0),
-  tuqV0C(0),
-  tCharge(0),
-  tCosdeltaphiTPC(0),
-  tCosdeltaphiV0M(0),
-  tCosdeltaphiV0A(0),
-  tCosdeltaphiV0C(0),
-  timpactXY(0),
-  timpactZ(0),
-  tpull(0),
-  tphi(0),
-  fESDtrackCuts(0),
-  fESDtrackCutsEP(0),
-  fPIDResponse(0)
-{
-  // Define input and output slots here
-  // Input slot #0 works with a TChain
-  //DefineInput(0, TChain::Class());
-  // Output slot #0 writes into a TList container ()
-
-  //
-  // create track cuts
-  //
-  fESDtrackCuts   = new AliESDtrackCuts("AliESDtrackCuts","AliESDtrackCuts");
-  fESDtrackCutsEP = new AliESDtrackCuts("AliESDtrackCutsEP","AliESDtrackCutsEP");
-  //
-  cout<<"Real constructor"<<endl;
-  Initialize();
-
-  DefineInput(0, TChain::Class());
-  DefineOutput(1, TList::Class());
-  DefineOutput(2, TTree::Class());
-  
-}
-
-void AliAnalysisTaskNucleiv2SP::Initialize()
-{
-  //
-  // updating parameters in case of changes
-  //
-  fESDtrackCuts = AliESDtrackCuts::GetStandardITSTPCTrackCuts2011(fisPrimCut,kTRUE);
-  fESDtrackCuts->SetMaxDCAToVertexXY(3);
-  fESDtrackCuts->SetMaxDCAToVertexZ(2);
-  fESDtrackCuts->SetEtaRange(-0.8,0.8);
-  
-  fESDtrackCutsEP = AliESDtrackCuts::GetStandardTPCOnlyTrackCuts(); 
-
-}
-
-//________________________________________________________________________
-Float_t AliAnalysisTaskNucleiv2SP::GetEventPlaneForCandidate(AliESDtrack* track0, const TVector2* q,AliEventplane *pl){
-  
-  // remove autocorrelations 
-  
-  TArrayF* qx = 0x0;
-  TArrayF* qy = 0x0;
-  TVector2 qcopy; 
-  // if(!fEtaGap){
-  qx = pl->GetQContributionXArray();
-  qy = pl->GetQContributionYArray();
-  qcopy = *q;
-  
-  TVector2 q0;
-  if((track0->GetID()) < qx->fN){
-    q0.Set(qx->At(track0->GetID()),qy->At(track0->GetID()));
-  }
-  
-  qcopy = qcopy - q0;
-  
-  return qcopy.Phi()/2.;
-  
-}
-//________________________________________________________________________
-Float_t AliAnalysisTaskNucleiv2SP::GetPhi0Pi(Float_t phi){
-  // Sets the phi angle in the range 0-pi
-  Float_t result=phi;
-  while(result<0){
-    result=result+TMath::Pi();
-  }
-  while(result>TMath::Pi()){
-    result=result-TMath::Pi();
-  }
-   return result;
-}
-
-//==================DEFINITION OF OUTPUT OBJECTS==============================
-
-void AliAnalysisTaskNucleiv2SP::UserCreateOutputObjects()
-{
-  //-------------------------------------------------------
-  fListHist = new TList();
-  fListHist->SetOwner();  // IMPORTANT!
-  
-  if(! fHistEventMultiplicity ){
-
-    fHistEventMultiplicity   = new TH1F( "fHistEventMultiplicity" , "Nb of Events" , 12 , -0.5,11.5);
-
-    fHistEventMultiplicity->GetXaxis()->SetBinLabel(1,"All Events");
-    fHistEventMultiplicity->GetXaxis()->SetBinLabel(2,"Events w/PV");
-    fHistEventMultiplicity->GetXaxis()->SetBinLabel(3,"Events w/|Vz|<10cm");
-    fHistEventMultiplicity->GetXaxis()->SetBinLabel(4,"Central Events");
-    fHistEventMultiplicity->GetXaxis()->SetBinLabel(5,"Semi-Central Events");
-    fHistEventMultiplicity->GetXaxis()->SetBinLabel(6,"MB Events");
-    //from HF
-    fHistEventMultiplicity->GetXaxis()->SetBinLabel(7,"nEventsAnal");
-    fHistEventMultiplicity->GetXaxis()->SetBinLabel(8,"nEvSelected");
-    fHistEventMultiplicity->GetXaxis()->SetBinLabel(9,"nCandidatesSelected");
-    fHistEventMultiplicity->GetXaxis()->SetBinLabel(10,"out of pt bounds");
-    fHistEventMultiplicity->GetXaxis()->SetBinLabel(11,"mismatch lab");
-    fHistEventMultiplicity->GetXaxis()->SetBinLabel(12,"non valid TPC EP");
-    fListHist->Add(fHistEventMultiplicity);
-  }
-
-  if(! fHistTrackMultiplicity ){
-    fHistTrackMultiplicity  = new TH2F( "fHistTrackMultiplicity", "Nb of Tracks MB Events |Vz| < 10", 250,0, 25000,105,-0.5,104.5);
-    fHistTrackMultiplicity->GetXaxis()->SetTitle("Number of tracks");
-    fHistTrackMultiplicity->GetYaxis()->SetTitle("Percentile");
-    fListHist->Add(fHistTrackMultiplicity);
-  } 
-
-  if(! fHistTrackMultiplicityCentral ){
-    fHistTrackMultiplicityCentral  = new TH2F( "fHistTrackMultiplicityCentral", "Nb of Tracks MB Events |Vz| < 10", 250,0, 25000,105,-0.5,104.5);
-    fHistTrackMultiplicityCentral->GetXaxis()->SetTitle("Number of tracks");
-    fHistTrackMultiplicityCentral->GetYaxis()->SetTitle("Percentile");
-    fListHist->Add(fHistTrackMultiplicityCentral);
-  } 
-  if(! fHistTrackMultiplicitySemiCentral ){
-    fHistTrackMultiplicitySemiCentral  = new TH2F( "fHistTrackMultiplicitySemiCentral", "Nb of Tracks MB Events |Vz| < 10", 250,0, 25000,105,-0.5,104.5);
-    fHistTrackMultiplicitySemiCentral->GetXaxis()->SetTitle("Number of tracks");
-    fHistTrackMultiplicitySemiCentral->GetYaxis()->SetTitle("Percentile");
-    fListHist->Add(fHistTrackMultiplicitySemiCentral);
-  } 
-  if(! fHistTrackMultiplicityMB ){
-    fHistTrackMultiplicityMB  = new TH2F( "fHistTrackMultiplicityMB", "Nb of Tracks MB Events |Vz| < 10", 250,0, 25000,105,-0.5,104.5);
-    fHistTrackMultiplicityMB->GetXaxis()->SetTitle("Number of tracks");
-    fHistTrackMultiplicityMB->GetYaxis()->SetTitle("Percentile");
-    fListHist->Add(fHistTrackMultiplicityMB);
-  } 
-  if(! fhBB ){
-    fhBB = new TH2F( "fhBB" , "BetheBlochTPC" , 240,-10,10,250,0,1000);
-    fListHist->Add(fhBB);
-  }
-  
-  if(! fhBBDeu ){
-    fhBBDeu = new TH2F( "fhBBDeu" , "BetheBlochTPC - Deuteron" , 240,-10,10,250,0,1000);
-    fListHist->Add(fhBBDeu);
-  }
-  if(! fhTOF ){
-    fhTOF = new TH2F( "fhTOF" , "Scatter Plot TOF" , 240,-10,10,500,0,1.2);
-    fListHist->Add(fhTOF);
-  }
-  if(! fhMassTOF){
-    fhMassTOF=new TH1F ("fhMassTOF","Particle Mass - TOF", 100,0 ,10);
-    fListHist->Add(fhMassTOF);
-  }
-  
-  EPVzAvsCentrality  = new TH2D("EPVzAvsCentrality" , "EPVzAvsCentrality" , 80, -2, 2,105,-0.5,105.5);
-  EPVzCvsCentrality  = new TH2D("EPVzCvsCentrality" , "EPVzCvsCentrality" , 80, -2, 2,105,-0.5,105.5);
-  EPTPCvsCentrality  = new TH2D("EPTPCvsCentrality" , "EPTPCvsCentrality" , 80, -2, 2,105,-0.5,105.5);
-  EPVzvsCentrality   = new TH2D("EPVzvsCentrality"  , "EPVzvsCentrality"  , 80, -2, 2,105,-0.5,105.5);
-  EPTPCpvsCentrality = new TH2D("EPTPCpvsCentrality", "EPTPCpvsCentrality", 80, -2, 2,105,-0.5,105.5);
-  EPTPCnvsCentrality = new TH2D("EPTPCnvsCentrality", "EPTPCnvsCentrality", 80, -2, 2,105,-0.5,105.5);
-
-  fListHist->Add(EPVzAvsCentrality);
-  fListHist->Add(EPVzCvsCentrality);
-  fListHist->Add(EPTPCvsCentrality);
-  fListHist->Add(EPVzvsCentrality);
-  fListHist->Add(EPTPCpvsCentrality);
-  fListHist->Add(EPTPCnvsCentrality);
-  
-  hEvPlaneTPCvsEvPVz05   = new TH2F("hEvPlaneTPCvsEvPVz05"  ,"hEvPlaneTPCvsEvPVz05"  ,100,-TMath::Pi(),TMath::Pi(),100,-TMath::Pi(),TMath::Pi());                      
-  hEvPlaneTPCvsEvPVz075  = new TH2F("hEvPlaneTPCvsEvPVz075" ,"hEvPlaneTPCvsEvPVz075" ,100,-TMath::Pi(),TMath::Pi(),100,-TMath::Pi(),TMath::Pi()); 
-  hEvPlaneTPCvsEvPVz1530 = new TH2F("hEvPlaneTPCvsEvPVz1530","hEvPlaneTPCvsEvPVz1530",100,-TMath::Pi(),TMath::Pi(),100,-TMath::Pi(),TMath::Pi());
-  hEvPlaneTPCvsEvPVz3050 = new TH2F("hEvPlaneTPCvsEvPVz3050","hEvPlaneTPCvsEvPVz3050",100,-TMath::Pi(),TMath::Pi(),100,-TMath::Pi(),TMath::Pi());                      
-  hEvPlaneTPCvsEvPVz2040 = new TH2F("hEvPlaneTPCvsEvPVz2040","hEvPlaneTPCvsEvPVz2040",100,-TMath::Pi(),TMath::Pi(),100,-TMath::Pi(),TMath::Pi());                      
-  hEvPlaneTPCvsEvPVz4060 = new TH2F("hEvPlaneTPCvsEvPVz4060","hEvPlaneTPCvsEvPVz4060",100,-TMath::Pi(),TMath::Pi(),100,-TMath::Pi(),TMath::Pi());   
-  
-  fListHist->Add(hEvPlaneTPCvsEvPVz05);                      
-  fListHist->Add(hEvPlaneTPCvsEvPVz075); 
-  fListHist->Add(hEvPlaneTPCvsEvPVz1530);
-  fListHist->Add(hEvPlaneTPCvsEvPVz3050);                      
-  fListHist->Add(hEvPlaneTPCvsEvPVz2040);                      
-  fListHist->Add(hEvPlaneTPCvsEvPVz4060);   
-
-  hCos2DeltaTPCVzAvsCentrality   = new TH2F("hCos2DeltaTPCVzAvsCentrality"  ,"hCos2DeltaTPCVzAvsCentrality"  ,100,-1.1,1.1,105,-0.5,105.5);
-  hCos2DeltaTPCVzCvsCentrality   = new TH2F("hCos2DeltaTPCVzCvsCentrality"  ,"hCos2DeltaTPCVzCvsCentrality"  ,100,-1.1,1.1,105,-0.5,105.5);
-  hCos2DeltaVzAVzCvsCentrality   = new TH2F("hCos2DeltaVzAVzCvsCentrality"  ,"hCos2DeltaVzAVzCvsCentrality"  ,100,-1.1,1.1,105,-0.5,105.5);
-  hCos2DeltaVzMVzAvsCentrality   = new TH2F("hCos2DeltaVzMVzAvsCentrality"  ,"hCos2DeltaVzMVzAvsCentrality"  ,100,-1.1,1.1,105,-0.5,105.5);
-  hCos2DeltaVzMVzCvsCentrality   = new TH2F("hCos2DeltaVzMVzCvsCentrality"  ,"hCos2DeltaVzMVzCvsCentrality"  ,100,-1.1,1.1,105,-0.5,105.5);
-  hCos2DeltaVzATPCvsCentrality   = new TH2F("hCos2DeltaVzATPCvsCentrality"  ,"hCos2DeltaVzATPCvsCentrality"  ,100,-1.1,1.1,105,-0.5,105.5);
-  hCos2DeltaVzCTPCvsCentrality   = new TH2F("hCos2DeltaVzCTPCvsCentrality"  ,"hCos2DeltaVzCTPCvsCentrality"  ,100,-1.1,1.1,105,-0.5,105.5);
-  hCos2DeltaVzCVzAvsCentrality   = new TH2F("hCos2DeltaVzCVzAvsCentrality"  ,"hCos2DeltaVzCVzAvsCentrality"  ,100,-1.1,1.1,105,-0.5,105.5);
-  hCos2DeltaVzMTPCpvsCentrality  = new TH2F("hCos2DeltaVzMTPCpvsCentrality" ,"hCos2DeltaVzMTPCpvsCentrality" ,100,-1.1,1.1,105,-0.5,105.5);
-  hCos2DeltaVzMTPCnvsCentrality  = new TH2F("hCos2DeltaVzMTPCnvsCentrality" ,"hCos2DeltaVzMTPCnvsCentrality" ,100,-1.1,1.1,105,-0.5,105.5);
-  hCos2DeltaTPCpTPCnvsCentrality = new TH2F("hCos2DeltaTPCpTPCnvsCentrality","hCos2DeltaTPCpTPCnvsCentrality",100,-1.1,1.1,105,-0.5,105.5);
-
-  fListHist->Add(hCos2DeltaTPCVzAvsCentrality);
-  fListHist->Add(hCos2DeltaTPCVzCvsCentrality);
-  fListHist->Add(hCos2DeltaVzAVzCvsCentrality);
-  fListHist->Add(hCos2DeltaVzMVzAvsCentrality);
-  fListHist->Add(hCos2DeltaVzMVzCvsCentrality);
-  fListHist->Add(hCos2DeltaVzATPCvsCentrality);
-  fListHist->Add(hCos2DeltaVzCTPCvsCentrality);
-  fListHist->Add(hCos2DeltaVzCVzAvsCentrality);
-  fListHist->Add(hCos2DeltaVzMTPCpvsCentrality);  
-  fListHist->Add(hCos2DeltaVzMTPCnvsCentrality); 
-  fListHist->Add(hCos2DeltaTPCpTPCnvsCentrality);
-
-  hQVzAQVzCvsCentrality = new TH2F("hQVzAQVzCvsCentrality","hQVzAQVzCvsCentrality",1000,-5,5,105,-0.5,105.5);
-  fListHist->Add(hQVzAQVzCvsCentrality);
-  hQxVzAvsCentrality = new TH2F("hQxVzAvsCentrality","hQxVzAvsCentrality",100,-5,5,105,-0.5,105.5);
-  hQyVzAvsCentrality = new TH2F("hQyVzAvsCentrality","hQyVzAvsCentrality",100,-5,5,105,-0.5,105.5);
-  hQxVzCvsCentrality = new TH2F("hQxVzCvsCentrality","hQxVzCvsCentrality",100,-5,5,105,-0.5,105.5);
-  hQyVzCvsCentrality = new TH2F("hQyVzCvsCentrality","hQyVzCvsCentrality",100,-5,5,105,-0.5,105.5);
-  hQxVzMvsCentrality = new TH2F("hQxVzMvsCentrality","hQxVzMvsCentrality",100,-5,5,105,-0.5,105.5);
-  hQyVzMvsCentrality = new TH2F("hQyVzMvsCentrality","hQyVzMvsCentrality",100,-5,5,105,-0.5,105.5);
-
-  fListHist->Add(hQxVzAvsCentrality);
-  fListHist->Add(hQyVzAvsCentrality);
-  fListHist->Add(hQxVzCvsCentrality);
-  fListHist->Add(hQyVzCvsCentrality);
-  fListHist->Add(hQxVzMvsCentrality);
-  fListHist->Add(hQyVzMvsCentrality);
-
-  if(!ftree){
-   
-    ftree = new TTree("ftree","ftree");
-    ftree->Branch("tCentrality"      ,&tCentrality      ,"tCentrality/D"    );
-    ftree->Branch("tType"            ,&tType            ,"tType/D"          );
-    ftree->Branch("tHasTOF"          ,&tHasTOF          ,"tHasTOF/D"        );
-    ftree->Branch("tpT"              ,&tpT              ,"tpT/D"            );
-    ftree->Branch("tMassTOF"         ,&tMassTOF         ,"tMassTOF/D"       );
-    ftree->Branch("tuqV0A"           ,&tuqV0A           ,"tuqV0A/D"         );
-    ftree->Branch("tuqV0C"           ,&tuqV0C           ,"tuqV0C/D"         );
-    ftree->Branch("tCharge"          ,&tCharge          ,"tCharge/D"        );
-    ftree->Branch("tCosdeltaphiTPC"  ,&tCosdeltaphiTPC  ,"tCosdeltaphiTPC/D");
-    ftree->Branch("tCosdeltaphiV0M"  ,&tCosdeltaphiV0M  ,"tCosdeltaphiV0M/D");
-    ftree->Branch("tCosdeltaphiV0A"  ,&tCosdeltaphiV0A  ,"tCosdeltaphiV0A/D");
-    ftree->Branch("tCosdeltaphiV0C"  ,&tCosdeltaphiV0C  ,"tCosdeltaphiV0C/D");
-    ftree->Branch("timpactXY"        ,&timpactXY        ,"timpactXY/D"      );
-    ftree->Branch("timpactZ"         ,&timpactZ         ,"timpactZ/D"       );
-    ftree->Branch("tpull"            ,&tpull            ,"tpull/D"          );
-    ftree->Branch("tphi"             ,&tphi             ,"tphi/D"          );
-
-  }
-
-  PostData(1,  fListHist);
-  PostData(2,  ftree);
-}// end UserCreateOutputObjects
-
-
-//====================== USER EXEC ========================
-
-void AliAnalysisTaskNucleiv2SP::UserExec(Option_t *) 
-{
-  // Main loop
-  // Called for EACH event
-  //  cout<<"AliAnalysisTaskNucleiv2SP Starting UserExec"<<endl;
-
-  Info("AliAnalysisTaskNucleiv2SP","Starting UserExec");  
-  
-  AliVEvent *event = InputEvent();
-  if (!event) { Printf("ERROR: Could not retrieve event"); return; }
-  
-  AliESDEvent* lESDevent = dynamic_cast<AliESDEvent*>(event);
-  if (!lESDevent) {
-    AliError("Cannot get the ESD event");
-    return;
-  }  
-  
-  fHistEventMultiplicity->Fill(1);
-  fHistEventMultiplicity->Fill(7);
-  
-  //_____________________________________________________
-  //   Centrality  
-  
-  AliCentrality *centrality = lESDevent->GetCentrality();
-  Float_t percentile=centrality->GetCentralityPercentile("V0M");
-  
-  Int_t TrackNumber = lESDevent->GetNumberOfTracks();
-  fHistTrackMultiplicity->Fill(TrackNumber,percentile); //tracce per evento
-  
-  //______________________________________________________
-  // PID
-  
-  AliAnalysisManager *man=AliAnalysisManager::GetAnalysisManager();
-  AliInputEventHandler* inputHandler = (AliInputEventHandler*) (man->GetInputEventHandler());
-  fPIDResponse=inputHandler->GetPIDResponse(); 
-  
-  //=================================================================
-  
-  Float_t  impactXY=-999., impactZ=-999.;
-  Double_t TPCSignal=0.;
-  
-  ULong_t  status=0;
-  Double_t pmax  = 10;
-  Double_t ptmax = 10;
-  // Primary vertex cut
-  
-  const AliESDVertex *vtx = lESDevent->GetPrimaryVertexTracks();
-    
-  if(vtx->GetNContributors()<1) {
-    
-    // SPD vertex cut
-    vtx = lESDevent->GetPrimaryVertexSPD();
-    
-    if(vtx->GetNContributors()<1) {
-      Info("AliAnalysisTaskHelium3Pi","No good vertex, skip event");
-      return; // NO GOOD VERTEX, SKIP EVENT 
-    }
-  }
-  
-  fHistEventMultiplicity->Fill(2); // analyzed events with PV
-  
-  if(TMath::Abs(vtx->GetZ())>10) return;
-  fHistEventMultiplicity->Fill(3);
-
-  Bool_t isSelectedCentral     = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kCentral);
-  Bool_t isSelectedSemiCentral = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kSemiCentral);
-  Bool_t isSelectedMB          = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kMB);
-    
-  fHistTrackMultiplicity->Fill(TrackNumber,percentile); 
-    
-  Int_t eventtype = -999;
-  
-  //  cout<<"ET 1: "<<eventtype<<endl;
-  
-  if(isSelectedCentral){
-    fHistEventMultiplicity->Fill(4);
-    fHistTrackMultiplicityCentral->Fill(TrackNumber,percentile); 
-    eventtype =1;
-  }
-  
-  if(isSelectedSemiCentral){
-    fHistEventMultiplicity->Fill(5);
-    fHistTrackMultiplicitySemiCentral->Fill(TrackNumber,percentile); 
-    eventtype =2;
-  }
-  
-  if(isSelectedMB){
-    if(percentile<0)return;
-    if(percentile>=80)return;
-    fHistEventMultiplicity->Fill(6);
-    fHistTrackMultiplicityMB->Fill(TrackNumber,percentile); 
-    eventtype =3;
-  }
-  
-  //    cout<<"ET 2: "<<eventtype<<endl;
-  
-  if(eventtype!=1 && eventtype!=2 && eventtype!=3 )return;
-  
-  AliEventplane *pl=lESDevent->GetEventplane();
-  
-  
-  if(!pl ){
-    AliError("AliAnalysisTaskSENucleiv2SP::UserExec:no eventplane! v2 analysis without eventplane not possible!\n");
-    fHistEventMultiplicity->Fill(12);
-  }
-    
-  //Event plane from FLOW
-  
-  Double_t qxEPa = 0, qyEPa = 0;
-  Double_t qxEPc = 0, qyEPc = 0;
-  Double_t qxEP =  0 , qyEP = 0;
-  
-  Double_t evPlAngV0A = pl->CalculateVZEROEventPlane(lESDevent, 8, 2, qxEPa, qyEPa);
-  Double_t evPlAngV0C = pl->CalculateVZEROEventPlane(lESDevent, 9, 2, qxEPc, qyEPc);
-  Double_t evPlAngV0  = pl->CalculateVZEROEventPlane(lESDevent,10, 2, qxEP,  qyEP);
-  
-  Double_t Qx2  = 0, Qy2  = 0;
-  Double_t Qx2p = 0, Qy2p = 0;
-  Double_t Qx2n = 0, Qy2n = 0;
-  for (Int_t iT = 0; iT < TrackNumber; iT++){
-    
-    AliESDtrack* track = lESDevent->GetTrack(iT);
-    
-    if (!track)
-      continue;
-    
-    if ((TMath::Abs(track->Eta()) > 0.8) || (track->Pt() < 0.2) || (track->GetTPCNcls() < 70) || (track->Pt() >= 20.0))
-      continue;
-    if(!fESDtrackCutsEP->AcceptTrack(track))
-      continue;
-    if(track->Eta()>0 && track->Eta()<0.8){
-      
-      Qx2p += TMath::Cos(2*track->Phi());
-      Qy2p += TMath::Sin(2*track->Phi());
-    }
-    if(track->Eta()<0 && track->Eta()> -0.8){
-      
-      Qx2n += TMath::Cos(2*track->Phi());
-      Qy2n += TMath::Sin(2*track->Phi());
-    }
-
-    if(track->Eta()>0 && track->Eta()<0.8){ //half TPC
-      Qx2 += TMath::Cos(2*track->Phi());
-      Qy2 += TMath::Sin(2*track->Phi());
-    }
-  }
-  
-  Double_t evPlAngTPC  = TMath::ATan2(Qy2,  Qx2) /2.;
-  Double_t evPlAngTPCn = TMath::ATan2(Qy2n, Qx2n)/2.;
-  Double_t evPlAngTPCp = TMath::ATan2(Qy2p, Qx2p)/2.;
-
-  EPVzAvsCentrality  ->Fill(evPlAngV0A  , percentile); 
-  EPVzCvsCentrality  ->Fill(evPlAngV0C  , percentile); 
-  EPVzvsCentrality   ->Fill(evPlAngV0   , percentile); 
-  EPTPCvsCentrality  ->Fill(evPlAngTPC  , percentile); 
-  EPTPCpvsCentrality ->Fill(evPlAngTPCp , percentile); 
-  EPTPCnvsCentrality ->Fill(evPlAngTPCn , percentile); 
-
-  if(percentile>=0 && percentile<=5)
-    hEvPlaneTPCvsEvPVz05  ->Fill(evPlAngTPC,evPlAngV0); 
-  if(percentile>=0 && percentile<=7.5)
-    hEvPlaneTPCvsEvPVz075 ->Fill(evPlAngTPC,evPlAngV0); 
-  if(percentile>=15 && percentile<=30)
-    hEvPlaneTPCvsEvPVz1530->Fill(evPlAngTPC,evPlAngV0);
-  if(percentile>=30 && percentile<50)
-    hEvPlaneTPCvsEvPVz3050->Fill(evPlAngTPC,evPlAngV0);  
-  if(percentile>=20 && percentile<=40)                    
-    hEvPlaneTPCvsEvPVz2040->Fill(evPlAngTPC,evPlAngV0);   
-  if(percentile>=40 && percentile<=60)                   
-    hEvPlaneTPCvsEvPVz4060->Fill(evPlAngTPC,evPlAngV0);           
-
-  // For TPC, V0M, V0c and V0A resolution 
-
-  hCos2DeltaTPCVzAvsCentrality  ->Fill(TMath::Cos(2.*(evPlAngTPC - evPlAngV0A)) , percentile);
-  hCos2DeltaTPCVzCvsCentrality  ->Fill(TMath::Cos(2.*(evPlAngTPC - evPlAngV0C)) , percentile);
-  hCos2DeltaVzAVzCvsCentrality  ->Fill(TMath::Cos(2.*(evPlAngV0A - evPlAngV0C)) , percentile);
-  hCos2DeltaVzMVzAvsCentrality  ->Fill(TMath::Cos(2.*(evPlAngV0  - evPlAngV0A)) , percentile);
-  hCos2DeltaVzMVzCvsCentrality  ->Fill(TMath::Cos(2.*(evPlAngV0  - evPlAngV0C)) , percentile);
-  hCos2DeltaVzATPCvsCentrality  ->Fill(TMath::Cos(2.*(evPlAngV0A - evPlAngTPC)) , percentile);
-  hCos2DeltaVzCTPCvsCentrality  ->Fill(TMath::Cos(2.*(evPlAngV0C - evPlAngTPC)) , percentile);
-  hCos2DeltaVzCVzAvsCentrality  ->Fill(TMath::Cos(2.*(evPlAngV0C - evPlAngV0A)) , percentile);
-  hCos2DeltaVzMTPCpvsCentrality ->Fill(TMath::Cos(2.*(evPlAngV0  - evPlAngTPCp)), percentile);
-  hCos2DeltaVzMTPCnvsCentrality ->Fill(TMath::Cos(2.*(evPlAngV0  - evPlAngTPCn)), percentile);
-  hCos2DeltaTPCpTPCnvsCentrality->Fill(TMath::Cos(2.*(evPlAngTPCp- evPlAngTPCn)), percentile);
-
-  //Scalar Product
-  
-  Double_t  QV0AQV0C = qxEPa * qxEPc + qyEPa*qyEPc;
-  hQVzAQVzCvsCentrality->Fill(QV0AQV0C,percentile);
-  
-  //NUA correction
-
-  hQxVzAvsCentrality->Fill(qxEPa,percentile);
-  hQyVzAvsCentrality->Fill(qyEPa,percentile);
-  hQxVzCvsCentrality->Fill(qxEPc,percentile);
-  hQyVzCvsCentrality->Fill(qyEPc,percentile);
-  hQxVzMvsCentrality->Fill(qxEP ,percentile);
-  hQyVzMvsCentrality->Fill(qyEP ,percentile);
-
-  //====================================================================================================================
-  
-  // To remove auto-correlation
-  TVector2 *q = 0x0;
-  q = pl->GetQVector();
-
-  Double_t ptcExp  = -999;
-  Double_t pullTPC = -999;
-  Double_t expbeta = -999;
-  Double_t pullTOF = -999;
-  Float_t deltaphiTPC = -3;
-  Float_t deltaphiV0  = -3;
-  Float_t deltaphiV0A = -3;
-  Float_t deltaphiV0C = -3;
-
-  Double_t massd   = 1.875612859;
-  Double_t masst   = 2.808939;
-  Double_t mass3he = 2.80892;
-
-  Float_t  uqV0A = -999;
-  Float_t  uqV0C = -999; 
-
-  for (Int_t j=0; j<TrackNumber; j++) { //loop on tracks
-      
-    AliESDtrack *esdtrack=lESDevent->GetTrack(j);
-    if (!fESDtrackCuts->AcceptTrack(esdtrack)) continue;
-    
-    status  = (ULong_t)esdtrack->GetStatus();
-   
-    Bool_t hasTOFout  = status&AliESDtrack::kTOFout; 
-    Bool_t hasTOF     = kFALSE;
-    if (hasTOFout) hasTOF = kTRUE;
-    Float_t length = esdtrack->GetIntegratedLength(); 
-    if (length < 350.) hasTOF = kFALSE;
-    
-    TPCSignal=esdtrack->GetTPCsignal(); 
-      
-    if(TPCSignal<10)continue;
-    if(TPCSignal>1000)continue;
-    if(!esdtrack->GetInnerParam()) continue;
-    
-    Double_t ptot = esdtrack->GetInnerParam()->GetP(); // momentum for dEdx determination
-    //   if(ptot<0.2)continue;
-    if(ptot<0.6)continue;
-    fhBB->Fill(ptot*esdtrack->GetSign(),TPCSignal);
-    esdtrack->GetImpactParameters(impactXY, impactZ);
-              
-    ptcExp = -999;
-    if(fptc==1)
-      ptcExp  = AliExternalTrackParam::BetheBlochAleph(ptot/(0.938*2),1.45802,27.4992,4.00313e-15,2.48485,8.31768);
-    if(fptc==2)
-      ptcExp  = AliExternalTrackParam::BetheBlochAleph(ptot/(0.938*3),1.45802,27.4992,4.00313e-15,2.48485,8.31768);
-    if(fptc==3)
-      ptcExp  = 4*AliExternalTrackParam::BetheBlochAleph(2*ptot/(0.938*3),1.74962,27.4992,4.00313e-15,2.42485,8.31768);
-    
-    pullTPC  = (TPCSignal - ptcExp)/(0.07*ptcExp);
-
-    Double_t p    = esdtrack->P();
-    Double_t tof  = esdtrack->GetTOFsignal()-fPIDResponse->GetTOFResponse().GetStartTime(p);
-    Double_t tPhi = esdtrack->Phi();
-
-    Float_t  beta = 0;
-    Float_t  gamma = 0;
-    Float_t  mass  = -99;
-    Double_t pt  = esdtrack->Pt();
-    if(fptc==1)
-      expbeta = TMath::Sqrt(1-((massd*massd)/(ptot*ptot+massd*massd))); 
-    if(fptc==2)
-      expbeta = TMath::Sqrt(1-((masst*masst)/(ptot*ptot+masst*masst))); 
-    if(fptc==3)
-      expbeta = TMath::Sqrt(1-((mass3he*mass3he)/(ptot*ptot+mass3he*mass3he))); 
-     
-
-    if(fptc==3)
-      pt = 2*pt;
-
-    if(TMath::Abs(ptot) < pmax  && TMath::Abs(pt) < ptmax){
-      // if(TMath::Abs(pullTPC) <= 3)
-      
-      //
-      // Process TOF information
-      //
-      if(!hasTOF)continue;
-      //      if (hasTOF) {
-      beta = length / (2.99792457999999984e-02 * tof);
-      gamma = 1/TMath::Sqrt(1 - beta*beta);
-      mass = ptot/TMath::Sqrt(gamma*gamma - 1); // using inner TPC mom. as approx.
-  
-      //   cout<<expbeta<<" "<<beta<<" "<<(beta - expbeta)/(0.008*expbeta)<<endl;
-      pullTOF  = (beta - expbeta)/(0.007*expbeta);
-
-      if(TMath::Abs(ptot)< 2)
-       if(TMath::Abs(pullTPC) > 3)continue;
-      
-      // if(TMath::Abs(ptot)< 4)
-      //       if( beta>1)continue;
-      if(TMath::Abs(pullTOF) > 3)continue;
-
-      if(TMath::Sqrt(esdtrack->GetTOFsignalDz()*esdtrack->GetTOFsignalDz() + esdtrack->GetTOFsignalDx()*esdtrack->GetTOFsignalDx()) > 5.)continue; 
-
-      if(fptc==1){
-       if(TMath::Abs(mass) > 2.65)continue;
-       if(TMath::Abs(mass) < 1.05)continue;
-      }
-      if(fptc==2){
-       if(TMath::Abs(mass) > 5.0)continue;
-       if(TMath::Abs(mass) < 1.8 )continue;
-      }
-      if(fptc==3){
-       if(TMath::Abs(mass) > 5.0)continue;
-       if(TMath::Abs(mass) < 1.8)continue;
-      }
-      fhMassTOF->Fill(mass);
-      //}
-      fhTOF->Fill(ptot*esdtrack->GetSign(),beta);
-      fhBBDeu->Fill(ptot*esdtrack->GetSign(),TPCSignal);
-      
-   
-      // Event Plane
-      // Remove AutoCorrelation
-      
-      evPlAngTPC = GetEventPlaneForCandidate(esdtrack,q,pl);
-      
-      deltaphiTPC=TMath::Cos(2*GetPhi0Pi(tPhi-evPlAngTPC));
-      deltaphiV0 =TMath::Cos(2*GetPhi0Pi(tPhi-evPlAngV0 ));
-      deltaphiV0A=TMath::Cos(2*GetPhi0Pi(tPhi-evPlAngV0A));
-      deltaphiV0C=TMath::Cos(2*GetPhi0Pi(tPhi-evPlAngV0C));
-      
-      // Scalar Product
-      
-      uqV0A = TMath::Cos(2*tPhi)*qxEPa+TMath::Sin(2*tPhi)*qyEPa;
-      uqV0C = TMath::Cos(2*tPhi)*qxEPc+TMath::Sin(2*tPhi)*qyEPc;
-       
-      tCentrality      = percentile;
-      tType            = eventtype;
-      tHasTOF          = hasTOF;
-      tpT              = pt;
-      tMassTOF         = mass;
-      tuqV0A           = uqV0A;
-      tuqV0C           = uqV0C;
-      tCharge          = esdtrack->GetSign();
-      tCosdeltaphiTPC  = deltaphiTPC;
-      tCosdeltaphiV0M  = deltaphiV0;
-      tCosdeltaphiV0A  = deltaphiV0A;
-      tCosdeltaphiV0C  = deltaphiV0C;
-      timpactXY        = impactXY;
-      timpactZ         = impactZ;
-      tpull            = pullTPC;
-      tphi             = tPhi;
-
-      ftree->Fill();
-    } 
-  }  //track
-  
-  PostData(1, fListHist);
-  PostData(2, ftree);
-} //end userexec
-
-
-//________________________________________________________________________
-
-void AliAnalysisTaskNucleiv2SP::Terminate(Option_t *) 
-{
-  // Draw result to the screen
-  // Called once at the end of the query
-}
-