From dd233e4eae4b6ffb30d86704bcbf220f6662301a Mon Sep 17 00:00:00 2001 From: loizides Date: Sun, 29 Jan 2012 22:03:43 +0000 Subject: [PATCH] add pico track --- PWGGA/CMakelibPWGGAEMCALTasks.pkg | 6 ++- PWGGA/EMCALTasks/AliPicoTrack.cxx | 74 +++++++++++++++++++++++++++++++ PWGGA/EMCALTasks/AliPicoTrack.h | 66 +++++++++++++++++++++++++++ PWGGA/PWGGAEMCALTasksLinkDef.h | 12 ++--- 4 files changed, 150 insertions(+), 8 deletions(-) create mode 100644 PWGGA/EMCALTasks/AliPicoTrack.cxx create mode 100644 PWGGA/EMCALTasks/AliPicoTrack.h diff --git a/PWGGA/CMakelibPWGGAEMCALTasks.pkg b/PWGGA/CMakelibPWGGAEMCALTasks.pkg index 28cb312d563..93a1f95efa1 100644 --- a/PWGGA/CMakelibPWGGAEMCALTasks.pkg +++ b/PWGGA/CMakelibPWGGAEMCALTasks.pkg @@ -27,7 +27,9 @@ #--------------------------------------------------------------------------------# set ( SRCS + EMCALTasks/AliAnalysisTaskEMCALClusterize.cxx EMCALTasks/AliAnalysisTaskEMCALClusterizeFast.cxx + EMCALTasks/AliAnalysisTaskEMCALPi0CalibSelection.cxx EMCALTasks/AliAnalysisTaskEMCALPi0PbPb.cxx EMCALTasks/AliAnalysisTaskEMCALTriggerQA.cxx EMCALTasks/AliEmcalEsdTpcTrackTask.cxx @@ -37,8 +39,8 @@ set ( SRCS EMCALTasks/AliEmcalTrackPropagatorTask.cxx EMCALTasks/AliEsdSkimTask.cxx EMCALTasks/AliEsdTrackExt.cxx - EMCALTasks/AliAnalysisTaskEMCALPi0CalibSelection.cxx - EMCALTasks/AliAnalysisTaskEMCALClusterize.cxx + EMCALTasks/AliPicoTrack.cxx + EMCALTasks/AliStaObjects.cxx ) string ( REPLACE ".cxx" ".h" HDRS "${SRCS}" ) diff --git a/PWGGA/EMCALTasks/AliPicoTrack.cxx b/PWGGA/EMCALTasks/AliPicoTrack.cxx new file mode 100644 index 00000000000..856d28868b2 --- /dev/null +++ b/PWGGA/EMCALTasks/AliPicoTrack.cxx @@ -0,0 +1,74 @@ +// $Id$ +// +// Track class with minimal number of information +// (targets at selection of primary tracks) +// + +#include "AliPicoTrack.h" + +//_________________________________________________________________________________________________ +AliPicoTrack::AliPicoTrack() : + AliVTrack(), + fPt(0), fEta(0), fPhi(0), fQ(0), fLabel(-1), fEtaEmc(0), fPhiEmc(0), fEmcal(0) +{ + // Default constructor. +} + +//_________________________________________________________________________________________________ +AliPicoTrack::AliPicoTrack(Double_t pt, Double_t eta, Double_t phi, Byte_t q, Byte_t lab, + Double_t etaemc, Double_t phiemc, Bool_t ise) : + AliVTrack(), + fPt(pt), fEta(eta), fPhi(phi), fQ(q), fLabel(lab), + fEtaEmc(etaemc), fPhiEmc(phiemc), fEmcal(ise) +{ + // Constructor. +} + +//_________________________________________________________________________________________________ +AliPicoTrack::AliPicoTrack(const AliPicoTrack &pc) : + AliVTrack(pc), + fPt(pc.fPt), fEta(pc.fEta), fPhi(pc.fPhi), + fQ(pc.fQ), fLabel(pc.fLabel), + fEtaEmc(pc.fEtaEmc), fPhiEmc(pc.fPhiEmc), fEmcal(pc.fEmcal) +{ + // Constructor. +} + +//_________________________________________________________________________________________________ +AliPicoTrack &AliPicoTrack::operator=(const AliPicoTrack &pc) +{ + // Assignment operator. + + if (this!=&pc) { + AliVTrack::operator=(pc); + fPt = pc.fPt; + fEta = pc.fEta; + fPhi = pc.fPhi; + fQ = pc.fQ; + fLabel = pc.fLabel; + fEtaEmc = pc.fEtaEmc; + fPhiEmc = pc.fPhiEmc; + fEmcal = pc.fEmcal; + } + + return *this; +} + +//_________________________________________________________________________________________________ +Int_t AliPicoTrack::Compare(const TObject* obj) const +{ + // Compare this class with an other instance of this class used in a + // TCollection::Sort()/TClonesArray::Sort() which is descending. + // Returns 0 when equal, 1 when this is smaller and -1 when bigger. + + const AliPicoTrack *t = dynamic_cast(obj); + if (!t) + return -1; + if (t->Pt()>Pt()) + return 1; + if (t->Pt() + +class AliPicoTrack: public AliVTrack { + public: + AliPicoTrack(); + AliPicoTrack(Double_t pt, Double_t eta, Double_t phi, Byte_t q, Byte_t lab, + Double_t etaemc=0, Double_t phiemc=0, Bool_t ise=0); + ~AliPicoTrack() {;} + AliPicoTrack(const AliPicoTrack &pc); + AliPicoTrack &operator=(const AliPicoTrack &pc); + + Double_t Px() const { return fPt*TMath::Cos(fPhi); } + Double_t Py() const { return fPt*TMath::Cos(fPhi); } + Double_t Pz() const { return fPt*TMath::SinH(fEta); } + Double_t Pt() const { return fPt; } + Double_t P() const { return fPt*TMath::CosH(fEta); } + Bool_t PxPyPz(Double_t p[3]) const { p[0]=Px();p[1]=Py();p[2]=Pz(); return 1; } + Double_t Xv() const { return 0.; } + Double_t Yv() const { return 0.; } + Double_t Zv() const { return 0.; } + Bool_t XvYvZv(Double_t x[3]) const { x[0]=0;x[1]=0;x[2]=0; return 1; } + Double_t OneOverPt() const { return 1./fPt; } + Double_t Phi() const { return fPhi; } + Double_t Theta() const { return 2*TMath::ATan(TMath::Exp(-fEta)); } + Double_t E() const { Double_t p=P(); return TMath::Sqrt(M()*M()+p*p); } + Double_t M() const { return 0.13957; } + Double_t Eta() const { return fEta; } + Double_t Y() const { return 0.5*TMath::Log((E()+Pz())/(E()-Pz())); } + Short_t Charge() const { return fQ; } + Int_t GetLabel() const { return fLabel; } + Int_t PdgCode() const { return 0; } + const Double_t *PID() const { return 0; } + Int_t GetID() const { return 0; } + UChar_t GetITSClusterMap() const { return 0; } + Int_t GetEMCALcluster() const { return -1; } + Double_t GetEtaEmc() const { return fEtaEmc; } + Double_t GetPhiEmc() const { return fPhiEmc; } + Bool_t IsEMCAL() const { return fEmcal; } + ULong_t GetStatus() const { return 0; } + Bool_t GetXYZ(Double_t *v) const { v[0]=0; v[1]=0; v[2]=0; return 0; } + Double_t GetBz() const { return 0; } + void GetBxByBz(Double_t b[3]) const {b[0]=0;b[1]=0;b[2]=0;} + Bool_t GetCovarianceXYZPxPyPz(Double_t /*cv*/[21]) const {return 0;} + Int_t Compare(const TObject* obj) const; + Bool_t PropagateToDCA(const AliVVertex *, Double_t, Double_t, Double_t *, Double_t *) { return 0; } + void SetEMCALcluster(Int_t) {;} + + protected: + Double32_t fPt; //[0,0,12] pt at vertex + Double32_t fEta; //[-1,1,12] eta at vertex + Double32_t fPhi; //[0,6.3,12] phi at vertex + Byte_t fQ; // charge + Byte_t fLabel; // label + Double32_t fEtaEmc; //[-1,1,12] eta at emcal surface + Double32_t fPhiEmc; //[0,6.3,12] phi at emcal surface + Bool_t fEmcal; // is true if track propagated to emcal + + ClassDef(AliPicoTrack, 1) // Pico track class +}; +#endif diff --git a/PWGGA/PWGGAEMCALTasksLinkDef.h b/PWGGA/PWGGAEMCALTasksLinkDef.h index b41e181f7ce..d155d57d923 100644 --- a/PWGGA/PWGGAEMCALTasksLinkDef.h +++ b/PWGGA/PWGGAEMCALTasksLinkDef.h @@ -4,8 +4,9 @@ #pragma link off all classes; #pragma link off all functions; -// EmcalTasks +#pragma link C++ class AliAnalysisTaskEMCALClusterize+; #pragma link C++ class AliAnalysisTaskEMCALClusterizeFast+; +#pragma link C++ class AliAnalysisTaskEMCALPi0CalibSelection+; #pragma link C++ class AliAnalysisTaskEMCALPi0PbPb+; #pragma link C++ class AliAnalysisTaskEMCALPi0PbPb+; #pragma link C++ class AliAnalysisTaskEMCALTriggerQA+; @@ -16,12 +17,11 @@ #pragma link C++ class AliEmcalTrackPropagatorTask+; #pragma link C++ class AliEsdSkimTask+; #pragma link C++ class AliEsdTrackExt+; -#pragma link C++ class AliStaHeader+; +#pragma link C++ class AliPicoTrack+; #pragma link C++ class AliStaCluster+; -#pragma link C++ class AliStaVertex+; -#pragma link C++ class AliStaTrigger+; +#pragma link C++ class AliStaHeader+; #pragma link C++ class AliStaPart+; -#pragma link C++ class AliAnalysisTaskEMCALPi0CalibSelection+; -#pragma link C++ class AliAnalysisTaskEMCALClusterize+; +#pragma link C++ class AliStaTrigger+; +#pragma link C++ class AliStaVertex+; #endif -- 2.43.5