Pdg code added to track list.
authormorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 22 May 2002 13:48:43 +0000 (13:48 +0000)
committermorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 22 May 2002 13:48:43 +0000 (13:48 +0000)
EMCAL/AliEMCALJet.cxx
EMCAL/AliEMCALJet.h
EMCAL/AliEMCALJetFinder.cxx
EMCAL/AliEMCALJetFinder.h

index 8790da7..35e673c 100644 (file)
  * provided "as is" without express or implied warranty.                  *
  **************************************************************************/
 
-/* $Id$ */
+
+/*
+$Log$
+*/
 
 //*-- Author: Andreas Morsch (CERN)
 
@@ -43,7 +46,7 @@ AliEMCALJet::~AliEMCALJet()
 }
 
 
-void AliEMCALJet::SetTrackList(Int_t n, Float_t* pt, Float_t* eta, Float_t* phi)
+void AliEMCALJet::SetTrackList(Int_t n, Float_t* pt, Float_t* eta, Float_t* phi, Int_t* pdg)
 {
 //
 // 
@@ -52,12 +55,13 @@ void AliEMCALJet::SetTrackList(Int_t n, Float_t* pt, Float_t* eta, Float_t* phi)
        fPtT [i]  = pt [i];
        fEtaT[i]  = eta[i];
        fPhiT[i]  = phi[i];
+       fPdgT[i]  = pdg[i];
     }
 }
 
 
 
-Int_t AliEMCALJet::TrackList(Float_t* pt, Float_t* eta, Float_t* phi)
+Int_t AliEMCALJet::TrackList(Float_t* pt, Float_t* eta, Float_t* phi, Int_t* pdg)
 {
 //
 // 
@@ -65,6 +69,7 @@ Int_t AliEMCALJet::TrackList(Float_t* pt, Float_t* eta, Float_t* phi)
        pt [i] = fPtT [i];
        eta[i] = fEtaT[i];
        phi[i] = fPhiT[i];
+       pdg[i] = fPdgT[i];
     }
     return fNt;
 }
index 3cb6e7f..f4c3f3a 100644 (file)
@@ -17,11 +17,11 @@ class AliEMCALJet : public TObject {
   void SetEnergy(Float_t val) {fEnergy = val;}
   void SetPhi(Float_t val)    {fPhi    = val;}  
   void SetEta(Float_t val)    {fEta    = val;}    
-  void SetTrackList(Int_t val, Float_t* pt, Float_t* eta, Float_t* phi);
+  void SetTrackList(Int_t val, Float_t* pt, Float_t* eta, Float_t* phi, Int_t* pdg);
   Float_t Energy()  {return fEnergy;}
   Float_t Phi()     {return fPhi;}
   Float_t Eta()     {return fEta;}
-  Int_t   TrackList(Float_t* pt, Float_t* eta, Float_t* phi);
+  Int_t   TrackList(Float_t* pt, Float_t* eta, Float_t* phi, Int_t* pdg);
   Int_t   NTracks() {return fNt;} 
   
 protected:
@@ -29,10 +29,11 @@ protected:
   Float_t  fEta;      // Jet Phi
   Float_t  fPhi;      // Jet Eta
   Int_t    fNt;       // Number of associated tracks
-  Float_t  fPtT [50]; //
-  Float_t  fEtaT[50]; //
-  Float_t  fPhiT[50]; //
-  ClassDef(AliEMCALJet,2) // Jet for EMCAL
+  Float_t  fPtT [50]; // Track pt 
+  Float_t  fEtaT[50]; // Track eta
+  Float_t  fPhiT[50]; // Track phi
+  Int_t    fPdgT[50]; // Track pdg code
+  ClassDef(AliEMCALJet,3) // Jet for EMCAL
 
 } ;
 
index 235d044..2207ddf 100644 (file)
@@ -15,6 +15,9 @@
 
 /*
 $Log$
+Revision 1.21  2002/04/27 07:43:08  morsch
+Calculation of fDphi corrected (Renan Cabrera)
+
 Revision 1.20  2002/03/12 01:06:23  pavlinov
 Testin output from generator
 
@@ -116,6 +119,7 @@ Revision 1.3  2002/01/18 05:07:56  morsch
 #include "AliEMCAL.h"
 #include "AliHeader.h"
 #include "AliPDG.h"
+#include "AliMC.h"
 
 // Interface to FORTRAN
 #include "Ecommon.h"
@@ -136,11 +140,13 @@ AliEMCALJetFinder::AliEMCALJetFinder()
     fPtT              = 0;
     fEtaT             = 0;
     fPhiT             = 0;
-
+    fPdgT             = 0;
+    
     fTrackListB       = 0;
     fPtB              = 0;
     fEtaB             = 0;
     fPhiB             = 0;
+    fPdgB             = 0;
 
     fHCorrection      = 0;
     fHadronCorrector  = 0;
@@ -175,11 +181,13 @@ AliEMCALJetFinder::AliEMCALJetFinder(const char* name, const char *title)
     fPtT        = 0;
     fEtaT       = 0;
     fPhiT       = 0;
+    fPdgT       = 0;
 
     fTrackListB       = 0;
     fPtB        = 0;
     fEtaB       = 0;
     fPhiB       = 0;
+    fPdgB       = 0;
 
     fHCorrection      = 0;
     fHadronCorrector  = 0;
@@ -226,12 +234,11 @@ AliEMCALJetFinder::~AliEMCALJetFinder()
 
 #ifndef WIN32
 # define jet_finder_ua1 jet_finder_ua1_
-# define sgpdge sgpdge_
 # define hf1 hf1_
 # define type_of_call
 
 #else
-# define jet_finder_ua1 J
+# define jet_finder_ua1 JET_FINDER_UA1
 # define hf1 HF1
 # define type_of_call _stdcall
 #endif
@@ -244,9 +251,7 @@ jet_finder_ua1(Int_t& ncell, Int_t& ncell_tot,
               Float_t& prec_bg,  Int_t& ierror);
 
 extern "C" void type_of_call hf1(Int_t& id, Float_t& x, Float_t& wgt);
-// PAI's staff 
-extern "C" void  type_of_call sgpdge(Int_t &i, Int_t &pdggea);
-// int    pycomp_(int*    kf); see $ROOTSYS/include/TPythia6Calls.h
+
 
 void AliEMCALJetFinder::Init()
 {
@@ -639,11 +644,13 @@ void AliEMCALJetFinder::FillFromTracks(Int_t flag, Int_t ich)
     if (fPtT)       delete[] fPtT;
     if (fEtaT)      delete[] fEtaT;
     if (fPhiT)      delete[] fPhiT;
+    if (fPdgT)      delete[] fPdgT;
     
     fTrackList = new Int_t  [npart];
     fPtT       = new Float_t[npart];
     fEtaT      = new Float_t[npart];
     fPhiT      = new Float_t[npart];
+    fPdgT      = new Int_t[npart];
 
     fNt   = npart;
     fNtS  = 0;
@@ -683,6 +690,8 @@ void AliEMCALJetFinder::FillFromTracks(Int_t flag, Int_t ich)
        fPtT[part]       = pT; // must be change after correction for resolution !!!
        fEtaT[part]      = eta;
        fPhiT[part]      = phi;
+       fPdgT[part]      = mpart;
+       
 
        if (part < 2) continue;
 
@@ -983,10 +992,12 @@ void AliEMCALJetFinder::FillFromHitFlaggedTracks(Int_t flag)
     if (fPtT)       delete[] fPtT;   
     if (fEtaT)      delete[] fEtaT;    
     if (fPhiT)      delete[] fPhiT;   
+    if (fPdgT)      delete[] fPdgT;   
    
     fPtT       = new Float_t[ntracks];
     fEtaT      = new Float_t[ntracks];
     fPhiT      = new Float_t[ntracks];
+    fPdgT      = new Int_t[ntracks];
 
     fNt   = ntracks;
     fNtS  = 0;
@@ -1001,7 +1012,8 @@ void AliEMCALJetFinder::FillFromHitFlaggedTracks(Int_t flag)
          fPtT[track]       = pT;
          fEtaT[track]      = eta;
          fPhiT[track]      = phi;
-
+         fPdgT[track]      = MPart->GetPdgCode();
+         
          if (track < 2) continue;      //Colliding particles?
          if (pT == 0 || pT < fPtCut) continue;
          fNtS++;
@@ -1055,16 +1067,18 @@ void AliEMCALJetFinder::FillFromParticles()
         e       = MPart->Energy();
 
 // see pyedit in Pythia's text
-        sgpdge(mpart, geantPdg);
-        Int_t kc = pycomp_(&mpart);
-        TString name = GetPythiaParticleName(mpart);
+        geantPdg = mpart;
+//        Int_t kc = pycomp_(&mpart);
+//        TString name = GetPythiaParticleName(mpart);
        //        printf(" mpart %6.6i;kc %6.6i -> gid %3.3i",mpart,kc,geantPdg);
         //printf(" (%s)\n", name.Data());
-        printf("%5i: %5i(%2i) px %5.1f py %5.1f pz %6.1f e %6.1f childs %5i,%5i %s\n", 
-        part, mpart, geantPdg, px, py, pz, e, child1, child2, name.Data());
+       if (IsThisPartonsOrDiQuark(mpart)) continue;
+        printf("%5i: %5i(%2i) px %5.1f py %5.1f pz %6.1f e %6.1f childs %5i,%5i \n", 
+        part, mpart, geantPdg, px, py, pz, e, child1, child2);
        
 //  exclude partons (21 - gluon, 92 - string) 
-       if (IsThisPartonsOrDiQuark(mpart)) continue;
+       
+
 // exclude neutrinous also ??
        if (fDebug >= 11 && pT>0.01) 
        printf("\n part:%5d mpart %5d eta %9.2f phi %9.2f pT %9.2f ",
@@ -1073,7 +1087,8 @@ void AliEMCALJetFinder::FillFromParticles()
        fPtT[part]       = pT;
        fEtaT[part]      = eta;
        fPhiT[part]      = phi;
-
+       fPdgT[part]      = mpart;
+       
 // final state only
        if (child1 >= 0 && child1 < npart) continue;
 
@@ -1287,11 +1302,13 @@ void AliEMCALJetFinder::SaveBackgroundEvent()
     if (fPtB)        delete[] fPtB;   
     if (fEtaB)       delete[] fEtaB;    
     if (fPhiB)       delete[] fPhiB;   
+    if (fPdgB)       delete[] fPdgB;   
     if (fTrackListB) delete[] fTrackListB;   
    
     fPtB          = new Float_t[fNtS];
     fEtaB         = new Float_t[fNtS];
     fPhiB         = new Float_t[fNtS];
+    fPdgB         = new Int_t  [fNtS];
     fTrackListB   = new Int_t  [fNtS];
     
     fNtB = 0;
@@ -1301,6 +1318,8 @@ void AliEMCALJetFinder::SaveBackgroundEvent()
        fPtB [fNtB]       = fPtT [i];
        fEtaB[fNtB]       = fEtaT[i];
        fPhiB[fNtB]       = fPhiT[i];
+       fPdgB[fNtB]       = fPdgT[i];
+
        fTrackListB[fNtB] = 1;
        fNtB++;
     }
@@ -1376,6 +1395,8 @@ void AliEMCALJetFinder::FindTracksInJetCone()
        Float_t* ptT  = new Float_t[nT0];
        Float_t* etaT = new Float_t[nT0];
        Float_t* phiT = new Float_t[nT0];
+       Int_t*   pdgT = new Int_t[nT0];
+
        Int_t iT = 0;
        Int_t j;
        
@@ -1392,10 +1413,12 @@ void AliEMCALJetFinder::FindTracksInJetCone()
                    ptT [j+1]  = ptT [j];
                    etaT[j+1]  = etaT[j];
                    phiT[j+1]  = phiT[j];
+                   pdgT[j+1]  = pdgT[j];
                }
                ptT [index] = fPtT [part];
                etaT[index] = fEtaT[part];
                phiT[index] = fPhiT[part];
+               pdgT[index] = fPdgT[part];
                iT++;
            } // particle associated
            if (iT > nT0) break;
@@ -1416,20 +1439,24 @@ void AliEMCALJetFinder::FindTracksInJetCone()
                        ptT [j+1]  = ptT [j];
                        etaT[j+1]  = etaT[j];
                        phiT[j+1]  = phiT[j];
+                       pdgT[j+1]  = pdgT[j];
                    }
                    ptT [index] = fPtB [part];
                    etaT[index] = fEtaB[part];
                    phiT[index] = fPhiB[part];
+                   pdgT[index] = fPdgB[part];
                    iT++;
                } // particle associated
                if (iT > nT0) break;
            } // particle loop
        } // Background available ?
 
-       fJetT[nj]->SetTrackList(nT0, ptT, etaT, phiT);
+       fJetT[nj]->SetTrackList(nT0, ptT, etaT, phiT, pdgT);
        delete[] ptT;
        delete[] etaT;
        delete[] phiT;
+       delete[] pdgT;
+       
     } // jet loop loop
 }
 
@@ -1601,12 +1628,14 @@ void AliEMCALJetFinder::RearrangeParticlesMemory(Int_t npart)
     if (fPtT)       delete[] fPtT;
     if (fEtaT)      delete[] fEtaT;
     if (fPhiT)      delete[] fPhiT;
+    if (fPdgT)      delete[] fPdgT;
     
     if(npart>0) { 
        fTrackList = new Int_t  [npart];
        fPtT       = new Float_t[npart];
        fEtaT      = new Float_t[npart];
        fPhiT      = new Float_t[npart];
+       fPdgT      = new Int_t[npart];
     } else {
        printf("AliEMCALJetFinder::RearrangeParticlesMemory : npart = %d\n", npart);
     }
index b905895..810a340 100644 (file)
@@ -161,12 +161,14 @@ class AliEMCALJetFinder : public TTask {
     Float_t*                       fPtT;             //! Pt   of tracks 
     Float_t*                       fEtaT;            //! Eta  of tracks
     Float_t*                       fPhiT;            //! Phi  of tracks
-
+    Int_t*                         fPdgT;            //! PDG code of tracks
     Int_t                          fNtB;             //! number of tracks in Bg
     Int_t*                         fTrackListB;      //! List of selected tracks in Bg
     Float_t*                       fPtB;             //! Pt   of tracks in Bg
     Float_t*                       fEtaB;            //! Eta  of tracks in Bg
     Float_t*                       fPhiB;            //! Phi  of tracks in Bg
+    Int_t*                         fPdgB;            //! PDG  of tracks in Bg
 
     // parameter for jet_finder_ua1
     Int_t                          fMode;            // key for BG subtraction