]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Phi propagation introduced in FillFromTracks.
authormorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 21 Jan 2002 11:03:21 +0000 (11:03 +0000)
committermorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 21 Jan 2002 11:03:21 +0000 (11:03 +0000)
EMCAL/AliEMCALJetFinder.cxx
EMCAL/AliEMCALJetFinder.h

index 7d5699c3ccd06baa4b9999e78829fb39d8ba69a8..8507986059b1c1f5ed454d54504b47dd4146f83e 100644 (file)
 
 /*
 $Log$
+Revision 1.3  2002/01/18 05:07:56  morsch
+- hadronic correction
+- filling of digits
+- track selection upon EMCAL information
+
 */
 
 //*-- Author: Andreas Morsch (CERN)
@@ -39,6 +44,8 @@ $Log$
 #include "AliEMCALHadronCorrection.h"
 #include "Ecommon.h"
 #include "AliRun.h"
+#include "AliMagF.h"
+#include "AliMagFCM.h"
 #include "AliEMCAL.h"
 #include "AliHeader.h"
 
@@ -452,9 +459,10 @@ void AliEMCALJetFinder::FillFromTracks(Int_t flag, Int_t ich)
 
        if (part < 2) continue;
        if (pT == 0 || pT < fPtCut) continue;
+       TParticlePDG* pdgP = 0;
 // charged or neutral 
        if (ich == 0) {
-           TParticlePDG* pdgP = MPart->GetPDG();
+           pdgP = MPart->GetPDG();
            if (pdgP->Charge() == 0) continue;
        } 
 // skip partons
@@ -471,6 +479,14 @@ void AliEMCALJetFinder::FillFromTracks(Int_t flag, Int_t ich)
        printf("\n sel:%5d %5d %5d %8.2f %8.2f %8.2f",
        part, mpart, child1, eta, phi, pT);
 //
+//
+// phi propagation 
+
+       Bool_t curls = kFALSE;
+       Float_t dphi = PropagatePhi(pT, pdgP->Charge(), curls);
+       if (curls) continue;
+       phi += dphi;
+//
 // Momentum smearing goes here ...
 //
        if (fSmear) {
@@ -866,6 +882,37 @@ void AliEMCALJetFinder::FindTracksInJetCone()
     } // jet loop loop
 }
 
+Float_t AliEMCALJetFinder::PropagatePhi(Float_t pt, Float_t charge, Bool_t& curls)
+{
+// Propagates phi angle to EMCAL radius
+//
+    Float_t dPhi = 0.;
+// Get field
+    Float_t b =  ((AliMagFCM*) gAlice->Field())->SolenoidField();
+// Get EMCAL radius 
+    Float_t rEMCAL = AliEMCALGeometry::GetInstance()->GetIPDistance();
+//
+//
+// bending radies
+    Float_t rB = 3.3356 * pt / b;
+    
+//
+// check if particle is curling below EMCAL
+    if (2.*rB < rEMCAL) {
+       curls = kTRUE;
+       return dPhi;
+    }
+//
+// if not calculate delta phi
+    Float_t phi = TMath::ACos(1.-rEMCAL*rEMCAL/(2.*rB*rB));
+    dPhi = TMath::ATan2(1.-TMath::Cos(phi), TMath::Sin(phi));
+    dPhi = TMath::Sign(dPhi, charge);
+//    
+    return dPhi;
+    
+}
+
+
 void hf1(Int_t& id, Float_t& x, Float_t& wgt)
 {
 // dummy for hbook calls
index d09123af06a6d327f3720c89e6a3da22a2c3f4f9..5b1dd5dfb0a9eb4e8aa820312dab03b23b8a5c15 100644 (file)
@@ -67,6 +67,7 @@ class AliEMCALJetFinder : public TTask {
     virtual void BookLego();
     virtual void DumpLego();
     virtual void ResetMap();
+    virtual Float_t PropagatePhi(Float_t pt, Float_t charge, Bool_t& curls);
  protected:
     TClonesArray*                  fJets;            //! List of Jets
     TH2F*                          fLego;            //! Lego Histo