From cdd4e0e25296c6ab80e3f8dd60a55073e061bcd4 Mon Sep 17 00:00:00 2001 From: Constantin Loizides Date: Mon, 9 Dec 2013 22:14:27 +0100 Subject: [PATCH] Renamed PWG/EMCAL/AliEmcalEsdTpcTrackTask.cxx -> PWG/EMCAL/AliEmcalEsdTrackFilterTask.cxx and implemented track propagation from new static function in reco utils. --- PWG/CMakelibPWGEMCAL.pkg | 2 +- PWG/EMCAL/AliAnalysisTaskEmcal.cxx | 2 +- ...ask.cxx => AliEmcalEsdTrackFilterTask.cxx} | 88 +++++-------------- ...ackTask.h => AliEmcalEsdTrackFilterTask.h} | 32 +++---- PWG/PWGEMCALLinkDef.h | 2 +- 5 files changed, 36 insertions(+), 90 deletions(-) rename PWG/EMCAL/{AliEmcalEsdTpcTrackTask.cxx => AliEmcalEsdTrackFilterTask.cxx} (66%) rename PWG/EMCAL/{AliEmcalEsdTpcTrackTask.h => AliEmcalEsdTrackFilterTask.h} (62%) diff --git a/PWG/CMakelibPWGEMCAL.pkg b/PWG/CMakelibPWGEMCAL.pkg index f499b009657..e9214caf6c3 100644 --- a/PWG/CMakelibPWGEMCAL.pkg +++ b/PWG/CMakelibPWGEMCAL.pkg @@ -34,7 +34,7 @@ set ( SRCS EMCAL/AliEmcalClusTrackMatcherTask.cxx EMCAL/AliEmcalCompatTask.cxx EMCAL/AliEmcalContainer.cxx - EMCAL/AliEmcalEsdTpcTrackTask.cxx + EMCAL/AliEmcalEsdTrackFilterTask.cxx EMCAL/AliEmcalMCTrackSelector.cxx EMCAL/AliEmcalParticle.cxx EMCAL/AliEmcalParticleMaker.cxx diff --git a/PWG/EMCAL/AliAnalysisTaskEmcal.cxx b/PWG/EMCAL/AliAnalysisTaskEmcal.cxx index 132f3ca6ce7..4a414ea8137 100644 --- a/PWG/EMCAL/AliAnalysisTaskEmcal.cxx +++ b/PWG/EMCAL/AliAnalysisTaskEmcal.cxx @@ -1,4 +1,4 @@ -// $Id: AliAnalysisTaskEmcal.cxx 64518 2013-10-14 12:44:52Z loizides $ +// $Id$ // // Emcal base analysis task. // diff --git a/PWG/EMCAL/AliEmcalEsdTpcTrackTask.cxx b/PWG/EMCAL/AliEmcalEsdTrackFilterTask.cxx similarity index 66% rename from PWG/EMCAL/AliEmcalEsdTpcTrackTask.cxx rename to PWG/EMCAL/AliEmcalEsdTrackFilterTask.cxx index 88e2958d0d8..e9e51180019 100644 --- a/PWG/EMCAL/AliEmcalEsdTpcTrackTask.cxx +++ b/PWG/EMCAL/AliEmcalEsdTrackFilterTask.cxx @@ -1,6 +1,6 @@ // $Id$ // -// Task to constrain TPC tracks to SPD vertex. +// Task to filter Esd tracks and propagate to Emcal surface. // // Author: C.Loizides @@ -13,22 +13,20 @@ #include "AliTrackerBase.h" #include "AliEMCALRecoUtils.h" -#include "AliEmcalEsdTpcTrackTask.h" +#include "AliEmcalEsdTrackFilterTask.h" -ClassImp(AliEmcalEsdTpcTrackTask) +ClassImp(AliEmcalEsdTrackFilterTask) //________________________________________________________________________ -AliEmcalEsdTpcTrackTask::AliEmcalEsdTpcTrackTask() : - AliAnalysisTaskSE("TpcSpdVertexConstrainedTracks"), +AliEmcalEsdTrackFilterTask::AliEmcalEsdTrackFilterTask() : + AliAnalysisTaskSE("AliEmcalEsdTrackFilterTask"), fEsdTrackCuts(0), fDoSpdVtxCon(0), fHybridTrackCuts(0), fTracksName(), fIncludeNoITS(kTRUE), fDoPropagation(kFALSE), - fRecoUtils(0), fDist(440), - fMinPtCutProp(0.35), fEsdEv(0), fTracks(0) { @@ -36,17 +34,15 @@ AliEmcalEsdTpcTrackTask::AliEmcalEsdTpcTrackTask() : } //________________________________________________________________________ -AliEmcalEsdTpcTrackTask::AliEmcalEsdTpcTrackTask(const char *name) : +AliEmcalEsdTrackFilterTask::AliEmcalEsdTrackFilterTask(const char *name) : AliAnalysisTaskSE(name), fEsdTrackCuts(0), fDoSpdVtxCon(0), fHybridTrackCuts(0), - fTracksName("TpcSpdVertexConstrainedTracks"), + fTracksName("EsdTracksOut"), fIncludeNoITS(kTRUE), fDoPropagation(kFALSE), - fRecoUtils(0), fDist(440), - fMinPtCutProp(0.35), fEsdEv(0), fTracks(0) { @@ -61,16 +57,15 @@ AliEmcalEsdTpcTrackTask::AliEmcalEsdTpcTrackTask(const char *name) : } //________________________________________________________________________ -AliEmcalEsdTpcTrackTask::~AliEmcalEsdTpcTrackTask() +AliEmcalEsdTrackFilterTask::~AliEmcalEsdTrackFilterTask() { //Destructor delete fEsdTrackCuts; - delete fRecoUtils; } //________________________________________________________________________ -void AliEmcalEsdTpcTrackTask::UserCreateOutputObjects() +void AliEmcalEsdTrackFilterTask::UserCreateOutputObjects() { // Create histograms. @@ -82,16 +77,10 @@ void AliEmcalEsdTpcTrackTask::UserCreateOutputObjects() fEsdTrackCuts = AliESDtrackCuts::GetStandardTPCOnlyTrackCuts(); fEsdTrackCuts->SetPtRange(0.15,1e3); } - - if (!fRecoUtils) { - fRecoUtils = new AliEMCALRecoUtils; - fRecoUtils->SetStep(20); - AliInfo("No reco utils given, creating default utils"); - } } //________________________________________________________________________ -void AliEmcalEsdTpcTrackTask::UserExec(Option_t *) +void AliEmcalEsdTrackFilterTask::UserExec(Option_t *) { // Main loop, called for each event. @@ -180,71 +169,34 @@ void AliEmcalEsdTpcTrackTask::UserExec(Option_t *) continue; if (fEsdTrackCuts->AcceptTrack(etrack)) { - if(fDoPropagation) PropagateTrackToEMCal(etrack); new ((*fTracks)[ntrnew]) AliESDtrack(*etrack); AliESDtrack *newTrack = static_cast(fTracks->At(ntrnew)); - if(fDoPropagation) newTrack->SetTrackPhiEtaPtOnEMCal(etrack->GetTrackPhiOnEMCal(),etrack->GetTrackEtaOnEMCal(),etrack->GetTrackPtOnEMCal()); - - newTrack->SetTRDNchamberdEdx(0); + if (fDoPropagation) + AliEMCALRecoUtils::ExtrapolateTrackToEMCalSurface(newTrack,fDist); + //newTrack->SetTRDNchamberdEdx(0); todo ++ntrnew; } else if (fHybridTrackCuts->AcceptTrack(etrack)) { - if(fDoPropagation) PropagateTrackToEMCal(etrack); UInt_t status = etrack->GetStatus(); if (etrack->GetConstrainedParam() && ((status&AliESDtrack::kITSrefit)!=0 || fIncludeNoITS)) { - new ((*fTracks)[ntrnew]) AliESDtrack(*etrack); AliESDtrack *newTrack = static_cast(fTracks->At(ntrnew)); - ++ntrnew; const AliExternalTrackParam* constrainParam = etrack->GetConstrainedParam(); newTrack->Set(constrainParam->GetX(), constrainParam->GetAlpha(), constrainParam->GetParameter(), constrainParam->GetCovariance()); - if ((status&AliESDtrack::kITSrefit)==0) - newTrack->SetTRDNchamberdEdx(2); - else - newTrack->SetTRDNchamberdEdx(1); - - if(fDoPropagation) newTrack->SetTrackPhiEtaPtOnEMCal(etrack->GetTrackPhiOnEMCal(),etrack->GetTrackEtaOnEMCal(),etrack->GetTrackPtOnEMCal()); + // if ((status&AliESDtrack::kITSrefit)==0) // todo + // newTrack->SetTRDNchamberdEdx(2); + // else + // newTrack->SetTRDNchamberdEdx(1); + if (fDoPropagation) + AliEMCALRecoUtils::ExtrapolateTrackToEMCalSurface(newTrack,fDist); + ++ntrnew; } } } } } -//______________________________________________________________________________ -void AliEmcalEsdTpcTrackTask::PropagateTrackToEMCal(AliESDtrack *esdTrack) -{ - // Extrapolate the track to EMCal surface - esdTrack->ResetStatus(AliVTrack::kEMCALmatch); - - Double_t phi = esdTrack->Phi()*TMath::RadToDeg(); - if (TMath::Abs(esdTrack->Eta())>0.9 || phi <= 10 || phi >= 250) - return; - if(esdTrack->Pt()(esdTrack->GetInnerParam()); - if(!trackParam) - return; - AliExternalTrackParam emcalParam(*trackParam); - - Float_t etaout=-999, phiout=-999, ptout=-999; - Bool_t ret = fRecoUtils->ExtrapolateTrackToEMCalSurface(&emcalParam, - fDist, - esdTrack->GetMass(), - fRecoUtils->GetStepSurface(), - etaout, - phiout, - ptout); - if (!ret) - return; - if (TMath::Abs(etaout)>0.75 || (phiout<70*TMath::DegToRad()) || (phiout>190*TMath::DegToRad())) - return; - esdTrack->SetOuterParam(&emcalParam,AliExternalTrackParam::kMultSec); - esdTrack->SetTrackPhiEtaPtOnEMCal(phiout, etaout, ptout); - esdTrack->SetStatus(AliVTrack::kEMCALmatch); - -} diff --git a/PWG/EMCAL/AliEmcalEsdTpcTrackTask.h b/PWG/EMCAL/AliEmcalEsdTrackFilterTask.h similarity index 62% rename from PWG/EMCAL/AliEmcalEsdTpcTrackTask.h rename to PWG/EMCAL/AliEmcalEsdTrackFilterTask.h index ae9274dcff6..ec4f716c994 100644 --- a/PWG/EMCAL/AliEmcalEsdTpcTrackTask.h +++ b/PWG/EMCAL/AliEmcalEsdTrackFilterTask.h @@ -1,5 +1,5 @@ -#ifndef ALIEMCALESDTPCTRACKTASK_H -#define ALIEMCALESDTPCTRACKTASK_H +#ifndef ALIEMCALESDTRACKFILTERTASK_H +#define ALIEMCALESDTRACKFILTERTASK_H // $Id$ @@ -10,47 +10,41 @@ class AliESDtrackCuts; class AliEMCALRecoUtils; #include "AliAnalysisTaskSE.h" +#include "AliESDtrackCuts.h" -class AliEmcalEsdTpcTrackTask : public AliAnalysisTaskSE { +class AliEmcalEsdTrackFilterTask : public AliAnalysisTaskSE { public: - AliEmcalEsdTpcTrackTask(); - AliEmcalEsdTpcTrackTask(const char *name); - virtual ~AliEmcalEsdTpcTrackTask(); + AliEmcalEsdTrackFilterTask(); + AliEmcalEsdTrackFilterTask(const char *name); + virtual ~AliEmcalEsdTrackFilterTask(); void UserCreateOutputObjects(); void UserExec(Option_t *option); + void SetDist(Double_t d) { fDist = d; } + void SetDoPropagation(Bool_t b) { fDoPropagation = b; } void SetDoSpdVtxConstrain(Bool_t b) { fDoSpdVtxCon = b; } void SetHybridTrackCuts(AliESDtrackCuts *cuts) { fHybridTrackCuts = cuts; } + void SetIncludeNoITS(Bool_t f) { fIncludeNoITS = f; } void SetTrackCuts(AliESDtrackCuts *cuts) { fEsdTrackCuts = cuts; } void SetTracksName(const char *name) { fTracksName = name; } - void SetIncludeNoITS(Bool_t f) { fIncludeNoITS = f; } - - void SetDoPropagation(Bool_t b) { fDoPropagation = b; } - void SetDist(Double_t d) { fDist = d; } - void SetMinPtProp(Double_t pt) { fMinPtCutProp = pt; } - void SetRecoUtils(AliEMCALRecoUtils *ru) { fRecoUtils = ru; } protected: - void PropagateTrackToEMCal(AliESDtrack *esdTrack); - AliESDtrackCuts *fEsdTrackCuts; // esd track cuts Bool_t fDoSpdVtxCon; // if true then do vertex constraint AliESDtrackCuts *fHybridTrackCuts; // hybrid track cuts TString fTracksName; // name of tracks Bool_t fIncludeNoITS; // includes tracks with failed ITS refit Bool_t fDoPropagation; // propagate all hybrid tracks to EMCal surface - AliEMCALRecoUtils *fRecoUtils; // esd reco utils Double_t fDist; // distance to surface (430cm default) - Double_t fMinPtCutProp; // minimum track pt cut for propagated tracks (350 MeV/c default) AliESDEvent *fEsdEv; //!esd event TClonesArray *fTracks; //!track array private: - AliEmcalEsdTpcTrackTask(const AliEmcalEsdTpcTrackTask&); // not implemented - AliEmcalEsdTpcTrackTask &operator=(const AliEmcalEsdTpcTrackTask&); // not implemented + AliEmcalEsdTrackFilterTask(const AliEmcalEsdTrackFilterTask&); // not implemented + AliEmcalEsdTrackFilterTask &operator=(const AliEmcalEsdTrackFilterTask&); // not implemented - ClassDef(AliEmcalEsdTpcTrackTask, 2); // Class to constrain TPC tracks to SPD vertex + ClassDef(AliEmcalEsdTrackFilterTask, 1); // Class to constrain TPC tracks to SPD vertex }; #endif diff --git a/PWG/PWGEMCALLinkDef.h b/PWG/PWGEMCALLinkDef.h index e67827450da..b97a2fb0086 100644 --- a/PWG/PWGEMCALLinkDef.h +++ b/PWG/PWGEMCALLinkDef.h @@ -11,7 +11,7 @@ #pragma link C++ class AliEmcalClusTrackMatcherTask+; #pragma link C++ class AliEmcalCompatTask+; #pragma link C++ class AliEmcalContainer+; -#pragma link C++ class AliEmcalEsdTpcTrackTask+; +#pragma link C++ class AliEmcalEsdTrackFilterTask; #pragma link C++ class AliEmcalMCTrackSelector+; #pragma link C++ class AliEmcalParticle+; #pragma link C++ class AliEmcalParticleMaker+; -- 2.43.0