// Base class for analysis algorithms
//-- Author: Gustavo Conesa (LNF-INFN)
//_________________________________________________________________________
+// --Yaxian Mao: Add the possibality for event selection analysis based on vertex and multiplicity bins (10/10/2010)
// --- ROOT system ---
//---- AliRoot system ----
#include "AliAnaPartCorrBaseClass.h"
#include "AliCaloTrackReader.h"
+#include "AliCalorimeterUtils.h"
#include "AliCaloPID.h"
#include "AliFiducialCut.h"
#include "AliIsolationCut.h"
#include "AliMCAnalysisUtils.h"
#include "AliNeutralMesonSelection.h"
-#include "AliAODCaloCells.h"
+#include "AliVCaloCells.h"
#include "AliAODEvent.h"
#include "AliAODHandler.h"
#include "AliAnalysisManager.h"
+#include "AliAODPWG4Particle.h"
ClassImp(AliAnaPartCorrBaseClass)
AliAnaPartCorrBaseClass::AliAnaPartCorrBaseClass() :
TObject(), fDataMC(0), fDebug(0), fCheckFidCut(0),
fCheckCaloPID(0), fRecalculateCaloPID(0), fMinPt(0), fMaxPt(0),
+ fMultiBin(0),fNZvertBin(0),fNrpBin(0),fZvtxCut(0.), fMaxMulti(0),fMinMulti(0),
+ fUseSelectEvent(kFALSE), fMakePlots(kFALSE),
fReader(0x0), fInputAODBranch(0x0), fInputAODName(""),
fOutputAODBranch(0x0), fNewAOD(kFALSE),
fOutputAODName(""), fOutputAODClassName(""),
fAODObjArrayName(""), fAddToHistogramsName(""),
- fAODCaloCells(0x0),//fAODCaloClusters(0x0),
+ fCentralityClass("V0M"),fCentralityOpt(10),
fCaloPID(0x0), fFidCut(0x0), fIC(0x0),fMCUtils(0x0), fNMS(0x0),
- //fAnaOutContainer(0x0),
+ fCaloUtils(0x0),
fHistoPtBins(0), fHistoPtMax(0.), fHistoPtMin(0.),
fHistoPhiBins(0), fHistoPhiMax(0.), fHistoPhiMin(0.),
fHistoEtaBins(0), fHistoEtaMax(0.), fHistoEtaMin(0.),
fHistoMassBins(0), fHistoMassMax(0.), fHistoMassMin(0.),
- fHistoAsymBins(0), fHistoAsymMax(0.), fHistoAsymMin(0.)
+ fHistoAsymBins(0), fHistoAsymMax(0.), fHistoAsymMin(0.),
+ fHistoV0SBins(0), fHistoV0SMax(0), fHistoV0SMin(0),
+ fHistoV0MBins(0), fHistoV0MMax(0), fHistoV0MMin(0),
+ fHistoTrMBins(0), fHistoTrMMax(0), fHistoTrMMin(0)
{
//Default Ctor
InitParameters();
}
-//___________________________________________________________
-AliAnaPartCorrBaseClass::AliAnaPartCorrBaseClass(const AliAnaPartCorrBaseClass & abc) :
- TObject(), fDataMC(abc.fDataMC), fDebug(abc.fDebug),
- fCheckFidCut(abc.fCheckFidCut), fCheckCaloPID(abc. fCheckCaloPID),
- fRecalculateCaloPID(abc.fRecalculateCaloPID),
- fMinPt(abc.fMinPt), fMaxPt(abc.fMaxPt), fReader(abc.fReader),
- fInputAODBranch(new TClonesArray(*abc.fInputAODBranch)), fInputAODName(abc.fInputAODName),
- fOutputAODBranch(new TClonesArray(*abc.fOutputAODBranch)),fNewAOD(abc.fNewAOD),
- fOutputAODName(abc.fOutputAODName), fOutputAODClassName(abc.fOutputAODClassName),
- fAODObjArrayName(abc.fAODObjArrayName),
- fAddToHistogramsName(abc.fAddToHistogramsName),
- //fAODCaloClusters(new TClonesArray(*abc.fAODCaloClusters)),
- fAODCaloCells(new AliAODCaloCells(*abc.fAODCaloCells)),
- fCaloPID(abc.fCaloPID), fFidCut(abc.fFidCut), fIC(abc.fIC),fMCUtils(abc.fMCUtils), fNMS(abc.fNMS),
- //fAnaOutContainer(abc.fAnaOutContainer),
- fHistoPtBins(abc.fHistoPtBins), fHistoPtMax(abc.fHistoPtMax), fHistoPtMin(abc.fHistoPtMin),
- fHistoPhiBins(abc.fHistoPhiBins), fHistoPhiMax(abc.fHistoPhiMax), fHistoPhiMin(abc.fHistoPhiMin),
- fHistoEtaBins(abc.fHistoEtaBins), fHistoEtaMax(abc.fHistoEtaMax), fHistoEtaMin(abc.fHistoEtaMin),
- fHistoMassBins(abc.fHistoMassBins), fHistoMassMax(abc.fHistoMassMax), fHistoMassMin(abc.fHistoMassMin),
- fHistoAsymBins(abc.fHistoAsymBins), fHistoAsymMax(abc.fHistoAsymMax), fHistoAsymMin(abc.fHistoAsymMin)
-{
- // cpy ctor
-
-}
-
-//_________________________________________________________________________
-AliAnaPartCorrBaseClass & AliAnaPartCorrBaseClass::operator = (const AliAnaPartCorrBaseClass & abc)
-{
- // assignment operator
-
- if(this == &abc) return *this;
- ((TObject *)this)->operator=(abc);
-
- fDataMC = abc.fDataMC;
- fDebug = abc.fDebug ;
- fRecalculateCaloPID = abc.fRecalculateCaloPID ;
- fCheckCaloPID = abc.fCheckCaloPID ;
- fCheckFidCut = abc.fCheckFidCut ;
-
- fReader = abc.fReader ;
- //fAODCaloClusters = new TClonesArray(*abc.fAODCaloClusters) ;
- fAODCaloCells = new AliAODCaloCells(*abc.fAODCaloCells) ;
-
- fMinPt = abc.fMinPt;
- fMaxPt = abc.fMaxPt;
- fCaloPID = abc.fCaloPID;
- fFidCut = abc.fFidCut;
- fIC = abc.fIC;
- fMCUtils = abc.fMCUtils;
- fNMS = abc.fNMS;
-
- //fAnaOutContainer = abc.fAnaOutContainer;
-
- fInputAODBranch = new TClonesArray(*abc.fInputAODBranch) ;
- fInputAODName = abc.fInputAODName;
- fOutputAODBranch = new TClonesArray(*abc.fOutputAODBranch) ;
- fNewAOD = abc.fNewAOD ;
- fOutputAODName = abc.fOutputAODName;
- fOutputAODClassName = abc.fOutputAODClassName;
- fAddToHistogramsName = abc.fAddToHistogramsName;
- fAODObjArrayName = abc.fAODObjArrayName;
-
- fHistoPtBins = abc.fHistoPtBins; fHistoPtMax = abc.fHistoPtMax; fHistoPtMin = abc.fHistoPtMin;
- fHistoPhiBins = abc.fHistoPhiBins; fHistoPhiMax = abc.fHistoPhiMax; fHistoPhiMin = abc.fHistoPhiMin;
- fHistoEtaBins = abc.fHistoEtaBins; fHistoEtaMax = abc.fHistoEtaMax; fHistoEtaMin = abc.fHistoEtaMin;
-
- return *this;
-
-}
-
//____________________________________________________________________________
AliAnaPartCorrBaseClass::~AliAnaPartCorrBaseClass()
{
// Remove all pointers except analysis output pointers.
-
- if(fOutputAODBranch){
- fOutputAODBranch->Clear() ;
- delete fOutputAODBranch ;
- }
-
- if(fInputAODBranch){
- fInputAODBranch->Clear() ;
- delete fInputAODBranch ;
- }
-
-// if(fAODCaloClusters){
-// fAODCaloClusters->Clear() ;
-// delete fAODCaloClusters ;
-// }
-
- if(fAODCaloCells){
- fAODCaloCells->Clear() ;
- delete fAODCaloCells ;
- }
-
-// if(fAnaOutContainer){
-// fAnaOutContainer->Clear() ;
-// delete fAnaOutContainer ;
+//printf("---Delete analysis %s\n", fAODObjArrayName.Data());
+ // Not sure if it should be me who deletes the delta AOD branches.
+// if(fOutputAODBranch){
+// fOutputAODBranch->Clear() ;
+// delete fOutputAODBranch ;
+// }
+//
+// if(fInputAODBranch){
+// fInputAODBranch->Clear() ;
+// delete fInputAODBranch ;
// }
-
- if(fReader) delete fReader ;
- if(fCaloPID) delete fCaloPID ;
- if(fFidCut) delete fFidCut ;
- if(fIC) delete fIC ;
- if(fMCUtils) delete fMCUtils ;
- if(fNMS) delete fNMS ;
-}
-
-////____________________________________________________________________________
-//void AliAnaPartCorrBaseClass::AddAODCaloCluster(AliAODCaloCluster calo) {
-// //Put AOD calo cluster in the CaloClusters array
-//
-// Int_t i = fAODCaloClusters->GetEntriesFast();
-// new((*fAODCaloClusters)[i]) AliAODCaloCluster(calo);
-//
-//}
+ //if(fCaloUtils) delete fCaloUtils ; //Already deleted in maker
+ //if(fReader) delete fReader ; //Already deleted in maker
+
+ if(fCaloPID) delete fCaloPID ;
+ if(fFidCut) delete fFidCut ;
+ if(fIC) delete fIC ;
+ if(fMCUtils) delete fMCUtils ;
+ if(fNMS) delete fNMS ;
+ // printf("--- analysis deleted \n");
+}
//____________________________________________________________________________
void AliAnaPartCorrBaseClass::AddAODParticle(AliAODPWG4Particle pc) {
}
-
-//___________________________________________________
-//void AliAnaPartCorrBaseClass::ConnectAODCaloClusters() {
-// //Recover the list of AODCaloClusters
-//
-// fAODCaloClusters = fReader->GetOutputEvent()->GetCaloClusters();
-//
-//}
-//
-//___________________________________________________
-void AliAnaPartCorrBaseClass::ConnectAODPHOSCells() {
- //Recover the list of PHOS AODCaloCells
-
- fAODCaloCells = fReader->GetOutputEvent()->GetPHOSCells();
-
-}
-
-//___________________________________________________
-void AliAnaPartCorrBaseClass::ConnectAODEMCALCells() {
- //Recover the list of EMCAL AODCaloCells
-
- fAODCaloCells = fReader->GetOutputEvent()->GetEMCALCells();
-
-}
-
-//___________________________________________________
+//___________________________________________________________________________
TClonesArray * AliAnaPartCorrBaseClass::GetAODBranch(TString aodName) const {
//Recover ouput and input AOD pointers for each event in the maker
//Delta AODs
if(fDebug > 3) printf("AliAnaPartCorrBaseClass::GetAODBranch() - Get Input Branch with name: <%s>; \n",aodName.Data());
- //Get the AOD handler, if output AOD is created use it, if not get the branches from the input which should be deltaAODs
- AliAODHandler* aodHandler = 0x0;
- Bool_t outAOD = kFALSE;
- if((AliAnalysisManager::GetAnalysisManager())->GetOutputEventHandler()) outAOD = kTRUE;
- if(outAOD) aodHandler = (AliAODHandler*) ((AliAnalysisManager::GetAnalysisManager())->GetOutputEventHandler());
- else aodHandler = (AliAODHandler*) ((AliAnalysisManager::GetAnalysisManager())->GetInputEventHandler());
-
- if (aodHandler->GetExtensions()) {
- AliAODExtension *ext = (AliAODExtension*)aodHandler->GetExtensions()->FindObject(GetReader()->GetDeltaAODFileName());
- if(ext){
- AliAODEvent *aodEvent = ext->GetAOD();
- TClonesArray * aodbranch = (TClonesArray*) aodEvent->FindListObject(aodName);
- if(aodbranch) return aodbranch;
- else {
- if(outAOD) return (TClonesArray *) fReader->GetOutputEvent()->FindListObject(aodName);
- else return (TClonesArray *) fReader->GetInputEvent() ->FindListObject(aodName);
- }
- }
- else{//If no Delta AODs, kept in standard branch, to revise.
- if(outAOD) return (TClonesArray *) fReader->GetOutputEvent()->FindListObject(aodName);
- else return (TClonesArray *) fReader->GetInputEvent() ->FindListObject(aodName);
- }
- }
- else{ //If no Delta AODs, kept in standard branch, to revise.
- if(outAOD) return (TClonesArray *) fReader->GetOutputEvent()->FindListObject(aodName);
- else return (TClonesArray *) fReader->GetInputEvent() ->FindListObject(aodName);
- }
+ //Get the AOD handler, if output AOD is created use it, if not get the branches from the input which should be deltaAODs
+ AliAODHandler* aodHandler = 0x0;
+ Bool_t outAOD = kFALSE;
+ if((AliAnalysisManager::GetAnalysisManager())->GetOutputEventHandler()) outAOD = kTRUE;
+ if(outAOD) aodHandler = (AliAODHandler*) ((AliAnalysisManager::GetAnalysisManager())->GetOutputEventHandler());
+ else aodHandler = (AliAODHandler*) ((AliAnalysisManager::GetAnalysisManager())->GetInputEventHandler());
+
+ if(!GetReader()->WriteDeltaAODToFile())
+ {
+ return (TClonesArray *) (fReader->GetAODBranchList())->FindObject(aodName);
+ }
+ else if (aodHandler->GetExtensions())
+ {
+ AliAODExtension *ext = (AliAODExtension*)aodHandler->GetExtensions()->FindObject(GetReader()->GetDeltaAODFileName());
+ if(ext){
+ AliAODEvent *aodEvent = ext->GetAOD();
+ TClonesArray * aodbranch = (TClonesArray*) aodEvent->FindListObject(aodName);
+ if(aodbranch) return aodbranch;
+ else {
+ if(outAOD) return (TClonesArray *) fReader->GetOutputEvent()->FindListObject(aodName);
+ else return (TClonesArray *) fReader->GetInputEvent() ->FindListObject(aodName);
+ }
+ }
+ else{//If no Delta AODs, kept in standard branch, to revise.
+ if(outAOD) return (TClonesArray *) fReader->GetOutputEvent()->FindListObject(aodName);
+ else return (TClonesArray *) fReader->GetInputEvent() ->FindListObject(aodName);
+ }
+ }
+ else{ //If no Delta AODs, kept in standard branch, to revise.
+ if(outAOD) return (TClonesArray *) fReader->GetOutputEvent()->FindListObject(aodName);
+ else return (TClonesArray *) fReader->GetInputEvent() ->FindListObject(aodName);
+ }
+
}
+
//___________________________________________________
void AliAnaPartCorrBaseClass::ConnectInputOutputAODBranches() {
//Recover ouput and input AOD pointers for each event in the maker
//Delta AODs
if(fDebug > 3) printf("AliAnaPartCorrBaseClass::ConnectInputOutputAODBranches() - Connect Input with name: <%s>; Connect output with name <%s>\n",fInputAODName.Data(),fOutputAODName.Data());
-
+
//Get the AOD handler, if output AOD is created use it, if not get the branches from the input which should be deltaAODs
AliAODHandler* aodHandler = 0x0;
Bool_t outAOD = kFALSE;
if((AliAnalysisManager::GetAnalysisManager())->GetOutputEventHandler()) outAOD = kTRUE;
if(outAOD) aodHandler = (AliAODHandler*) ((AliAnalysisManager::GetAnalysisManager())->GetOutputEventHandler());
- else aodHandler = (AliAODHandler*) ((AliAnalysisManager::GetAnalysisManager())->GetInputEventHandler());
+ else aodHandler = (AliAODHandler*) ((AliAnalysisManager::GetAnalysisManager())->GetInputEventHandler());
- if (aodHandler->GetExtensions()) {
-
+ if(!GetReader()->WriteDeltaAODToFile())
+ {
+ fOutputAODBranch = (TClonesArray *) (fReader->GetAODBranchList())->FindObject(fOutputAODName);
+ fInputAODBranch = (TClonesArray *) (fReader->GetAODBranchList())->FindObject(fInputAODName);
+ }
+ else if (aodHandler->GetExtensions()) {
+
AliAODExtension *ext = (AliAODExtension*)aodHandler->GetExtensions()->FindObject(GetReader()->GetDeltaAODFileName());
if(ext){
- AliAODEvent *aodEvent = ext->GetAOD();
- if(fNewAOD)fOutputAODBranch = (TClonesArray*) aodEvent->FindListObject(fOutputAODName);
- fInputAODBranch = (TClonesArray*) aodEvent->FindListObject(fInputAODName);
- if(!fOutputAODBranch && fNewAOD) fOutputAODBranch = (TClonesArray *) fReader->GetOutputEvent()->FindListObject(fOutputAODName);
- if(!fInputAODBranch) fInputAODBranch = (TClonesArray *) fReader->GetOutputEvent()->FindListObject(fInputAODName);
+ AliAODEvent *aodEvent = ext->GetAOD();
+ if(fNewAOD)fOutputAODBranch = (TClonesArray*) aodEvent->FindListObject(fOutputAODName);
+ fInputAODBranch = (TClonesArray*) aodEvent->FindListObject(fInputAODName);
+ if(!fOutputAODBranch && fNewAOD) fOutputAODBranch = (TClonesArray *) fReader->GetOutputEvent()->FindListObject(fOutputAODName);
+ if(!fInputAODBranch) fInputAODBranch = (TClonesArray *) fReader->GetOutputEvent()->FindListObject(fInputAODName);
}
else{//If no Delta AODs, kept in standard branch, to revise.
if(fNewAOD && fReader->GetOutputEvent()) {
}
if(GetDebug() > 1){
- if(fNewAOD && !fOutputAODBranch)
- printf(" AliAnaPartCorrBaseClass::ConnectInputOutputAODBranches() - Output Branch <%s>, not found!\n",fOutputAODName.Data());
- if(!fNewAOD && !fInputAODBranch)
- printf(" AliAnaPartCorrBaseClass::ConnectInputOutputAODBranches() - Input Branch <%s>, not found!\n",fInputAODName.Data());
+ if(fNewAOD && !fOutputAODBranch)
+ printf(" AliAnaPartCorrBaseClass::ConnectInputOutputAODBranches() - Output Branch <%s>, not found!\n",fOutputAODName.Data());
+ if(!fNewAOD && !fInputAODBranch)
+ printf(" AliAnaPartCorrBaseClass::ConnectInputOutputAODBranches() - Input Branch <%s>, not found!\n",fInputAODName.Data());
}
}
-
+//
+////__________________________________________________________________________
+//Bool_t AliAnaPartCorrBaseClass::IsTrackMatched(AliVCluster* cluster) const {
+// //Check if there is any track attached to this cluster
+//
+// Int_t nMatches = cluster->GetNTracksMatched();
+//// printf("N matches %d, first match %d\n",nMatches,cluster->GetTrackMatchedIndex());
+//// if (cluster->GetTrackMatched(0)) printf("\t matched track id %d\n",((AliVTrack*)cluster->GetTrackMatched(0))->GetID()) ;
+//// else if(cluster->GetTrackMatchedIndex()>=0) printf("\t matched track id %d\n",((AliVTrack*) GetReader()->GetInputEvent()->GetTrack(cluster->GetTrackMatchedIndex()))->GetID()) ;
+//
+// if(fReader->GetDataType()==AliCaloTrackReader::kESD)
+// {
+//
+// if (nMatches > 0) {
+// if (nMatches == 1 ) {
+// Int_t iESDtrack = cluster->GetTrackMatchedIndex();
+// //printf("Track Matched index %d\n",iESDtrack);
+// if(iESDtrack==-1) return kFALSE ;// Default value of array, there is no match
+// else return kTRUE;
+// }//Just one, check
+// else return kTRUE ;//More than one, there is a match.
+// }// > 0
+// else return kFALSE; //It does not happen, but in case
+//
+// }//ESDs
+// else
+// {
+// //AODs
+// if(nMatches > 0) return kTRUE; //There is at least one match.
+// else return kFALSE;
+//
+// }//AODs or MC (copy into AOD)
+//
+// return kFALSE;
+//
+//}
+//
//__________________________________________________
TObjArray * AliAnaPartCorrBaseClass::GetAODCTS() const {
//Get list of referenced tracks from reader
//Put data member values in string to keep in output container
TString parList ; //this will be list of parameters used for this analysis.
- char onePar[255] ;
- sprintf(onePar,"--- AliAnaPartCorrBaseClass ---\n") ;
+ const Int_t buffersize = 255;
+ char onePar[buffersize] ;
+ snprintf(onePar,buffersize,"--- AliAnaPartCorrBaseClass ---\n") ;
parList+=onePar ;
- sprintf(onePar,"Minimal P_t: %2.2f ; Max\n", fMinPt) ;
+ snprintf(onePar,buffersize,"Minimal P_t: %2.2f ; Max\n", fMinPt) ;
parList+=onePar ;
- sprintf(onePar,"Minimal P_t: %2.2f ; Max\n", fMaxPt) ;
+ snprintf(onePar,buffersize,"Minimal P_t: %2.2f ; Max\n", fMaxPt) ;
parList+=onePar ;
- sprintf(onePar,"fDataMC =%d (Check MC information, on/off) \n",fDataMC) ;
+ snprintf(onePar,buffersize,"fDataMC =%d (Check MC information, on/off) \n",fDataMC) ;
parList+=onePar ;
- sprintf(onePar,"fCheckFidCut=%d (Check Fiducial cut selection on/off) \n",fCheckFidCut) ;
+ snprintf(onePar,buffersize,"fCheckFidCut=%d (Check Fiducial cut selection on/off) \n",fCheckFidCut) ;
parList+=onePar ;
- sprintf(onePar,"fCheckCaloPID =%d (Use Bayesian PID in calorimetes, on/off) \n",fCheckCaloPID) ;
+ snprintf(onePar,buffersize,"fCheckCaloPID =%d (Use Bayesian PID in calorimetes, on/off) \n",fCheckCaloPID) ;
parList+=onePar ;
- sprintf(onePar,"fRecalculateCaloPID =%d (Calculate PID from shower/tof/tracking parameters, on/off) \n",fRecalculateCaloPID) ;
+ snprintf(onePar,buffersize,"fRecalculateCaloPID =%d (Calculate PID from shower/tof/tracking parameters, on/off) \n",fRecalculateCaloPID) ;
parList+=onePar ;
- sprintf(onePar,"fInputAODName =%s Input AOD name \n",fInputAODName.Data()) ;
+ snprintf(onePar,buffersize,"fInputAODName =%s Input AOD name \n",fInputAODName.Data()) ;
parList+=onePar ;
if(fNewAOD){
- sprintf(onePar,"fOutputAODName =%s Output AOD name \n",fOutputAODName.Data()) ;
+ snprintf(onePar,buffersize,"fOutputAODName =%s Output AOD name \n",fOutputAODName.Data()) ;
+ parList+=onePar ;
+ snprintf(onePar,buffersize,"fOutputAODClassName =%s Output AOD class name \n",fOutputAODClassName.Data()) ;
parList+=onePar ;
- sprintf(onePar,"fOutputAODClassName =%s Output AOD class name \n",fOutputAODClassName.Data()) ;
- parList+=onePar ;
}
- sprintf(onePar,"fAODObjArrayName =%s Reference arrays in AOD name \n",fAODObjArrayName.Data()) ;
+ snprintf(onePar,buffersize,"fAODObjArrayName =%s Reference arrays in AOD name \n",fAODObjArrayName.Data()) ;
parList+=onePar ;
- sprintf(onePar,"fAddToHistogramsName =%s String added to beginning of histograms name \n",fAddToHistogramsName.Data()) ;
+ snprintf(onePar,buffersize,"fAddToHistogramsName =%s String added to beginning of histograms name \n",fAddToHistogramsName.Data()) ;
parList+=onePar ;
return parList;
}
//__________________________________________________
-TNamed * AliAnaPartCorrBaseClass::GetPHOSCells() const {
- //Get list of PHOS calo cells (ESD or AOD) from reader
-
- return fReader->GetPHOSCells();
-
+Int_t AliAnaPartCorrBaseClass::GetEventNumber() const {
+ //Get current event number
+
+ return fReader->GetEventNumber() ;
}
-
//__________________________________________________
-TNamed * AliAnaPartCorrBaseClass::GetEMCALCells() const {
- //Get list of emcal calo cells (ESD or AOD) from reader
+Int_t AliAnaPartCorrBaseClass::GetEventCentrality() const {
+ //Return current event centrality
+
+ if(GetCentrality()){
+ if(fCentralityOpt==100) return (Int_t) GetCentrality()->GetCentralityPercentile(fCentralityClass);
+ else if(fCentralityOpt==10) return GetCentrality()->GetCentralityClass10(fCentralityClass);
+ else if(fCentralityOpt==5) return GetCentrality()->GetCentralityClass5(fCentralityClass);
+ else {
+ printf("AliAnaPartCorrBaseClass::Unknown centrality option %d, use 5, 10 or 100\n",fCentralityOpt);
+ return 0;
+ }
+ }
+ else return 0;
- return fReader->GetEMCALCells();
-
}
-//__________________________________________________
-Int_t AliAnaPartCorrBaseClass::GetEventNumber() const {
- //Get current event number
-
- return fReader->GetEventNumber() ;
-}
//__________________________________________________
AliStack * AliAnaPartCorrBaseClass::GetMCStack() const {
fRecalculateCaloPID = kFALSE ;
fMinPt = 0.1 ; //Min pt in particle analysis
fMaxPt = 300. ; //Max pt in particle analysis
-
- fReader = new AliCaloTrackReader();
- fCaloPID = new AliCaloPID();
- fFidCut = new AliFiducialCut();
- fIC = new AliIsolationCut();
- fMCUtils = new AliMCAnalysisUtils();
- fNMS = new AliNeutralMesonSelection;
+ fMultiBin = 1;
+ fNZvertBin = 1;
+ fNrpBin = 1;
+ fZvtxCut = 10;
+ fMaxMulti = 1000;
+ fMinMulti = 0;
+ fUseSelectEvent = kFALSE ;
- //fAnaOutContainer = new TList();
-
+ //fReader = new AliCaloTrackReader(); //Initialized in maker
+ //fCaloUtils = new AliCalorimeterUtils();//Initialized in maker
+
fNewAOD = kFALSE ;
fOutputAODName = "PartCorr";
fOutputAODClassName = "AliAODPWG4Particle";
fHistoAsymBins = 10 ;
fHistoAsymMax = 1. ;
fHistoAsymMin = 0. ;
+
+ fHistoV0SBins = 100 ;
+ fHistoV0SMax = 10000 ;
+ fHistoV0SMin = 0 ;
+
+ fHistoV0MBins = 100;
+ fHistoV0MMax = 10000 ;
+ fHistoV0MMin = 0 ;
+ fHistoTrMBins = 100 ;
+ fHistoTrMMax = 2000 ;
+ fHistoTrMMin = 0 ;
+
}
//__________________________________________________________________
printf("Recalculate PID = %d\n", fRecalculateCaloPID) ;
printf("Check Fiducial cut = %d\n", fCheckFidCut) ;
printf("Check MC labels = %d\n", fDataMC);
+ printf("Make plots? = %d \n", fMakePlots);
printf("Debug Level = %d\n", fDebug);
printf("Histograms: %3.1f < pT < %3.1f, Nbin = %d\n", fHistoPtMin, fHistoPtMax, fHistoPtBins);
printf("Histograms: %3.1f < phi < %3.1f, Nbin = %d\n", fHistoPhiMin, fHistoPhiMax, fHistoPhiBins);
printf("Histograms: %3.1f < eta < %3.1f, Nbin = %d\n", fHistoEtaMin, fHistoEtaMax, fHistoEtaBins);
printf("Histograms: %3.1f < mass < %3.1f, Nbin = %d\n", fHistoMassMin, fHistoMassMax, fHistoMassBins);
printf("Histograms: %3.1f < asymmetry < %3.1f, Nbin = %d\n", fHistoAsymMin, fHistoAsymMax, fHistoAsymBins);
+ printf("Histograms: %d < V0 Signal < %d, Nbin = %d\n", fHistoV0SMin, fHistoV0SMax, fHistoV0SBins);
+ printf("Histograms: %d < V0 Mult < %d, Nbin = %d\n", fHistoV0MMin, fHistoV0MMax, fHistoV0MBins);
+ printf("Histograms: %d < Track Mult < %d, Nbin = %d\n", fHistoTrMMin, fHistoTrMMax, fHistoTrMBins);
+
printf("Name of reference array : %s\n", fAODObjArrayName.Data());
printf("String added histograms name : %s\n",fAddToHistogramsName.Data());
printf(" \n") ;
}
+
+
+