**************************************************************************/
/* $Id: $ */
-/* History of cvs commits:
- *
- * $Log$
- *
- */
-
//_________________________________________________________________________
// Example class on how to read AODCaloClusters, ESDCaloCells and AODTracks and how
// fill AODs with PWG4PartCorr analysis frame
//____________________________________________________________________________
AliAnaExample::AliAnaExample() :
- AliAnaBaseClass(),fPdg(0), fDetector(""), fhPt(0),fhPhi(0),fhEta(0), fh2Pt(0),fh2Phi(0),fh2Eta(0),
+ AliAnaPartCorrBaseClass(),fPdg(0), fDetector(""), fhPt(0),fhPhi(0),fhEta(0), fh2Pt(0),fh2Phi(0),fh2Eta(0),
fhNCells(0), fhAmplitude(0)
{
//Default Ctor
//____________________________________________________________________________
AliAnaExample::AliAnaExample(const AliAnaExample & ex) :
- AliAnaBaseClass(ex), fPdg(ex.fPdg), fDetector(ex.fDetector), fhPt(ex.fhPt), fhPhi(ex.fhPhi),fhEta(ex.fhEta),
+ AliAnaPartCorrBaseClass(ex), fPdg(ex.fPdg), fDetector(ex.fDetector), fhPt(ex.fhPt), fhPhi(ex.fhPhi),fhEta(ex.fhEta),
fh2Pt(ex.fh2Pt), fh2Phi(ex.fh2Phi),fh2Eta(ex.fh2Eta), fhNCells(ex.fhNCells), fhAmplitude(ex.fhAmplitude)
{
// cpy ctor
// assignment operator
if(this == &ex)return *this;
- ((AliAnaBaseClass *)this)->operator=(ex);
+ ((AliAnaPartCorrBaseClass *)this)->operator=(ex);
fPdg = ex.fPdg;
fDetector = ex.fDetector;
fhEta->SetXTitle("#eta ");
outputContainer->Add(fhEta);
- //Calo cells
- fhNCells = new TH1F ("hNCells","# cells per event", 100,0,1000);
- fhNCells->SetXTitle("n cells");
- outputContainer->Add(fhNCells);
-
- fhAmplitude = new TH1F ("hAmplitude","#eta distribution", 100,0,1000);
- fhAmplitude->SetXTitle("Amplitude ");
- outputContainer->Add(fhAmplitude);
-
- if(IsDataMC()){
- fh2Pt = new TH2F ("h2Pt","p_T distribution, reconstructed vs generated", 100,0,100,100,0,100);
- fh2Pt->SetXTitle("p_{T,rec} (GeV/c)");
- fh2Pt->SetYTitle("p_{T,gen} (GeV/c)");
- outputContainer->Add(fh2Pt);
-
- fh2Phi = new TH2F ("h2Phi","#phi distribution, reconstructed vs generated", 100,0,TMath::TwoPi(), 100,0,TMath::TwoPi());
- fh2Phi->SetXTitle("#phi_{rec} (rad)");
- fh2Phi->SetYTitle("#phi_{gen} (rad)");
- outputContainer->Add(fh2Phi);
-
- fh2Eta = new TH2F ("h2Eta","#eta distribution, reconstructed vs generated", 100,-1,1,100,-1,1);
- fh2Eta->SetXTitle("#eta_{rec} ");
- fh2Eta->SetYTitle("#eta_{gen} ");
- outputContainer->Add(fh2Eta);
- }
- return outputContainer;
+ if(GetReader()->GetDataType()!= AliCaloTrackReader::kMC) {
+ //Calo cells
+ fhNCells = new TH1F ("hNCells","# cells per event", 100,0,1000);
+ fhNCells->SetXTitle("n cells");
+ outputContainer->Add(fhNCells);
+
+ fhAmplitude = new TH1F ("hAmplitude","#eta distribution", 100,0,1000);
+ fhAmplitude->SetXTitle("Amplitude ");
+ outputContainer->Add(fhAmplitude);
+ }
+
+ if(IsDataMC()){
+ fh2Pt = new TH2F ("h2Pt","p_T distribution, reconstructed vs generated", 100,0,100,100,0,100);
+ fh2Pt->SetXTitle("p_{T,rec} (GeV/c)");
+ fh2Pt->SetYTitle("p_{T,gen} (GeV/c)");
+ outputContainer->Add(fh2Pt);
+
+ fh2Phi = new TH2F ("h2Phi","#phi distribution, reconstructed vs generated", 100,0,TMath::TwoPi(), 100,0,TMath::TwoPi());
+ fh2Phi->SetXTitle("#phi_{rec} (rad)");
+ fh2Phi->SetYTitle("#phi_{gen} (rad)");
+ outputContainer->Add(fh2Phi);
+
+ fh2Eta = new TH2F ("h2Eta","#eta distribution, reconstructed vs generated", 100,-1,1,100,-1,1);
+ fh2Eta->SetXTitle("#eta_{rec} ");
+ fh2Eta->SetYTitle("#eta_{gen} ");
+ outputContainer->Add(fh2Eta);
+
+ }
+ return outputContainer;
}
//__________________________________________________
if(fDetector == "EMCAL" || fDetector == "PHOS"){
//WORK WITH CALOCLUSTERS
+ if(GetReader()->GetDataType()!= AliCaloTrackReader::kMC)
ConnectAODCaloClusters(); //Do Only when filling AODCaloClusters
if(GetDebug() > 0) printf("Example: in calo clusters aod entries %d\n", GetAODCaloClusters()->GetEntries());
AliAODCaloCluster * calo = dynamic_cast<AliAODCaloCluster*> (partList->At(i));
- //Fill AODCaloClusters
- AddAODCaloCluster(AliAODCaloCluster(*(calo)));
+ //Fill AODCaloClusters
+ if(GetReader()->GetDataType()!= AliCaloTrackReader::kMC)
+ AddAODCaloCluster(AliAODCaloCluster(*(calo)));
//Fill AODParticleCorrelation after some selection
calo->GetMomentum(mom,v);
- Int_t pdg = 0;
+ Int_t pdg = fPdg;
+
if(IsCaloPIDOn()){
Double_t pid[13];
calo->GetPID(pid);
pdg = GetCaloPID()->GetPdg(fDetector,pid,mom.E());
+ cout<<"PDG "<<pdg<<endl;
//pdg = GetCaloPID()->GetPdg(fDetector,mom,
// calo->GetM02(), calo->GetM02(),
// calo->GetDispersion(), 0, 0);
}//selection
}//loop
+ if(GetReader()->GetDataType()!= AliCaloTrackReader::kMC) {
//WORK WITH ESDCALOCELLS
//Don't connect in the same analysis PHOS and EMCAL cells.
+
AliESDCaloCells * esdCell = new AliESDCaloCells ;
if(fDetector == "PHOS") {
ConnectAODPHOSCells(); //Do Only when filling AODCaloCells
GetAODCaloCells()->SetCell(iCell,esdCell->GetCellNumber(iCell),esdCell->GetAmplitude(iCell));
}
GetAODCaloCells()->Sort();
-
+ }
}//cluster-cell analysis
else if(fDetector == "CTS"){ //Track analysis
//Fill AODParticleCorrelation with CTS aods
}// aod branch loop
// CaloCells histograms
- if(GetAODCaloCells()){
-
- Int_t ncells = GetAODCaloCells()->GetNumberOfCells();
- fhNCells->Fill(ncells) ;
-
- for (Int_t iCell = 0; iCell < ncells; iCell++) {
- if(GetDebug() > 2) printf("cell : amp %f, absId %d \n", GetAODCaloCells()->GetAmplitude(iCell), GetAODCaloCells()->GetCellNumber(iCell));
- fhAmplitude->Fill(GetAODCaloCells()->GetAmplitude(iCell));
- }
- }//calo cells container exist
+ if(GetReader()->GetDataType()!= AliCaloTrackReader::kMC) {
+ if(GetAODCaloCells()){
+
+ Int_t ncells = GetAODCaloCells()->GetNumberOfCells();
+ fhNCells->Fill(ncells) ;
+
+ for (Int_t iCell = 0; iCell < ncells; iCell++) {
+ if(GetDebug() > 2) printf("cell : amp %f, absId %d \n", GetAODCaloCells()->GetAmplitude(iCell), GetAODCaloCells()->GetCellNumber(iCell));
+ fhAmplitude->Fill(GetAODCaloCells()->GetAmplitude(iCell));
+ }
+ }//calo cells container exist
+ }
}
* See cxx source for full Copyright notice */
/* $Id: $ */
-/* History of cvs commits:
- *
- * $Log$
-
- *
- */
-
//_________________________________________________________________________
// Example class on how to read AODCaloClusters, ESDCaloCells and AODTracks and how
// fill AODs with PWG4PartCorr analysis frame
class TH1F ;
-#include "AliAnaBaseClass.h"
+#include "AliAnaPartCorrBaseClass.h"
-class AliAnaExample : public AliAnaBaseClass {
+class AliAnaExample : public AliAnaPartCorrBaseClass {
public:
**************************************************************************/
/* $Id$ */
-/* History of cvs commits:
- *
- * $Log$
- * Revision 1.9 2007/11/17 16:39:49 gustavo
- * removed deleting of not owned data and deleting of histograms which are exported to the output file (MG)
- *
- * Revision 1.8 2007/10/29 13:48:42 gustavo
- * Corrected coding violations
- *
- * Revision 1.6 2007/08/17 12:40:04 schutz
- * New analysis classes by Gustavo Conesa
- *
- * Revision 1.4.4.4 2007/07/26 10:32:09 schutz
- * new analysis classes in the the new analysis framework
- *
- *
- */
-
//_________________________________________________________________________
// Class for the prompt gamma analysis, isolation cut
//
//____________________________________________________________________________
AliAnaGammaDirect::AliAnaGammaDirect() :
- AliAnaBaseClass(), fDetector(""), fMakeIC(0), fReMakeIC(0),
+ AliAnaPartCorrBaseClass(), fDetector(""), fMakeIC(0), fReMakeIC(0),
fMakeSeveralIC(0), fMakeInvMass(0),
fhPtGamma(0),fhPhiGamma(0),fhEtaGamma(0), fhConeSumPt(0),
//Several IC
//____________________________________________________________________________
AliAnaGammaDirect::AliAnaGammaDirect(const AliAnaGammaDirect & g) :
- AliAnaBaseClass(g), fDetector(g.fDetector),
+ AliAnaPartCorrBaseClass(g), fDetector(g.fDetector),
fMakeIC(g.fMakeIC), fReMakeIC(g.fReMakeIC),
fMakeSeveralIC(g.fMakeSeveralIC), fMakeInvMass(g.fMakeInvMass),
fhPtGamma(g.fhPtGamma),fhPhiGamma(g.fhPhiGamma),
* See cxx source for full Copyright notice */
/* $Id$ */
-/* History of cvs commits:
- *
- * $Log$
- * Revision 1.5 2007/08/17 12:40:04 schutz
- * New analysis classes by Gustavo Conesa
- *
- * Revision 1.4.4.3 2007/07/26 10:32:09 schutz
- * new analysis classes in the the new analysis framework
- *
- *
- */
-
//_________________________________________________________________________
// Class for the analysis of prompt gamma, isolation cut.
#include <TString.h>
// --- ANALYSIS system ---
-#include "AliAnaBaseClass.h"
+#include "AliAnaPartCorrBaseClass.h"
class AliAODParticleCorrelations ;
class TList ;
-class AliAnaGammaDirect : public AliAnaBaseClass {
+class AliAnaGammaDirect : public AliAnaPartCorrBaseClass {
public:
**************************************************************************/
/* $Id: $ */
-/* History of cvs commits:
- *
- * $Log$
- *
- */
//_________________________________________________________________________
// Base class for analysis algorithms
//-- Author: Gustavo Conesa (LNF-INFN)
#include "AliAODCaloCluster.h"
#include "AliAODCaloCells.h"
#include "AliAODTrack.h"
-#include "AliAnaBaseClass.h"
+#include "AliAnaPartCorrBaseClass.h"
#include "AliCaloTrackReader.h"
#include "AliFidutialCut.h"
#include "AliIsolationCut.h"
// #include "AliHeader.h"
// #include "AliGenEventHeader.h"
-ClassImp(AliAnaBaseClass)
+ClassImp(AliAnaPartCorrBaseClass)
//_______________________________________________
- AliAnaBaseClass::AliAnaBaseClass() :
+ AliAnaPartCorrBaseClass::AliAnaPartCorrBaseClass() :
TObject(), fDataMC(0), fDebug(0), fCheckFidCut(0),
fCheckCaloPID(0), fRecalculateCaloPID(0), fMinPt(0), fMaxPt(0),
fReader(0x0), fAODBranch(0x0), fAODCaloClusters(0x0), fAODCaloCells(0x0),
}
//___________________________________________________________
-AliAnaBaseClass::AliAnaBaseClass(const AliAnaBaseClass & abc) :
+AliAnaPartCorrBaseClass::AliAnaPartCorrBaseClass(const AliAnaPartCorrBaseClass & abc) :
TObject(), fDataMC(abc.fDataMC), fDebug(abc.fDebug),
fCheckFidCut(abc.fCheckFidCut), fCheckCaloPID(abc. fCheckCaloPID),
fRecalculateCaloPID(abc.fRecalculateCaloPID),
}
//_________________________________________________________________________
-AliAnaBaseClass & AliAnaBaseClass::operator = (const AliAnaBaseClass & abc)
+AliAnaPartCorrBaseClass & AliAnaPartCorrBaseClass::operator = (const AliAnaPartCorrBaseClass & abc)
{
// assignment operator
}
//____________________________________________________________________________
-AliAnaBaseClass::~AliAnaBaseClass()
+AliAnaPartCorrBaseClass::~AliAnaPartCorrBaseClass()
{
// Remove all pointers except analysis output pointers.
}
//____________________________________________________________________________
-void AliAnaBaseClass::AddAODCaloCluster(AliAODCaloCluster calo) {
+void AliAnaPartCorrBaseClass::AddAODCaloCluster(AliAODCaloCluster calo) {
//Put AOD calo cluster in the CaloClusters array
Int_t i = fAODCaloClusters->GetEntries();
}
//____________________________________________________________________________
-void AliAnaBaseClass::AddAODParticleCorrelation(AliAODParticleCorrelation pc) {
+void AliAnaPartCorrBaseClass::AddAODParticleCorrelation(AliAODParticleCorrelation pc) {
//Put AOD calo cluster in the AODParticleCorrelation array
Int_t i = fAODBranch->GetEntries();
}
//___________________________________________________
-void AliAnaBaseClass::ConnectAODCaloClusters() {
+void AliAnaPartCorrBaseClass::ConnectAODCaloClusters() {
//Recover the list of AODCaloClusters
fAODCaloClusters = fReader->GetAOD()->GetCaloClusters();
}
//___________________________________________________
-void AliAnaBaseClass::ConnectAODPHOSCells() {
+void AliAnaPartCorrBaseClass::ConnectAODPHOSCells() {
//Recover the list of PHOS AODCaloCells
fAODCaloCells = fReader->GetAOD()->GetPHOSCells();
}
//___________________________________________________
-void AliAnaBaseClass::ConnectAODEMCALCells() {
+void AliAnaPartCorrBaseClass::ConnectAODEMCALCells() {
//Recover the list of EMCAL AODCaloCells
fAODCaloCells = fReader->GetAOD()->GetEMCALCells();
}
//__________________________________________________
-TClonesArray * AliAnaBaseClass::GetAODCTS() const {
+TClonesArray * AliAnaPartCorrBaseClass::GetAODCTS() const {
//Get list of tracks from reader
return fReader->GetAODCTS();
}
//__________________________________________________
-TClonesArray * AliAnaBaseClass::GetAODPHOS() const {
+TClonesArray * AliAnaPartCorrBaseClass::GetAODPHOS() const {
//Get list of PHOS calo clusters from reader
return fReader->GetAODPHOS();
//__________________________________________________
-TClonesArray * AliAnaBaseClass::GetAODEMCAL() const {
+TClonesArray * AliAnaPartCorrBaseClass::GetAODEMCAL() const {
//Get list of emcal caloclusters from reader
return fReader->GetAODEMCAL();
}
//__________________________________________________
-TNamed * AliAnaBaseClass::GetPHOSCells() const {
+TNamed * AliAnaPartCorrBaseClass::GetPHOSCells() const {
//Get list of PHOS calo cells (ESD or AOD) from reader
return fReader->GetPHOSCells();
//__________________________________________________
-TNamed * AliAnaBaseClass::GetEMCALCells() const {
+TNamed * AliAnaPartCorrBaseClass::GetEMCALCells() const {
//Get list of emcal calo cells (ESD or AOD) from reader
return fReader->GetEMCALCells();
}
//__________________________________________________
-AliStack * AliAnaBaseClass::GetMCStack() const {
+AliStack * AliAnaPartCorrBaseClass::GetMCStack() const {
//Get stack pointer from reader
return fReader->GetStack();
}
//__________________________________________________
-AliHeader * AliAnaBaseClass::GetMCHeader() const {
+AliHeader * AliAnaPartCorrBaseClass::GetMCHeader() const {
//Get header pointer from reader
return fReader->GetHeader();
}
//__________________________________________________
-AliGenEventHeader * AliAnaBaseClass::GetMCGenEventHeader() const {
+AliGenEventHeader * AliAnaPartCorrBaseClass::GetMCGenEventHeader() const {
//Get GenEventHeader pointer from reader
return fReader->GetGenEventHeader();
}
-void AliAnaBaseClass::InitParameters()
+void AliAnaPartCorrBaseClass::InitParameters()
{
//Initialize the parameters of the analysis.
fDataMC = kFALSE;
fCheckCaloPID = kTRUE ;
fCheckFidCut = kFALSE ;
fRecalculateCaloPID = kFALSE ;
- fMinPt = 2. ; //Min pt in particle analysis
+ fMinPt = 0.2 ; //Min pt in particle analysis
fMaxPt = 300. ; //Max pt in particle analysis
fCaloPID = new AliCaloPID ;
-#ifndef AliAnaBaseClass_H
-#define AliAnaBaseClass_H
+#ifndef AliAnaPartCorrBaseClass_H
+#define AliAnaPartCorrBaseClass_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
/* $Id: $ */
-/* History of cvs commits:
- *
- * $Log$
-
- *
- */
-
//_________________________________________________________________________
// Base class for analysis algorithms
//-- Author: Gustavo Conesa (INFN-LNF)
#include "AliHeader.h"
#include "AliGenEventHeader.h"
-class AliAnaBaseClass : public TObject {
+class AliAnaPartCorrBaseClass : public TObject {
public:
- AliAnaBaseClass() ; // default ctor
- AliAnaBaseClass(const AliAnaBaseClass & g) ; // cpy ctor
- AliAnaBaseClass & operator = (const AliAnaBaseClass & g) ;//cpy assignment
- virtual ~AliAnaBaseClass() ; //virtual dtor
+ AliAnaPartCorrBaseClass() ; // default ctor
+ AliAnaPartCorrBaseClass(const AliAnaPartCorrBaseClass & g) ; // cpy ctor
+ AliAnaPartCorrBaseClass & operator = (const AliAnaPartCorrBaseClass & g) ;//cpy assignment
+ virtual ~AliAnaPartCorrBaseClass() ; //virtual dtor
virtual void AddAODCaloCluster(AliAODCaloCluster calo) ;
virtual void AddAODParticleCorrelation(AliAODParticleCorrelation pc) ;
AliIsolationCut * fIC; // Isolation cut
AliNeutralMesonSelection * fNMS; // Neutral Meson Selection
- ClassDef(AliAnaBaseClass,1)
+ ClassDef(AliAnaPartCorrBaseClass,1)
} ;
-#endif //AliAnaBaseClass_H
+#endif //AliAnaPartCorrBaseClass_H
// It is called by the task class AliAnalysisTaskParticleCorrelation and it connects the input
// (ESD/AOD/MonteCarlo) got with AliCaloTrackReader (produces TClonesArrays of AODs
// (TParticles in MC case if requested)), with the
-// analysis classes that derive from AliAnaBaseClass
+// analysis classes that derive from AliAnaPartCorrBaseClass
//
// -- Author: Gustavo Conesa (INFN-LNF)
#include <TString.h>
//---- AliRoot system ----
-#include "AliAnaBaseClass.h"
-#include "AliAnaMaker.h"
+#include "AliAnaPartCorrBaseClass.h"
+#include "AliAnaPartCorrMaker.h"
#include "AliCaloTrackReader.h"
#include "AliLog.h"
-ClassImp(AliAnaMaker)
+ClassImp(AliAnaPartCorrMaker)
//____________________________________________________________________________
- AliAnaMaker::AliAnaMaker() :
+ AliAnaPartCorrMaker::AliAnaPartCorrMaker() :
TObject(),
fOutputContainer(new TList ), fAnalysisContainer(new TList ),
fMakeHisto(0), fMakeAOD(0), fAnaDebug(0),
}
//____________________________________________________________________________
-AliAnaMaker::AliAnaMaker(const AliAnaMaker & g) :
+AliAnaPartCorrMaker::AliAnaPartCorrMaker(const AliAnaPartCorrMaker & g) :
TObject(),
fOutputContainer(g. fOutputContainer), fAnalysisContainer(g.fAnalysisContainer),
fMakeHisto(g.fMakeHisto), fMakeAOD(fMakeAOD), fAnaDebug(g. fAnaDebug),
}
//_________________________________________________________________________
-AliAnaMaker & AliAnaMaker::operator = (const AliAnaMaker & source)
+AliAnaPartCorrMaker & AliAnaPartCorrMaker::operator = (const AliAnaPartCorrMaker & source)
{
// assignment operator
}
//____________________________________________________________________________
-AliAnaMaker::~AliAnaMaker()
+AliAnaPartCorrMaker::~AliAnaPartCorrMaker()
{
// Remove all pointers.
}
//________________________________________________________________________
-void AliAnaMaker::Init()
+void AliAnaPartCorrMaker::Init()
{
//Init container histograms and other common variables
AliFatal("Analysis job list not initailized");
for(Int_t iana = 0; iana < fAnalysisContainer->GetEntries(); iana++){
- TList * templist = ((AliAnaBaseClass *) fAnalysisContainer->At(iana)) -> GetCreateOutputObjects();
+ TList * templist = ((AliAnaPartCorrBaseClass *) fAnalysisContainer->At(iana)) -> GetCreateOutputObjects();
for(Int_t i = 0; i < templist->GetEntries(); i++)
fOutputContainer->Add(templist->At(i)) ;
}
//____________________________________________________________________________
-void AliAnaMaker::InitParameters()
+void AliAnaPartCorrMaker::InitParameters()
{
//Init data members
}
//__________________________________________________________________
-void AliAnaMaker::Print(const Option_t * opt) const
+void AliAnaPartCorrMaker::Print(const Option_t * opt) const
{
//Print some relevant parameters set for the analysis
//____________________________________________________________________________
-Bool_t AliAnaMaker::ProcessEvent(Int_t iEntry){
+Bool_t AliAnaPartCorrMaker::ProcessEvent(Int_t iEntry){
//Process analysis for this event
if(fMakeHisto && !fOutputContainer)
Int_t nana = fAnalysisContainer->GetEntries() ;
for(Int_t iana = 0; iana < nana; iana++){
- AliAnaBaseClass * ana = ((AliAnaBaseClass *) fAnalysisContainer->At(iana)) ;
+ AliAnaPartCorrBaseClass * ana = ((AliAnaPartCorrBaseClass *) fAnalysisContainer->At(iana)) ;
//Set reader and aod branch for each analysis
ana->SetReader(fReader);
-#ifndef ALIANAMAKER_H
-#define ALIANAMAKER_H
+#ifndef AliAnaPartCorrMaker_H
+#define AliAnaPartCorrMaker_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
/* $Id: $ */
// It is called by the task class AliAnalysisTaskParticleCorrelation and it connects the input
// (ESD/AOD/MonteCarlo) got with AliCaloTrackReader (produces TClonesArrays of AODs
// (TParticles in MC case if requested)), with the
-// analysis classes that derive from AliAnaBaseClass
+// analysis classes that derive from AliAnaPartCorrBaseClass
//
// -- Author: Gustavo Conesa (INFN-LNF)
#include "AliLog.h"
class AliCaloTrackReader ;
-class AliAnaMaker : public TObject {
+class AliAnaPartCorrMaker : public TObject {
public:
- AliAnaMaker() ; // default ctor
- AliAnaMaker(const AliAnaMaker & g) ; // cpy ctor
- AliAnaMaker & operator = (const AliAnaMaker & g) ;//cpy assignment
- virtual ~AliAnaMaker() ; //virtual dtor
+ AliAnaPartCorrMaker() ; // default ctor
+ AliAnaPartCorrMaker(const AliAnaPartCorrMaker & g) ; // cpy ctor
+ AliAnaPartCorrMaker & operator = (const AliAnaPartCorrMaker & g) ;//cpy assignment
+ virtual ~AliAnaPartCorrMaker() ; //virtual dtor
//Setter and getters
TList * GetOutputContainer() const {return fOutputContainer ; }
TClonesArray* fAODBranch ; //! selected particles branch
TString fAODBranchName; // New AOD branch name
- ClassDef(AliAnaMaker,1)
+ ClassDef(AliAnaPartCorrMaker,1)
} ;
-#endif //ALIANAMAKER_H
+#endif //AliAnaPartCorrMaker_H
**************************************************************************/
/* $Id: $ */
-/* History of cvs commits:
- *
- * $Log$
- *
- *
- */
-
//_________________________________________________________________________
// Class for the analysis of particle - hadron correlations
// Particle (for example direct gamma) must be found in a previous analysis
//____________________________________________________________________________
AliAnaParticleHadronCorrelation::AliAnaParticleHadronCorrelation() :
- AliAnaBaseClass(),
+ AliAnaPartCorrBaseClass(),
fDeltaPhiMaxCut(0.), fDeltaPhiMinCut(0.),
fhPhiCharged(0), fhPhiNeutral(0), fhEtaCharged(0), fhEtaNeutral(0),
fhDeltaPhiCharged(0), fhDeltaPhiNeutral(0),
//____________________________________________________________________________
AliAnaParticleHadronCorrelation::AliAnaParticleHadronCorrelation(const AliAnaParticleHadronCorrelation & g) :
- AliAnaBaseClass(g),
+ AliAnaPartCorrBaseClass(g),
fDeltaPhiMaxCut(g.fDeltaPhiMaxCut), fDeltaPhiMinCut(g.fDeltaPhiMinCut),
fhPhiCharged(g.fhPhiCharged), fhPhiNeutral(g.fhPhiNeutral),
fhEtaCharged(g.fhEtaCharged), fhEtaNeutral(g.fhEtaNeutral),
// assignment operator
if(this == &source)return *this;
- ((AliAnaBaseClass *)this)->operator=(source);
+ ((AliAnaPartCorrBaseClass *)this)->operator=(source);
fDeltaPhiMaxCut = source.fDeltaPhiMaxCut ;
fDeltaPhiMinCut = source.fDeltaPhiMinCut ;
* See cxx source for full Copyright notice */
/* $Id: $ */
-/* History of cvs commits:
- *
- * $Log$
- *
- *
- */
-
//_________________________________________________________________________
// Class that contains the algorithm for the analysis of particle - hadron correlations
// Particle (for example direct gamma) must be found in a previous analysis
class TH2F;
// --- Analysis system ---
-#include "AliAnaBaseClass.h"
+#include "AliAnaPartCorrBaseClass.h"
-class AliAnaParticleHadronCorrelation : public AliAnaBaseClass {
+class AliAnaParticleHadronCorrelation : public AliAnaPartCorrBaseClass {
public:
//____________________________________________________________________________
AliAnaParticleJetLeadingConeCorrelation::AliAnaParticleJetLeadingConeCorrelation() :
- AliAnaBaseClass(), fJetsOnlyInCTS(kFALSE), fPbPb(kFALSE),
+ AliAnaPartCorrBaseClass(), fJetsOnlyInCTS(kFALSE), fPbPb(kFALSE),
fSeveralConeAndPtCuts(0), fReMakeJet(0),
fDeltaPhiMaxCut(0.), fDeltaPhiMinCut(0.),
fLeadingRatioMaxCut(0.), fLeadingRatioMinCut(0.),
//____________________________________________________________________________
AliAnaParticleJetLeadingConeCorrelation::AliAnaParticleJetLeadingConeCorrelation(const AliAnaParticleJetLeadingConeCorrelation & jetlc) :
- AliAnaBaseClass(jetlc), fJetsOnlyInCTS(jetlc.fJetsOnlyInCTS), fPbPb(jetlc.fPbPb),
+ AliAnaPartCorrBaseClass(jetlc), fJetsOnlyInCTS(jetlc.fJetsOnlyInCTS), fPbPb(jetlc.fPbPb),
fSeveralConeAndPtCuts(jetlc.fSeveralConeAndPtCuts), fReMakeJet(jetlc. fReMakeJet),
fDeltaPhiMaxCut(jetlc. fDeltaPhiMaxCut), fDeltaPhiMinCut(jetlc.fDeltaPhiMinCut),
fLeadingRatioMaxCut(jetlc.fLeadingRatioMaxCut), fLeadingRatioMinCut(jetlc.fLeadingRatioMinCut),
// assignment operator
if(this == &jetlc)return *this;
- ((AliAnaBaseClass *)this)->operator=(jetlc);
+ ((AliAnaPartCorrBaseClass *)this)->operator=(jetlc);
fSeveralConeAndPtCuts = jetlc.fSeveralConeAndPtCuts ;
fPbPb = jetlc.fPbPb ;
class AliNeutralMesonSelection;
class AliLog;
-#include "AliAnaBaseClass.h"
+#include "AliAnaPartCorrBaseClass.h"
-class AliAnaParticleJetLeadingConeCorrelation : public AliAnaBaseClass {
+class AliAnaParticleJetLeadingConeCorrelation : public AliAnaPartCorrBaseClass {
public:
**************************************************************************/
/* $Id: $ */
-/* History of cvs commits:
- *
- * $Log$
- *
- *
- */
//_________________________________________________________________________
// Class for the analysis of particle-parton correlations
// Particle (for example direct gamma) must be found in a previous analysis
//____________________________________________________________________________
AliAnaParticlePartonCorrelation::AliAnaParticlePartonCorrelation() :
- AliAnaBaseClass(),
+ AliAnaPartCorrBaseClass(),
fhDeltaEtaNearParton(0), fhDeltaPhiNearParton(0),
fhDeltaPtNearParton(0), fhPtRatNearParton(0),
fhDeltaEtaAwayParton(0), fhDeltaPhiAwayParton(0),
//____________________________________________________________________________
AliAnaParticlePartonCorrelation::AliAnaParticlePartonCorrelation(const AliAnaParticlePartonCorrelation & g) :
- AliAnaBaseClass(g),
+ AliAnaPartCorrBaseClass(g),
fhDeltaEtaNearParton(g.fhDeltaEtaNearParton), fhDeltaPhiNearParton(g.fhDeltaPhiNearParton),
fhDeltaPtNearParton(g.fhDeltaPtNearParton), fhPtRatNearParton(g.fhPtRatNearParton),
fhDeltaEtaAwayParton(g.fhDeltaEtaAwayParton), fhDeltaPhiAwayParton(g.fhDeltaPhiAwayParton),
// assignment operator
if(this == &source)return *this;
- ((AliAnaBaseClass *)this)->operator=(source);
+ ((AliAnaPartCorrBaseClass *)this)->operator=(source);
fhDeltaEtaAwayParton = source.fhDeltaEtaAwayParton;
fhDeltaPhiAwayParton = source.fhDeltaPhiAwayParton;
* See cxx source for full Copyright notice */
/* $Id: */
-/* History of cvs commits:
- *
- * $Log$
- *
- *
- */
-
//_________________________________________________________________________
// Class that contains the algorithm for the analysis of particle-parton correlation
// Particle (for example direct gamma) must be found in a previous analysis
class TH2F ;
// --- ANALYSIS ---
-#include "AliAnaBaseClass.h"
+#include "AliAnaPartCorrBaseClass.h"
-class AliAnaParticlePartonCorrelation : public AliAnaBaseClass {
+class AliAnaParticlePartonCorrelation : public AliAnaPartCorrBaseClass {
public:
#include "AliAnaScale.h"
#include "AliAnalysisManager.h"
-#include "AliLog.h"
-#include "Riostream.h"
//______________________________________________________________________________
AliAnaScale::AliAnaScale() :
fDebug(0),
fScale(1.0),
fInputList(0x0),
- fOutputList(0x0)
+ fOutputList(0x0),
+ fSumw2(0),
+ fhCount()
{
//Default constructor
}
fDebug(0),
fScale(1.0),
fInputList(0x0),
- fOutputList(0x0)
+ fOutputList(0x0),
+ fSumw2(0),
+ fhCount(0)
{
// Constructor.
// Called only after the event loop
{
// Initialisation of branch container and histograms
- AliInfo(Form("*** Initialization of %s", GetName())) ;
+ if(fDebug > 1) printf("*** Initialization of %s \n", GetName()) ;
fInputList = dynamic_cast<TList*>(GetInputData(0)) ;
}
//________________________________________________________________________
void AliAnaScale::CreateOutputObjects()
{
// Create the outputs containers
- // Is created in Exec(), because the input must be available
+
+ fOutputList = new TList() ;
+ fOutputList->SetName(GetName()) ;
+
+ fhCount =new TH1F("hCount","count files",1,0,1);
+ fOutputList->Add(fhCount);
}
void AliAnaScale::Exec(Option_t *)
{
// Do the Scaling
-
- fOutputList = new TList() ;
- fOutputList->SetName(GetName()) ;
+
+ if(fDebug > 0 ) printf(">>>>> Scaling factor %e, do Sumw2 %d <<<<< \n",fScale,fSumw2) ;
+
TIter next(fInputList) ;
TObject * h ;
while ( (h = next()) ) {
char name[128] ;
sprintf(name, "%sScaled", h->GetName()) ;
TH1 * hout = dynamic_cast<TH1*> (h->Clone(name)) ;
+
+ if(fSumw2) hout->Sumw2();
hout->Scale(fScale) ;
fOutputList->Add(hout) ;
}
else fOutputList->Add(h) ;
}
}
-
+ // number of files
+
+ //File scaled, needed for file merging on grid
+ fhCount->Fill(0);
+
PostData(0, fOutputList);
}
void AliAnaScale::Init()
{
// Intialisation of parameters
- AliInfo("Doing initialisation") ;
- // nothing to be done
+ if(fDebug > 0 )printf("No initialization in scale class \n") ;
+
}
//______________________________________________________________________________
class TH1D ;
class TH1I ;
+class TH1F ;
class AliAnaScale : public AliAnalysisTask {
void SetDebugLevel(Int_t level) { fDebug = level ; }
virtual void Terminate(Option_t * opt = "") ;
+ void MakeSumw2(Bool_t sum) {fSumw2 = sum;}
+
private:
AliAnaScale(const AliAnaScale&); // Not implemented
AliAnaScale& operator=(const AliAnaScale&); // Not implemented
// Histograms
TList * fInputList ; //! input data list
TList * fOutputList ; //! output data list
-
- ClassDef(AliAnaScale, 1); // a post event loop scaling
+ Bool_t fSumw2; //compute sum of squares of weights for bin content error calculation
+ TH1F * fhCount; //! counter histogram for file merging
+
+ ClassDef(AliAnaScale, 2); // a post event loop scaling
};
#endif // ALIANASCALE_H
#include "AliESDInputHandler.h"
#include "AliMCEventHandler.h"
#include "AliMCEvent.h"
-#include "AliAnaMaker.h"
+#include "AliAnaPartCorrMaker.h"
#include "AliCaloTrackReader.h"
#include "AliESDEvent.h"
#include "AliAODEvent.h"
AliInfo(Form("### Configuration file is %s.C ###", fConfigName.Data()));
gROOT->LoadMacro(fConfigName+".C");
- fAna = (AliAnaMaker*) gInterpreter->ProcessLine("ConfigAnalysis()");
+ fAna = (AliAnaPartCorrMaker*) gInterpreter->ProcessLine("ConfigAnalysis()");
if(!fAna)
AliFatal("Analysis pointer not initialized, abort analysis!");
* See cxx source for full Copyright notice */
#include "AliAnalysisTaskSE.h"
-class AliAnaMaker;
+class AliAnaPartCorrMaker;
class AliESDEvent;
class AliAODEvent;
class TList;
AliAnalysisTaskParticleCorrelation(const AliAnalysisTaskParticleCorrelation&); // Not implemented
AliAnalysisTaskParticleCorrelation& operator=(const AliAnalysisTaskParticleCorrelation&); // Not implemented
- AliAnaMaker* fAna; // Pointer to the jet finder
+ AliAnaPartCorrMaker* fAna; // Pointer to the jet finder
TList * fOutputContainer ; //! Histogram container
TClonesArray * fAODBranch; //! AOD branch
TString fConfigName ; //Configuration file name
**************************************************************************/
/* $Id: AliCaloPID.cxx 21839 2007-10-29 13:49:42Z gustavo $ */
-/* History of cvs commits:
- *
- * $Log$
- *
- *
- */
-
//_________________________________________________________________________
// Class for track/cluster acceptance selection
// Selection in Central barrel, EMCAL and PHOS
* See cxx source for full Copyright notice */
/* $Id: $ */
-/* History of cvs commits:
- *
- * $Log$
- *
- *
- */
-
//_________________________________________________________________________
// Class for track/cluster acceptance selection
// Selection in Central barrel, EMCAL and PHOS
**************************************************************************/
/* $Id: $ */
-/* History of cvs commits:
- *
- * $Log$
- *
- */
-
//_________________________________________________________________________
// Class for reading data (AODs) in order to do prompt gamma
// or other particle identification and correlations
* See cxx source for full Copyright notice */
/* $Id: $ */
-/* History of cvs commits:
- *
- * $Log$
- *
- */
-
//_________________________________________________________________________
// Class for reading data (AODs) in order to do prompt gamma or other particle
// identification and correlations
**************************************************************************/
/* $Id: $ */
-/* History of cvs commits:
- *
- * $Log$
- *
- *
- */
-
//_________________________________________________________________________
// Class for reading data (ESDs) in order to do prompt gamma
// or other particle identification and correlations
* See cxx source for full Copyright notice */
/* $Id: $ */
-/* History of cvs commits:
- *
- * $Log$
- *
- *
- */
-
//_________________________________________________________________________
// Class for reading data (ESDs) in order to do prompt gamma
// or other particle identification and correlations
**************************************************************************/
/* $Id: $ */
-/* History of cvs commits:
- *
- * $Log$
- *
- *
- */
-
//_________________________________________________________________________
// Class for reading data (Kinematics) in order to do prompt gamma
// or other particle identification and correlations
fStatusArray = new TArrayI(1);
fStatusArray->SetAt(1,0);
- fKeepAllStatus = kFALSE;
+ fKeepAllStatus = kTRUE;
fClonesArrayType = kAliAOD ;
}
* See cxx source for full Copyright notice */
/* $Id: $ */
-/* History of cvs commits:
- *
- * $Log$
- *
- */
-
//_________________________________________________________________________
// Class for reading data (Kinematics) in order to do prompt gamma or other particle correlations
//
**************************************************************************/
/* $Id: $ */
-/* History of cvs commits:
- *
- * $Log$
- *
- *
- */
-
//_________________________________________________________________________
// Base class for reading data: MonteCarlo, ESD or AOD, of PHOS EMCAL and
// Central Barrel Tracking detectors (CTS).
* See cxx source for full Copyright notice */
/* $Id: $ */
-/* History of cvs commits:
- *
- * $Log$
- *
- *
- */
-
//_________________________________________________________________________
// Base class for reading data: MonteCarlo, ESD or AOD, of PHOS EMCAL and
// Central Barrel Tracking detectors.
**************************************************************************/
/* $Id: AliFidutialCut.cxx 21839 2007-10-29 13:49:42Z gustavo $ */
-/* History of cvs commits:
- *
- * $Log$
- *
- *
- */
-
//_________________________________________________________________________
// Class for track/cluster acceptance selection
// Selection in Central barrel, EMCAL and PHOS
* See cxx source for full Copyright notice */
/* $Id: $ */
-/* History of cvs commits:
- *
- * $Log$
- *
- *
- */
-
//_________________________________________________________________________
// Class for track/cluster acceptance selection
// Selection in Central barrel, EMCAL and PHOS
**************************************************************************/
/* $Id: $ */
-/* History of cvs commits:
- *
- * $Log$
-
- *
- *
- */
-
//_________________________________________________________________________
// Class containing methods for the isolation cut.
//
* See cxx source for full Copyright notice */
/* $Id: */
-/* History of cvs commits:
- *
- * $Log$
- *
- *
- */
-
//_________________________________________________________________________
// Class containing methods for the isolation cut.
**************************************************************************/
/* $Id$ */
-/* History of cvs commits:
- *
- * $Log$
- * Revision 1.3 2007/10/29 13:48:42 gustavo
- * Corrected coding violations
- *
- * Revision 1.2 2007/08/17 12:40:04 schutz
- * New analysis classes by Gustavo Conesa
- *
- * Revision 1.1.2.1 2007/07/26 10:32:09 schutz
- * new analysis classes in the the new analysis framework
- *
- *
- */
-
//_________________________________________________________________________
// Class that contains methods to select candidate pairs to neutral meson
// 2 main selections, invariant mass around pi0 (also any other mass),
* See cxx source for full Copyright notice */
/* $Id$ */
-/* History of cvs commits:
- *
- * $Log$
- * Revision 1.2 2007/08/17 12:40:04 schutz
- * New analysis classes by Gustavo Conesa
- *
- * Revision 1.1.2.1 2007/07/26 10:32:09 schutz
- * new analysis classes in the the new analysis framework
- *
- *
- */
//_________________________________________________________________________
// Class that contains methods to select candidate pairs to neutral meson
// 2 main selections, invariant mass around pi0 (also any other mass),
#pragma link C++ class AliFidutialCut+;
#pragma link C++ class AliCaloPID+;
#pragma link C++ class AliIsolationCut+;
-#pragma link C++ class AliAnaMaker+;
-#pragma link C++ class AliAnaBaseClass+;
+#pragma link C++ class AliAnaPartCorrMaker+;
+#pragma link C++ class AliAnaPartCorrBaseClass+;
#pragma link C++ class AliAnaExample+;
#pragma link C++ class AliAnaGammaDirect+;
#pragma link C++ class AliAnaParticlePartonCorrelation+;
SRCS = AliAnaCaloTrigger.cxx AliAnaCaloTriggerMC.cxx \
AliAODParticleCorrelation.cxx AliAnalysisTaskPHOSExample.cxx \
AliNeutralMesonSelection.cxx AliFidutialCut.cxx AliCaloPID.cxx AliIsolationCut.cxx\
- AliAnaScale.cxx AliAnaMaker.cxx \
- AliAnaBaseClass.cxx AliAnaExample.cxx AliAnaGammaDirect.cxx \
+ AliAnaScale.cxx AliAnaPartCorrMaker.cxx \
+ AliAnaPartCorrBaseClass.cxx AliAnaExample.cxx AliAnaGammaDirect.cxx \
AliAnaParticlePartonCorrelation.cxx AliAnaParticleHadronCorrelation.cxx \
AliAnaParticleJetLeadingConeCorrelation.cxx AliAnalysisTaskParticleCorrelation.cxx \
AliCaloTrackReader.cxx AliCaloTrackESDReader.cxx \
// Author : Gustavo Conesa Balbastre (INFN-LNF)
//------------------------------------
-AliAnaMaker* ConfigAnalysis()
+AliAnaPartCorrMaker* ConfigAnalysis()
{
//
// Configuration goes here
//---------------------------------------------------------------------
// Set analysis algorithm and reader
//---------------------------------------------------------------------
- maker = new AliAnaMaker();
+ maker = new AliAnaPartCorrMaker();
maker->SetReader(reader);//pointer to reader
maker->AddAnalysis(ana,0);
//maker->AddAnalysis(ana2,1);
// Author : Gustavo Conesa Balbastre (INFN-LNF)
//------------------------------------
-AliAnaMaker* ConfigAnalysis()
+AliAnaPartCorrMaker* ConfigAnalysis()
{
//
// Configuration goes here
//---------------------------------------------------------------------
// Set analysis algorithm and reader
//---------------------------------------------------------------------
- maker = new AliAnaMaker();
+ maker = new AliAnaPartCorrMaker();
maker->SetReader(reader);//pointer to reader
maker->AddAnalysis(ana,0);
maker->SetAODBranchName("Photon");
// Author : Gustavo Conesa Balbastre (INFN-LNF)
//------------------------------------
-AliAnaMaker* ConfigAnalysis()
+AliAnaPartCorrMaker* ConfigAnalysis()
{
//
// Configuration goes here
//---------------------------------------------------------------------
// Set analysis algorithm and reader
//---------------------------------------------------------------------
- maker = new AliAnaMaker();
+ maker = new AliAnaPartCorrMaker();
maker->SetReader(reader);//pointer to reader
maker->AddAnalysis(ana,0);
maker->AddAnalysis(ana2,1);
// Author : Gustavo Conesa Balbastre (INFN-LNF)
//------------------------------------
-AliAnaMaker* ConfigAnalysis()
+AliAnaPartCorrMaker* ConfigAnalysis()
{
//
// Configuration goes here
//---------------------------------------------------------------------
// Set analysis algorithm and reader
//---------------------------------------------------------------------
- maker = new AliAnaMaker();
+ maker = new AliAnaPartCorrMaker();
maker->SetReader(reader);//pointer to reader
maker->AddAnalysis(ana,0);
maker->AddAnalysis(ana2,1);
// Author : Gustavo Conesa Balbastre (INFN-LNF)
//------------------------------------
-AliAnaMaker* ConfigAnalysis()
+AliAnaPartCorrMaker* ConfigAnalysis()
{
//
// Configuration goes here
//---------------------------------------------------------------------
// Set analysis algorithm and reader
//---------------------------------------------------------------------
- maker = new AliAnaMaker();
+ maker = new AliAnaPartCorrMaker();
maker->SetReader(reader);//pointer to reader
maker->AddAnalysis(ana,0);
maker->AddAnalysis(ana2,1);