// Base class for analysis algorithms
//-- Author: Gustavo Conesa (INFN-LNF)
+#include <cstdlib>
+
//ROOT
class TClonesArray ;
class TRefArray ;
//
// -- Author: Gustavo Conesa (INFN-LNF)
+#include <cstdlib>
+
// --- ROOT system ---
#include "TClonesArray.h"
class TString ;
//
// -- Author: Gustavo Conesa (INFN-LNF)
-
#include <cstdlib>
-// root
+
+// --- Root ---
#include <TROOT.h>
#include <TInterpreter.h>
//#include <Riostream.h>
-// analysis
+// --- Analysis ---
#include "AliAnalysisTaskParticleCorrelation.h"
#include "AliAnaPartCorrMaker.h"
#include "AliCaloTrackReader.h"
ClassImp(AliAnalysisTaskParticleCorrelation)
////////////////////////////////////////////////////////////////////////
-
- AliAnalysisTaskParticleCorrelation::AliAnalysisTaskParticleCorrelation():
- AliAnalysisTaskSE(),
- fAna(0x0),
- fOutputContainer(0x0),
- fConfigName(0)
+AliAnalysisTaskParticleCorrelation::AliAnalysisTaskParticleCorrelation():
+ AliAnalysisTaskSE(),
+ fAna(0x0),
+ fOutputContainer(0x0),
+ fConfigName(0)
{
// Default constructor
}
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;
//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
// Initialise analysis
fAna->Init();
- if (fDebug > 1) printf("AliAnalysisTaskParticleCorrelation::Init() - End \n");
+ if (DebugLevel() > 1) printf("AliAnalysisTaskParticleCorrelation::Init() - End\n");
}
{
// 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);
// 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
{
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();
}
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();
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();
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();
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);
#include "TParticle.h"
#include "AliAODCaloCluster.h"
#include "AliVEvent.h"
+#include "AliLog.h"
#ifdef __PHOSGEO__
#include "AliPHOSGeoUtils.h"
{
//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");
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());
}
//===========================================================================
AliAnalysisTaskParticleCorrelation * task = new AliAnalysisTaskParticleCorrelation (analysis);
task->SetConfigFileName(""); //Don't configure the analysis via configuration file.
+ //task->SetDebugLevel(-1);
task->SetAnalysisMaker(maker);
mgr->AddTask(task);
--- /dev/null
+/* $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 ;
+}