From ffe3245149d1c2c28c67d5aba6ee814e4b728515 Mon Sep 17 00:00:00 2001 From: loizides Date: Thu, 21 Jun 2012 04:33:52 +0000 Subject: [PATCH] renamed init into execonce --- PWGGA/EMCALJetTasks/AliAnalysisTaskEmcalJet.h | 4 +- PWGGA/EMCALJetTasks/AliJetEmbeddingTask.cxx | 22 +- PWGGA/EMCALJetTasks/AliJetEmbeddingTask.h | 5 +- PWGGA/EMCALJetTasks/AliJetModelBaseTask.cxx | 324 +++++++++--------- PWGGA/EMCALJetTasks/AliJetModelBaseTask.h | 41 ++- PWGGA/EMCALJetTasks/AliJetRandomizerTask.cxx | 33 +- PWGGA/EMCALJetTasks/AliJetRandomizerTask.h | 5 +- 7 files changed, 215 insertions(+), 219 deletions(-) diff --git a/PWGGA/EMCALJetTasks/AliAnalysisTaskEmcalJet.h b/PWGGA/EMCALJetTasks/AliAnalysisTaskEmcalJet.h index 179224d6144..dcc283430de 100644 --- a/PWGGA/EMCALJetTasks/AliAnalysisTaskEmcalJet.h +++ b/PWGGA/EMCALJetTasks/AliAnalysisTaskEmcalJet.h @@ -31,13 +31,13 @@ class AliAnalysisTaskEmcalJet : public AliAnalysisTaskEmcal { void SetPtBiasJetTrack(Float_t b) { fPtBiasJetTrack = b ; } protected: - void ExecOnce() ; - Bool_t RetrieveEventObjects() ; Bool_t AcceptJet(AliEmcalJet* jet, Bool_t bias = kTRUE, Bool_t upCut = kTRUE) const; Bool_t AcceptBiasJet(AliEmcalJet* jet) const; + void ExecOnce() ; AliRhoParameter *GetRhoFromEvent(const char *name); Bool_t IsJetTrack(AliEmcalJet* jet, Int_t itrack, Bool_t sorted = kTRUE) const; Bool_t IsJetCluster(AliEmcalJet* jet, Int_t iclus, Bool_t sorted = kTRUE) const; + Bool_t RetrieveEventObjects() ; Float_t fJetRadius; // jet radius TString fJetsName; // name of jet collection diff --git a/PWGGA/EMCALJetTasks/AliJetEmbeddingTask.cxx b/PWGGA/EMCALJetTasks/AliJetEmbeddingTask.cxx index c27b8e6c9d2..3792a1762da 100644 --- a/PWGGA/EMCALJetTasks/AliJetEmbeddingTask.cxx +++ b/PWGGA/EMCALJetTasks/AliJetEmbeddingTask.cxx @@ -43,6 +43,18 @@ AliJetEmbeddingTask::~AliJetEmbeddingTask() // Destructor } +//________________________________________________________________________ +void AliJetEmbeddingTask::UserExec(Option_t *) +{ + // Execute per event. + + if (!fIsInit) { + ExecOnce(); + fIsInit = 1; + } + Run(); +} + //________________________________________________________________________ void AliJetEmbeddingTask::Run() { @@ -64,13 +76,3 @@ void AliJetEmbeddingTask::Run() } } } - -//________________________________________________________________________ -void AliJetEmbeddingTask::UserExec(Option_t *) -{ - // Execute per event. - - Init(); - - Run(); -} diff --git a/PWGGA/EMCALJetTasks/AliJetEmbeddingTask.h b/PWGGA/EMCALJetTasks/AliJetEmbeddingTask.h index 3c2276873e0..7993e9f6418 100644 --- a/PWGGA/EMCALJetTasks/AliJetEmbeddingTask.h +++ b/PWGGA/EMCALJetTasks/AliJetEmbeddingTask.h @@ -14,11 +14,10 @@ class AliJetEmbeddingTask : public AliJetModelBaseTask { AliJetEmbeddingTask(const char *name); virtual ~AliJetEmbeddingTask(); - virtual void UserExec(Option_t* /*option*/); + void UserExec(Option_t* /*option*/); protected: - - virtual void Run(); // do embedding + void Run(); private: AliJetEmbeddingTask(const AliJetEmbeddingTask&); // not implemented diff --git a/PWGGA/EMCALJetTasks/AliJetModelBaseTask.cxx b/PWGGA/EMCALJetTasks/AliJetModelBaseTask.cxx index 275c9791074..1e62bcbf0bf 100644 --- a/PWGGA/EMCALJetTasks/AliJetModelBaseTask.cxx +++ b/PWGGA/EMCALJetTasks/AliJetModelBaseTask.cxx @@ -4,23 +4,23 @@ // // Author: S.Aiola, C.Loizides +#include "AliJetModelBaseTask.h" + #include +#include #include #include -#include -#include "AliAnalysisManager.h" -#include "AliVEvent.h" -#include "AliVCluster.h" -#include "AliESDCaloCluster.h" #include "AliAODCaloCluster.h" +#include "AliAnalysisManager.h" #include "AliEMCALDigit.h" -#include "AliEMCALRecPoint.h" -#include "AliPicoTrack.h" #include "AliEMCALGeometry.h" +#include "AliEMCALRecPoint.h" +#include "AliESDCaloCluster.h" #include "AliLog.h" - -#include "AliJetModelBaseTask.h" +#include "AliPicoTrack.h" +#include "AliVCluster.h" +#include "AliVEvent.h" ClassImp(AliJetModelBaseTask) @@ -43,6 +43,7 @@ AliJetModelBaseTask::AliJetModelBaseTask() : fNClusters(0), fNTracks(0), fPtSpectrum(0), + fIsInit(0), fGeom(0), fClusters(0), fOutClusters(0), @@ -71,6 +72,7 @@ AliJetModelBaseTask::AliJetModelBaseTask(const char *name) : fNClusters(0), fNTracks(1), fPtSpectrum(0), + fIsInit(0), fGeom(0), fClusters(0), fOutClusters(0), @@ -87,7 +89,154 @@ AliJetModelBaseTask::~AliJetModelBaseTask() } //________________________________________________________________________ -void AliJetModelBaseTask::Init() +void AliJetModelBaseTask::UserExec(Option_t *) +{ + // Execute per event. + + if (!fIsInit) + ExecOnce(); + Run(); +} + +//________________________________________________________________________ +AliVCluster* AliJetModelBaseTask::AddCluster(Double_t e, Double_t eta, Double_t phi) +{ + // Add a cluster to the event. + + Int_t absId = 0; + if (eta < -100 || phi < 0) { + GetRandomCell(eta, phi, absId); + } + else { + fGeom->EtaPhiFromIndex(absId, eta, phi); + } + + if (absId == -1) { + AliWarning(Form("Unable to embed cluster in eta = %f, phi = %f!" + " Maybe the eta-phi range is not inside the EMCal acceptance (eta = [%f, %f], phi = [%f, %f])", + eta, phi, fEtaMin, fEtaMax, fPhiMin, fPhiMax)); + return 0; + } + + if (e < 0) { + Double_t pt = GetRandomPt(); + TLorentzVector nPart; + nPart.SetPtEtaPhiM(pt, eta, phi, 0); + e = nPart.E(); + } + + return AddCluster(e, absId); +} + +//________________________________________________________________________ +AliVCluster* AliJetModelBaseTask::AddCluster(Double_t e, Int_t absId) +{ + // Add a cluster to the event. + + const Int_t nClusters = fOutClusters->GetEntriesFast(); + + TClonesArray digits("AliEMCALDigit", 1); + + AliEMCALDigit *digit = static_cast(digits.New(0)); + digit->SetId(absId); + digit->SetIndexInList(0); + digit->SetType(AliEMCALDigit::kHG); + digit->SetAmplitude(e); + + AliEMCALRecPoint recPoint(""); + recPoint.AddDigit(*digit, e, kFALSE); + recPoint.EvalGlobalPosition(0, &digits); + + TVector3 gpos; + recPoint.GetGlobalPosition(gpos); + Float_t g[3]; + gpos.GetXYZ(g); + + AliVCluster *cluster = static_cast(fOutClusters->New(nClusters)); + cluster->SetType(AliVCluster::kEMCALClusterv1); + cluster->SetE(recPoint.GetEnergy()); + cluster->SetPosition(g); + cluster->SetNCells(1); + UShort_t shortAbsId = absId; + cluster->SetCellsAbsId(&shortAbsId); + Double32_t fract = 1; + cluster->SetCellsAmplitudeFraction(&fract); + cluster->SetID(nClusters); + cluster->SetEmcCpvDistance(-1); + cluster->SetChi2(100); // MC flag! + + return cluster; +} + +//________________________________________________________________________ +AliPicoTrack* AliJetModelBaseTask::AddTrack(Double_t pt, Double_t eta, Double_t phi) +{ + // Add a track to the event. + + const Int_t nTracks = fOutTracks->GetEntriesFast(); + + if (pt < 0) + pt = GetRandomPt(); + if (eta < -100) + eta = GetRandomEta(); + if (phi < 0) + phi = GetRandomPhi(); + + AliPicoTrack *track = new ((*fOutTracks)[nTracks]) AliPicoTrack(pt, + eta, + phi, + 1, + 100, // MC flag! + 0, + 0, + kFALSE); + return track; +} + +//________________________________________________________________________ +void AliJetModelBaseTask::CopyClusters() +{ + // Copy all the clusters in the new collection + + Bool_t esdMode = (Bool_t)(fClusters->GetClass()->GetBaseClass("AliESDCaloCluster") != 0); + const Int_t nClusters = fClusters->GetEntriesFast(); + + if (esdMode) { + for (Int_t i = 0; i < nClusters; ++i) { + AliESDCaloCluster *esdcluster = static_cast(fClusters->At(i)); + if (!esdcluster) + continue; + if (!esdcluster->IsEMCAL()) + continue; + new ((*fOutClusters)[i]) AliESDCaloCluster(*esdcluster); + } + } + else { + for (Int_t i = 0; i < nClusters; ++i) { + AliAODCaloCluster *aodcluster = static_cast(fClusters->At(i)); + if (!aodcluster) + continue; + if (!aodcluster->IsEMCAL()) + continue; + new ((*fOutClusters)[i]) AliAODCaloCluster(*aodcluster); + } + } +} + +//________________________________________________________________________ +void AliJetModelBaseTask::CopyTracks() +{ + const Int_t nTracks = fTracks->GetEntriesFast(); + for (Int_t i = 0; i < nTracks; ++i) { + AliPicoTrack *track = static_cast(fTracks->At(i)); + if (!track) + continue; + new ((*fOutTracks)[i]) AliPicoTrack(*track); + } +} + +//________________________________________________________________________ +void AliJetModelBaseTask::ExecOnce() { // Init task. @@ -134,7 +283,6 @@ void AliJetModelBaseTask::Init() if (fCopyArray) { if (!(InputEvent()->FindListObject(fOutTracksName))) InputEvent()->AddObject(fOutTracks); - //fOutTracks->Clear(); } } @@ -167,7 +315,6 @@ void AliJetModelBaseTask::Init() if (fCopyArray) { if (!(InputEvent()->FindListObject(fOutCaloName))) InputEvent()->AddObject(fOutClusters); - //fOutClusters->Clear(); } if (!fGeom) { @@ -197,13 +344,6 @@ void AliJetModelBaseTask::Init() if (fPhiMin > EmcalMaxPhi) fPhiMin = EmcalMaxPhi; if (fPhiMin < EmcalMinPhi) fPhiMin = EmcalMinPhi; } - - if (fCopyArray) { - if (fOutTracks) - fOutTracks->Clear(); - if (fOutClusters) - fOutClusters->Clear(); - } } //________________________________________________________________________ @@ -260,154 +400,8 @@ Double_t AliJetModelBaseTask::GetRandomPt() return gRandom->Rndm() * (fPtMax - fPtMin) + fPtMin; } -//________________________________________________________________________ -AliVCluster* AliJetModelBaseTask::AddCluster(Double_t e, Double_t eta, Double_t phi) -{ - // Add a cluster to the event. - - Int_t absId = 0; - if (eta < -100 || phi < 0) { - GetRandomCell(eta, phi, absId); - } - else { - fGeom->EtaPhiFromIndex(absId, eta, phi); - } - - if (absId == -1) { - AliWarning(Form("Unable to embed cluster in eta = %f, phi = %f!" - " Maybe the eta-phi range is not inside the EMCal acceptance (eta = [%f, %f], phi = [%f, %f])", - eta, phi, fEtaMin, fEtaMax, fPhiMin, fPhiMax)); - return 0; - } - - if (e < 0) { - Double_t pt = GetRandomPt(); - TLorentzVector nPart; - nPart.SetPtEtaPhiM(pt, eta, phi, 0); - e = nPart.E(); - } - - return AddCluster(e, absId); -} - -//________________________________________________________________________ -AliVCluster* AliJetModelBaseTask::AddCluster(Double_t e, Int_t absId) -{ - // Add a cluster to the event. - - const Int_t nClusters = fOutClusters->GetEntriesFast(); - - TClonesArray digits("AliEMCALDigit", 1); - - AliEMCALDigit *digit = static_cast(digits.New(0)); - digit->SetId(absId); - digit->SetIndexInList(0); - digit->SetType(AliEMCALDigit::kHG); - digit->SetAmplitude(e); - - AliEMCALRecPoint recPoint(""); - recPoint.AddDigit(*digit, e, kFALSE); - recPoint.EvalGlobalPosition(0, &digits); - - TVector3 gpos; - recPoint.GetGlobalPosition(gpos); - Float_t g[3]; - gpos.GetXYZ(g); - - AliVCluster *cluster = static_cast(fOutClusters->New(nClusters)); - cluster->SetType(AliVCluster::kEMCALClusterv1); - cluster->SetE(recPoint.GetEnergy()); - cluster->SetPosition(g); - cluster->SetNCells(1); - UShort_t shortAbsId = absId; - cluster->SetCellsAbsId(&shortAbsId); - Double32_t fract = 1; - cluster->SetCellsAmplitudeFraction(&fract); - cluster->SetID(nClusters); - cluster->SetEmcCpvDistance(-1); - cluster->SetChi2(100); // MC flag! - - return cluster; -} - -//________________________________________________________________________ -AliPicoTrack* AliJetModelBaseTask::AddTrack(Double_t pt, Double_t eta, Double_t phi) -{ - // Add a track to the event. - - const Int_t nTracks = fOutTracks->GetEntriesFast(); - - if (pt < 0) - pt = GetRandomPt(); - if (eta < -100) - eta = GetRandomEta(); - if (phi < 0) - phi = GetRandomPhi(); - - AliPicoTrack *track = new ((*fOutTracks)[nTracks]) AliPicoTrack(pt, - eta, - phi, - 1, - 100, // MC flag! - 0, - 0, - kFALSE); - return track; -} - //________________________________________________________________________ void AliJetModelBaseTask::Run() { // Run. } - -//________________________________________________________________________ -void AliJetModelBaseTask::CopyClusters() -{ - // Copy all the clusters in the new collection - - Bool_t esdMode = (Bool_t)(fClusters->GetClass()->GetBaseClass("AliESDCaloCluster") != 0); - const Int_t nClusters = fClusters->GetEntriesFast(); - - if (esdMode) { - for (Int_t i = 0; i < nClusters; ++i) { - AliESDCaloCluster *esdcluster = static_cast(fClusters->At(i)); - if (!esdcluster) - continue; - if (!esdcluster->IsEMCAL()) - continue; - new ((*fOutClusters)[i]) AliESDCaloCluster(*esdcluster); - } - } - else { - for (Int_t i = 0; i < nClusters; ++i) { - AliAODCaloCluster *aodcluster = static_cast(fClusters->At(i)); - if (!aodcluster) - continue; - if (!aodcluster->IsEMCAL()) - continue; - new ((*fOutClusters)[i]) AliAODCaloCluster(*aodcluster); - } - } -} - -//________________________________________________________________________ -void AliJetModelBaseTask::CopyTracks() -{ - const Int_t nTracks = fTracks->GetEntriesFast(); - for (Int_t i = 0; i < nTracks; ++i) { - AliPicoTrack *track = static_cast(fTracks->At(i)); - if (!track) - continue; - new ((*fOutTracks)[i]) AliPicoTrack(*track); - } -} - -//________________________________________________________________________ -void AliJetModelBaseTask::UserExec(Option_t *) -{ - // Execute per event. - - Init(); - Run(); -} diff --git a/PWGGA/EMCALJetTasks/AliJetModelBaseTask.h b/PWGGA/EMCALJetTasks/AliJetModelBaseTask.h index 8f29b391cce..ad5267f9d62 100644 --- a/PWGGA/EMCALJetTasks/AliJetModelBaseTask.h +++ b/PWGGA/EMCALJetTasks/AliJetModelBaseTask.h @@ -17,34 +17,32 @@ class AliJetModelBaseTask : public AliAnalysisTaskSE { AliJetModelBaseTask(const char *name); virtual ~AliJetModelBaseTask(); - virtual void Init(); - virtual void UserExec(Option_t* /*option*/); - virtual void Terminate(const Option_t* /*option*/) {;} + void UserExec(Option_t* /*option*/); - void SetClusName(const char *n) { fCaloName = n; } - void SetTracksName(const char *n) { fTracksName = n; } - void SetEtaRange(Float_t min, Float_t max) { fEtaMin = min; fEtaMax = max; } - void SetPhiRange(Float_t min, Float_t max) { fPhiMin = min; fPhiMax = max; } - void SetPtRange(Float_t min, Float_t max) { fPtMin = min; fPtMax = max; } - void SetCopyArray(Bool_t copy) { fCopyArray = copy; } - void SetNClusters(Int_t n) { fNClusters = n; } - void SetNTracks(Int_t n) { fNTracks = n; } - void SetGeometryName(const char *n) { fGeomName = n; } - void SetSuffix(const char *s) { fSuffix = s; } - void SetPtSpectrum(TF1 *f) { fPtSpectrum = f; } + void SetClusName(const char *n) { fCaloName = n; } + void SetTracksName(const char *n) { fTracksName = n; } + void SetEtaRange(Float_t min, Float_t max) { fEtaMin = min; fEtaMax = max; } + void SetPhiRange(Float_t min, Float_t max) { fPhiMin = min; fPhiMax = max; } + void SetPtRange(Float_t min, Float_t max) { fPtMin = min; fPtMax = max; } + void SetCopyArray(Bool_t copy) { fCopyArray = copy; } + void SetNClusters(Int_t n) { fNClusters = n; } + void SetNTracks(Int_t n) { fNTracks = n; } + void SetGeometryName(const char *n) { fGeomName = n; } + void SetSuffix(const char *s) { fSuffix = s; } + void SetPtSpectrum(TF1 *f) { fPtSpectrum = f; } protected: - - virtual void Run(); // do jet model action - void GetRandomCell(Double_t &eta, Double_t &phi, Int_t &absId); // generate a random cell in the calorimeter - Double_t GetRandomEta(); // generate a random eta value in the given range - Double_t GetRandomPhi(); // generate a random phi value in the given range - Double_t GetRandomPt(); // generate a random pt value in the given range AliVCluster *AddCluster(Double_t e = -1, Double_t eta = -999, Double_t phi = -1); // add a cluster; if values are -1 generate random parameters AliVCluster *AddCluster(Double_t e, Int_t absId); // add a cluster with given energy and position AliPicoTrack *AddTrack(Double_t pt = -1, Double_t eta = -999, Double_t phi = -1); // add a track; if values are -1 generate random parameters void CopyClusters(); void CopyTracks(); + virtual void ExecOnce(); + void GetRandomCell(Double_t &eta, Double_t &phi, Int_t &absId); // generate a random cell in the calorimeter + Double_t GetRandomEta(); // generate a random eta value in the given range + Double_t GetRandomPhi(); // generate a random phi value in the given range + Double_t GetRandomPt(); // generate a random pt value in the given range + virtual void Run(); // do jet model action TString fGeomName; // EMCal geometry name TString fTracksName; // name of track collection @@ -62,6 +60,7 @@ class AliJetModelBaseTask : public AliAnalysisTaskSE { Int_t fNClusters; // how many clusters are being processed Int_t fNTracks; // how many tracks are being processed TF1 *fPtSpectrum; // pt spectrum parametrization to extract random pt values + Bool_t fIsInit; //=true if initialized AliEMCALGeometry *fGeom; //!pointer to EMCal geometry TClonesArray *fClusters; //!cluster collection TClonesArray *fOutClusters; //!output cluster collection @@ -72,6 +71,6 @@ class AliJetModelBaseTask : public AliAnalysisTaskSE { AliJetModelBaseTask(const AliJetModelBaseTask&); // not implemented AliJetModelBaseTask &operator=(const AliJetModelBaseTask&); // not implemented - ClassDef(AliJetModelBaseTask, 2) // Jet modelling task + ClassDef(AliJetModelBaseTask, 3) // Jet modelling task }; #endif diff --git a/PWGGA/EMCALJetTasks/AliJetRandomizerTask.cxx b/PWGGA/EMCALJetTasks/AliJetRandomizerTask.cxx index 11e079a2f20..4f2172c891e 100644 --- a/PWGGA/EMCALJetTasks/AliJetRandomizerTask.cxx +++ b/PWGGA/EMCALJetTasks/AliJetRandomizerTask.cxx @@ -45,6 +45,24 @@ AliJetRandomizerTask::~AliJetRandomizerTask() // Destructor } +//________________________________________________________________________ +void AliJetRandomizerTask::UserExec(Option_t *) +{ + // Execute per event. + + if (!fCopyArray) { + AliWarning("fCopyArray == kFALSE not allowed for AliJetRandomizerTask, will set kTRUE"); + fCopyArray = kTRUE; + } + + if (!fIsInit) { + ExecOnce(); + fIsInit = 1; + } + + Run(); +} + //________________________________________________________________________ void AliJetRandomizerTask::Run() { @@ -78,18 +96,3 @@ void AliJetRandomizerTask::Run() } } } - -//________________________________________________________________________ -void AliJetRandomizerTask::UserExec(Option_t *) -{ - // Execute per event. - - if (!fCopyArray) { - AliWarning("fCopyArray == kFALSE not allowed for AliJetRandomizerTask, will set kTRUE"); - fCopyArray = kTRUE; - } - - Init(); - - Run(); -} diff --git a/PWGGA/EMCALJetTasks/AliJetRandomizerTask.h b/PWGGA/EMCALJetTasks/AliJetRandomizerTask.h index eb610483f47..2a86eebe372 100644 --- a/PWGGA/EMCALJetTasks/AliJetRandomizerTask.h +++ b/PWGGA/EMCALJetTasks/AliJetRandomizerTask.h @@ -13,11 +13,10 @@ class AliJetRandomizerTask : public AliJetModelBaseTask { AliJetRandomizerTask(const char *name); virtual ~AliJetRandomizerTask(); - virtual void UserExec(Option_t* /*option*/); + void UserExec(Option_t* /*option*/); protected: - - virtual void Run(); // do randomizing + void Run(); private: AliJetRandomizerTask(const AliJetRandomizerTask&); // not implemented -- 2.43.0