]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Renamed PWG/EMCAL/AliEmcalEsdTpcTrackTask.cxx -> PWG/EMCAL/AliEmcalEsdTrackFilterTask.cxx
authorConstantin Loizides <cloizides@lbl.gov>
Mon, 9 Dec 2013 21:14:27 +0000 (22:14 +0100)
committerConstantin Loizides <cloizides@lbl.gov>
Mon, 9 Dec 2013 21:53:20 +0000 (22:53 +0100)
and implemented track propagation from new static function in reco utils.

PWG/CMakelibPWGEMCAL.pkg
PWG/EMCAL/AliAnalysisTaskEmcal.cxx
PWG/EMCAL/AliEmcalEsdTrackFilterTask.cxx [moved from PWG/EMCAL/AliEmcalEsdTpcTrackTask.cxx with 66% similarity]
PWG/EMCAL/AliEmcalEsdTrackFilterTask.h [moved from PWG/EMCAL/AliEmcalEsdTpcTrackTask.h with 62% similarity]
PWG/PWGEMCALLinkDef.h

index f499b009657e15eff269c1a9a2ec8cdf3c738165..e9214caf6c3bff1770d59dd10169ff233fea0cac 100644 (file)
@@ -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
index 132f3ca6ce7714a3a7dc4ba33e21cf03d569d97b..4a414ea8137dafc6138a88bcc306659931a31529 100644 (file)
@@ -1,4 +1,4 @@
-// $Id: AliAnalysisTaskEmcal.cxx 64518 2013-10-14 12:44:52Z loizides $
+// $Id$
 //
 // Emcal base analysis task.
 //
similarity index 66%
rename from PWG/EMCAL/AliEmcalEsdTpcTrackTask.cxx
rename to PWG/EMCAL/AliEmcalEsdTrackFilterTask.cxx
index 88e2958d0d851524267fc43d2213bca684fb3f64..e9e51180019ffc84e2ab05c55a26400d2cf9e9ed 100644 (file)
@@ -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
 
 #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<AliESDtrack*>(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<AliESDtrack*>(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()<fMinPtCutProp) 
-    return;
-
-  AliExternalTrackParam *trackParam =  const_cast<AliExternalTrackParam*>(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);
-
-}
similarity index 62%
rename from PWG/EMCAL/AliEmcalEsdTpcTrackTask.h
rename to PWG/EMCAL/AliEmcalEsdTrackFilterTask.h
index ae9274dcff6e33ffcd8f8d86cdde7b60ee4f71ed..ec4f716c994d5c71cb2abb36ad129b0e121d8c4c 100644 (file)
@@ -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
index e67827450daf65da2548d34a4450034173ff7271..b97a2fb0086933b9b0265d4589dc2cf6325fe6d3 100644 (file)
@@ -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+;