From fbeaf9168f3f8cc0ca5df19d7169295b7859f6db Mon Sep 17 00:00:00 2001 From: gconesab Date: Wed, 22 Apr 2009 10:28:23 +0000 Subject: [PATCH] Added the include to cstdlib in several places to avoid compilation problems with abort(); Added to some printfs "\n" when necessary; Example configuration file to execute AliAnaChargedParticles. --- PWG4/PartCorrBase/AliAnaPartCorrBaseClass.h | 2 + PWG4/PartCorrBase/AliAnaPartCorrMaker.cxx | 2 + .../AliAnalysisTaskParticleCorrelation.cxx | 44 ++++----- .../AliAnalysisTaskParticleCorrelation.h | 7 +- PWG4/PartCorrBase/AliCaloTrackAODReader.cxx | 2 +- PWG4/PartCorrBase/AliFidutialCut.cxx | 6 +- .../PartCorrBase/AliNeutralMesonSelection.cxx | 8 +- PWG4/PartCorrDep/AliAnaPi0.cxx | 5 +- PWG4/macros/AddTaskPartCorr.C | 1 + PWG4/macros/ConfigAnalysisChargedParticles.C | 90 +++++++++++++++++++ 10 files changed, 133 insertions(+), 34 deletions(-) create mode 100644 PWG4/macros/ConfigAnalysisChargedParticles.C diff --git a/PWG4/PartCorrBase/AliAnaPartCorrBaseClass.h b/PWG4/PartCorrBase/AliAnaPartCorrBaseClass.h index 7525745c22b..8353cf1a6a8 100755 --- a/PWG4/PartCorrBase/AliAnaPartCorrBaseClass.h +++ b/PWG4/PartCorrBase/AliAnaPartCorrBaseClass.h @@ -8,6 +8,8 @@ // Base class for analysis algorithms //-- Author: Gustavo Conesa (INFN-LNF) +#include + //ROOT class TClonesArray ; class TRefArray ; diff --git a/PWG4/PartCorrBase/AliAnaPartCorrMaker.cxx b/PWG4/PartCorrBase/AliAnaPartCorrMaker.cxx index b1bdc550257..3ddfb0f34fe 100755 --- a/PWG4/PartCorrBase/AliAnaPartCorrMaker.cxx +++ b/PWG4/PartCorrBase/AliAnaPartCorrMaker.cxx @@ -23,6 +23,8 @@ // // -- Author: Gustavo Conesa (INFN-LNF) +#include + // --- ROOT system --- #include "TClonesArray.h" class TString ; diff --git a/PWG4/PartCorrBase/AliAnalysisTaskParticleCorrelation.cxx b/PWG4/PartCorrBase/AliAnalysisTaskParticleCorrelation.cxx index 2ba2f772c63..f478d2ce8c8 100755 --- a/PWG4/PartCorrBase/AliAnalysisTaskParticleCorrelation.cxx +++ b/PWG4/PartCorrBase/AliAnalysisTaskParticleCorrelation.cxx @@ -22,14 +22,14 @@ // // -- Author: Gustavo Conesa (INFN-LNF) - #include -// root + +// --- Root --- #include #include //#include -// analysis +// --- Analysis --- #include "AliAnalysisTaskParticleCorrelation.h" #include "AliAnaPartCorrMaker.h" #include "AliCaloTrackReader.h" @@ -38,12 +38,11 @@ ClassImp(AliAnalysisTaskParticleCorrelation) //////////////////////////////////////////////////////////////////////// - - AliAnalysisTaskParticleCorrelation::AliAnalysisTaskParticleCorrelation(): - AliAnalysisTaskSE(), - fAna(0x0), - fOutputContainer(0x0), - fConfigName(0) +AliAnalysisTaskParticleCorrelation::AliAnalysisTaskParticleCorrelation(): + AliAnalysisTaskSE(), + fAna(0x0), + fOutputContainer(0x0), + fConfigName(0) { // Default constructor } @@ -77,7 +76,7 @@ AliAnalysisTaskParticleCorrelation::~AliAnalysisTaskParticleCorrelation() void AliAnalysisTaskParticleCorrelation::UserCreateOutputObjects() { // Create the output container - if (fDebug > 1) printf("AliAnalysisTaskParticleCorrelation::CreateOutputData() - Begin \n"); + if (DebugLevel() > 1) printf("AliAnalysisTaskParticleCorrelation::UserCreateOutputObjects() - Begin\n"); //Get list of aod arrays, add each aod array to analysis frame TClonesArray * array = 0; @@ -90,27 +89,27 @@ void AliAnalysisTaskParticleCorrelation::UserCreateOutputObjects() //Histograms container OpenFile(1); fOutputContainer = fAna->GetOutputContainer(); - if (fDebug > 1) printf("AliAnalysisTaskParticleCorrelation::CreateOutputData() - End \n"); + if (DebugLevel() > 1) printf("AliAnalysisTaskParticleCorrelation::UserCreateOutputObjects() - End\n"); } //_____________________________________________________ void AliAnalysisTaskParticleCorrelation::Init() { // Initialization - - if (fDebug > 1) printf("AliAnalysisTaskParticleCorrelation::Init() - Begin \n"); + + if (DebugLevel() > 1) printf("AliAnalysisTaskParticleCorrelation::Init() - Begin\n"); // Call configuration file if specified if (fConfigName.Length()) { - printf("AliAnalysisTaskParticleCorrelation::Init() - ### Configuration file is %s.C ###", fConfigName.Data()); + printf("AliAnalysisTaskParticleCorrelation::Init() - ### Configuration file is %s.C ###\n", fConfigName.Data()); gROOT->LoadMacro(fConfigName+".C"); fAna = (AliAnaPartCorrMaker*) gInterpreter->ProcessLine("ConfigAnalysis()"); } - if(!fAna){ - printf("AliAnalysisTaskParticleCorrelation::Init() Analysis maker pointer not initialized, no analysis specified, abort analysis!\n"); - abort(); + if(!fAna) { + printf("AliAnalysisTaskParticleCorrelation::Init() - Analysis maker pointer not initialized, no analysis specified, STOP!\n"); + abort(); } // Add different generator particles to PDG Data Base @@ -120,7 +119,7 @@ void AliAnalysisTaskParticleCorrelation::Init() // Initialise analysis fAna->Init(); - if (fDebug > 1) printf("AliAnalysisTaskParticleCorrelation::Init() - End \n"); + if (DebugLevel() > 1) printf("AliAnalysisTaskParticleCorrelation::Init() - End\n"); } @@ -130,21 +129,22 @@ void AliAnalysisTaskParticleCorrelation::UserExec(Option_t */*option*/) { // Execute analysis for current event // - if (fDebug > 1) printf("AliAnalysisTaskParticleCorrelation::Exec() - Begin \n"); + if (DebugLevel() > 1) printf("AliAnalysisTaskParticleCorrelation::UserExec() - Begin\n"); - //Get the type of data, check if type is correct + //Get the type of data, check if type is correct Int_t datatype = fAna->GetReader()->GetDataType(); if(datatype != AliCaloTrackReader::kESD && datatype != AliCaloTrackReader::kAOD && datatype != AliCaloTrackReader::kMC){ - printf("AliAnalysisTaskParticleCorrelation::Exec() - Wrong type of data\n"); + printf("AliAnalysisTaskParticleCorrelation::UserExec() - Wrong type of data\n"); return ; } + fAna->GetReader()->SetInputOutputMCEvent(InputEvent(), AODEvent(), MCEvent()); //Process event fAna->ProcessEvent((Int_t) Entry()); - if (fDebug > 1) printf("AliAnalysisTaskParticleCorrelation::Exec() - End \n"); + if (DebugLevel() > 1) printf("AliAnalysisTaskParticleCorrelation::UserExec() - End\n"); PostData(1, fOutputContainer); diff --git a/PWG4/PartCorrBase/AliAnalysisTaskParticleCorrelation.h b/PWG4/PartCorrBase/AliAnalysisTaskParticleCorrelation.h index 942ecfd92b7..595ff7f002e 100755 --- a/PWG4/PartCorrBase/AliAnalysisTaskParticleCorrelation.h +++ b/PWG4/PartCorrBase/AliAnalysisTaskParticleCorrelation.h @@ -11,12 +11,15 @@ // Input of this task is a configuration file that contains all the settings of the analyis // // -- Author: Gustavo Conesa (INFN-LNF) - + +//--- Root --- +class TList; + +//--- AliRoot --- #include "AliAnalysisTaskSE.h" class AliAnaPartCorrMaker; class AliESDEvent; class AliAODEvent; -class TList; class AliAnalysisTaskParticleCorrelation : public AliAnalysisTaskSE { diff --git a/PWG4/PartCorrBase/AliCaloTrackAODReader.cxx b/PWG4/PartCorrBase/AliCaloTrackAODReader.cxx index 161ad92e27f..f85de428af0 100755 --- a/PWG4/PartCorrBase/AliCaloTrackAODReader.cxx +++ b/PWG4/PartCorrBase/AliCaloTrackAODReader.cxx @@ -223,7 +223,7 @@ void AliCaloTrackAODReader::SetInputOutputMCEvent(AliVEvent* input, AliAODEvent* SetOutputEvent(aod); } else{ - printf("AliCaloTrackAODReader::SetInputOutputMCEvent() - ABORT::Unknown data format: %s",input->GetName()); + printf("AliCaloTrackAODReader::SetInputOutputMCEvent() - ABORT::Unknown data format: %s\n",input->GetName()); abort(); } diff --git a/PWG4/PartCorrBase/AliFidutialCut.cxx b/PWG4/PartCorrBase/AliFidutialCut.cxx index fb725e75b52..0079eee2045 100755 --- a/PWG4/PartCorrBase/AliFidutialCut.cxx +++ b/PWG4/PartCorrBase/AliFidutialCut.cxx @@ -143,7 +143,7 @@ Bool_t AliFidutialCut::IsInFidutialCut(TLorentzVector momentum, TString det) con netaregions = fCTSFidCutMaxEta->GetSize(); nphiregions = fCTSFidCutMaxPhi->GetSize(); if(netaregions != fCTSFidCutMinEta->GetSize() || nphiregions != fCTSFidCutMinPhi->GetSize()) - printf("AliFidutialCut::IsInFidutialCut() - Wrong number of CTS fidutial cut regions: nmaxeta %d != nmineta %d; nmaxphi %d != nminphi %d", + printf("AliFidutialCut::IsInFidutialCut() - Wrong number of CTS fidutial cut regions: nmaxeta %d != nmineta %d; nmaxphi %d != nminphi %d\n", netaregions, fCTSFidCutMinEta->GetSize(), nphiregions, fCTSFidCutMinPhi->GetSize()); maxeta = fCTSFidCutMaxEta->GetArray(); @@ -156,7 +156,7 @@ Bool_t AliFidutialCut::IsInFidutialCut(TLorentzVector momentum, TString det) con netaregions = fEMCALFidCutMaxEta->GetSize(); nphiregions = fEMCALFidCutMaxPhi->GetSize(); if(netaregions != fEMCALFidCutMinEta->GetSize() || nphiregions != fEMCALFidCutMinPhi->GetSize()) - printf("AliFidutialCut::IsInFidutialCut() - Wrong number of EMCAL fidutial cut regions: nmaxeta %d != nmineta %d; nmaxphi %d != nminphi %d", + printf("AliFidutialCut::IsInFidutialCut() - Wrong number of EMCAL fidutial cut regions: nmaxeta %d != nmineta %d; nmaxphi %d != nminphi %d\n", netaregions, fEMCALFidCutMinEta->GetSize(), nphiregions, fEMCALFidCutMinPhi->GetSize()); maxeta = fEMCALFidCutMaxEta->GetArray(); @@ -169,7 +169,7 @@ Bool_t AliFidutialCut::IsInFidutialCut(TLorentzVector momentum, TString det) con netaregions = fPHOSFidCutMaxEta->GetSize(); nphiregions = fPHOSFidCutMaxPhi->GetSize(); if(netaregions != fPHOSFidCutMinEta->GetSize() || nphiregions != fPHOSFidCutMinPhi->GetSize()) - printf("AliFidutialCut::IsInFidutialCut() - Wrong number of PHOS fidutial cut regions: nmaxeta %d != nmineta %d; nmaxphi %d != nminphi %d", + printf("AliFidutialCut::IsInFidutialCut() - Wrong number of PHOS fidutial cut regions: nmaxeta %d != nmineta %d; nmaxphi %d != nminphi %d\n", netaregions, fPHOSFidCutMinEta->GetSize(), nphiregions, fPHOSFidCutMinPhi->GetSize()); maxeta = fPHOSFidCutMaxEta->GetArray(); diff --git a/PWG4/PartCorrBase/AliNeutralMesonSelection.cxx b/PWG4/PartCorrBase/AliNeutralMesonSelection.cxx index 0613b5356a4..973c786af22 100755 --- a/PWG4/PartCorrBase/AliNeutralMesonSelection.cxx +++ b/PWG4/PartCorrBase/AliNeutralMesonSelection.cxx @@ -293,10 +293,10 @@ void AliNeutralMesonSelection::Print(const Option_t * opt) const printf("mass : %f \n", fM ); printf("Invariant mass limits : %f < m < %f \n", fInvMassMinCut , fInvMassMinCut ); printf("Angle selection param: \n"); - printf("p0 : %f", fAngleMaxParam.At(0)); - printf("p1 : %f", fAngleMaxParam.At(1)); - printf("p2 : %f", fAngleMaxParam.At(2)); - printf("p3 : %f", fAngleMaxParam.At(3)); + printf("p0 : %f\n", fAngleMaxParam.At(0)); + printf("p1 : %f\n", fAngleMaxParam.At(1)); + printf("p2 : %f\n", fAngleMaxParam.At(2)); + printf("p3 : %f\n", fAngleMaxParam.At(3)); printf("Keep Neutral Meson Histos = %d\n",fKeepNeutralMesonHistos); diff --git a/PWG4/PartCorrDep/AliAnaPi0.cxx b/PWG4/PartCorrDep/AliAnaPi0.cxx index 14955b85fc8..5275d229b74 100755 --- a/PWG4/PartCorrDep/AliAnaPi0.cxx +++ b/PWG4/PartCorrDep/AliAnaPi0.cxx @@ -42,6 +42,7 @@ #include "TParticle.h" #include "AliAODCaloCluster.h" #include "AliVEvent.h" +#include "AliLog.h" #ifdef __PHOSGEO__ #include "AliPHOSGeoUtils.h" @@ -482,7 +483,7 @@ void AliAnaPi0::Terminate() { //Do some calculations and plots from the final histograms. - printf(" *** %s Terminate:", GetName()) ; + printf(" *** %s Terminate:\n", GetName()) ; if (!fhRe1) { Error("Terminate", "Remote output histograms not imported in AliAnaPi0 object"); @@ -571,7 +572,7 @@ void AliAnaPi0::Terminate() sprintf(line, ".!rm -fR *.eps"); gROOT->ProcessLine(line); - printf("!! All the eps files are in %s.tar.gz !!!", GetName()); + printf("!! All the eps files are in %s.tar.gz !!!\n", GetName()); } diff --git a/PWG4/macros/AddTaskPartCorr.C b/PWG4/macros/AddTaskPartCorr.C index 952b881ec35..00c61fdb7a4 100644 --- a/PWG4/macros/AddTaskPartCorr.C +++ b/PWG4/macros/AddTaskPartCorr.C @@ -47,6 +47,7 @@ AliAnalysisTaskParticleCorrelation *AddTaskPartCorr(Char_t * analysis, TString d //=========================================================================== AliAnalysisTaskParticleCorrelation * task = new AliAnalysisTaskParticleCorrelation (analysis); task->SetConfigFileName(""); //Don't configure the analysis via configuration file. + //task->SetDebugLevel(-1); task->SetAnalysisMaker(maker); mgr->AddTask(task); diff --git a/PWG4/macros/ConfigAnalysisChargedParticles.C b/PWG4/macros/ConfigAnalysisChargedParticles.C new file mode 100644 index 00000000000..c94689de1e3 --- /dev/null +++ b/PWG4/macros/ConfigAnalysisChargedParticles.C @@ -0,0 +1,90 @@ +/* $Id: $ */ +/* $Log$ */ + +//------------------------------------ +// Configuration macro example: +// +// Do some track selection, for input of correlation analysis. +// +// Author : Gustavo Conesa Balbastre (INFN-LNF) +//------------------------------------ + +AliAnaPartCorrMaker* ConfigAnalysis() +{ + // + // Configuration goes here + // + printf("======================== \n"); + printf("ConfigAnalysis() \n"); + printf("======================== \n"); + + + //Detector Fidutial Cuts + AliFidutialCut * fidCut = new AliFidutialCut(); + fidCut->DoCTSFidutialCut(kTRUE) ; + fidCut->DoEMCALFidutialCut(kFALSE) ; + fidCut->DoPHOSFidutialCut(kFALSE) ; + + fidCut->SetSimpleCTSFidutialCut(0.9,0.,360.); + fidCut->Print(""); + + + //----------------------------------------------------------- + // Reader + //----------------------------------------------------------- + AliCaloTrackESDReader *reader = new AliCaloTrackESDReader(); + reader->SetDebug(-1);//10 for lots of messages + + //Switch on or off the detectors information that you want + reader->SwitchOffEMCAL(); + reader->SwitchOffPHOS(); + reader->SwitchOnCTS(); //We want only tracks + + //Min particle pT + reader->SetCTSPtMin(0.2); + + //Uncomment only with MCReader +// TArrayI statusArray(1) ; +// statusArray.SetAt(1,0); +// reader->AddStatusArray(statusArray) ; +// reader->SwitchOnStatusSelection() ; + + reader->SetFidutialCut(fidCut); + + reader->Print(""); + + + //--------------------------------------------------------------------- + // Analysis algorithm + //--------------------------------------------------------------------- + + AliAnaChargedParticles *anatrack = new AliAnaChargedParticles(); + anatrack->SetDebug(-1);//10 for lots of messages + anatrack->SetMinPt(5.); + anatrack->SetOutputAODName("Charged"); + anatrack->SwitchOffFidutialCut(); + anatrack->SetOutputAODClassName("AliAODPWG4ParticleCorrelation"); + anatrack->SwitchOnDataMC() ;//Access MC stack and fill more histograms + //Set Histrograms bins and ranges +// anatrack->SetHistoPtRangeAndNBins(0, 50, 100) ; +// anatrack->SetHistoPhiRangeAndNBins(0, TMath::TwoPi(), 100) ; +// anatrack->SetHistoEtaRangeAndNBins(-0.7, 0.7, 100) ; + anatrack->Print(""); + + //--------------------------------------------------------------------- + // Set analysis algorithm and reader + //--------------------------------------------------------------------- + maker = new AliAnaPartCorrMaker(); + maker->SetReader(reader);//pointer to reader + maker->AddAnalysis(anatrack,0); + maker->SetAnaDebug(-1) ; + maker->SwitchOnHistogramsMaker() ; + maker->SwitchOnAODsMaker() ; + + maker->Print(""); + // + printf("======================== \n"); + printf("END ConfigAnalysis() \n"); + printf("======================== \n"); + return maker ; +} -- 2.39.3