]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG4/PartCorrDep/AliAnaElectron.cxx
remove ; after include
[u/mrichter/AliRoot.git] / PWG4 / PartCorrDep / AliAnaElectron.cxx
index 61e8dd4b8884d8bba973581a536d57ba241ffbf5..9d1e312b5fbd108e5105987e8e34d294315359b9 100755 (executable)
@@ -29,7 +29,7 @@
 #include <TParticle.h>\r
 #include <TNtuple.h>\r
 #include <TClonesArray.h>\r
-#include <TObjString.h>\r
+//#include <TObjString.h>\r
 //#include <Riostream.h>\r
 \r
 // --- Analysis system --- \r
@@ -37,7 +37,7 @@
 #include "AliCaloTrackReader.h"\r
 #include "AliMCAnalysisUtils.h"\r
 #include "AliAODCaloCluster.h"\r
-#include "AliFidutialCut.h"\r
+#include "AliFiducialCut.h"\r
 #include "AliAODTrack.h"\r
 #include "AliAODPid.h"\r
 #include "AliCaloPID.h"\r
@@ -74,6 +74,9 @@ AliAnaElectron::AliAnaElectron()
   fhPtElectron(0),fhPhiElectron(0),fhEtaElectron(0),\r
   fhPtNPE(0),fhPhiNPE(0),fhEtaNPE(0),\r
   fhPtPE(0),fhPhiPE(0),fhEtaPE(0),\r
+  //for comparisons with tracking detectors\r
+  fhPtHadron(0),fhPtNPEleTPC(0),fhPtNPEleTPCTRD(0),fhPtNPEleTTE(0),\r
+  fhPtNPEleEMCAL(0),\r
   //DVM B-tagging\r
   fhDVMBtagCut1(0),fhDVMBtagCut2(0),fhDVMBtagCut3(0),fhDVMBtagQA1(0),fhDVMBtagQA2(0),\r
   fhDVMBtagQA3(0),fhDVMBtagQA4(0),fhDVMBtagQA5(0),\r
@@ -89,8 +92,8 @@ AliAnaElectron::AliAnaElectron()
   //reco electrons from various sources\r
   fhPhiConversion(0),fhEtaConversion(0),\r
   //for comparisons with tracking detectors\r
-  fhPtTrack(0),fhPtHadron(0),fhPtNPEleTPC(0),fhPtNPEleTPCTRD(0),fhPtNPEleTTE(0),\r
-  fhPtNPEleEMCAL(0),fhPtNPEBHadron(0),\r
+  fhPtTrack(0),\r
+  fhPtNPEBHadron(0),\r
   //for computing efficiency of B-jet tags\r
   fhBJetPt1x4(0),fhBJetPt2x3(0),fhBJetPt3x2(0),\r
   fhFakeJetPt1x4(0),fhFakeJetPt2x3(0),fhFakeJetPt3x2(0),fhDVMJet(0),\r
@@ -134,6 +137,10 @@ AliAnaElectron::AliAnaElectron(const AliAnaElectron & g)
     fhPtElectron(g.fhPtElectron),fhPhiElectron(g.fhPhiElectron),fhEtaElectron(g.fhEtaElectron),\r
     fhPtNPE(g.fhPtNPE),fhPhiNPE(g.fhPhiNPE),fhEtaNPE(g.fhEtaNPE),\r
     fhPtPE(g.fhPtPE),fhPhiPE(g.fhPhiPE),fhEtaPE(g.fhEtaPE),\r
+    //for comparisons with tracking detectors\r
+    fhPtHadron(g.fhPtHadron),fhPtNPEleTPC(g.fhPtNPEleTPC),\r
+    fhPtNPEleTPCTRD(g.fhPtNPEleTPCTRD),fhPtNPEleTTE(g.fhPtNPEleTTE),\r
+    fhPtNPEleEMCAL(g.fhPtNPEleEMCAL),\r
     //DVM B-tagging\r
     fhDVMBtagCut1(g.fhDVMBtagCut1),fhDVMBtagCut2(g.fhDVMBtagCut2),fhDVMBtagCut3(g.fhDVMBtagCut3),\r
     fhDVMBtagQA1(g.fhDVMBtagQA1),fhDVMBtagQA2(g.fhDVMBtagQA2),\r
@@ -153,9 +160,8 @@ AliAnaElectron::AliAnaElectron(const AliAnaElectron & g)
     //reco electrons from various sources\r
     fhPhiConversion(g.fhPhiConversion),fhEtaConversion(g.fhEtaConversion),\r
     //for comparisons with tracking detectors\r
-    fhPtTrack(g.fhPtTrack),fhPtHadron(g.fhPtHadron),fhPtNPEleTPC(g.fhPtNPEleTPC),\r
-    fhPtNPEleTPCTRD(g.fhPtNPEleTPCTRD),fhPtNPEleTTE(g.fhPtNPEleTTE),\r
-    fhPtNPEleEMCAL(g.fhPtNPEleEMCAL),fhPtNPEBHadron(g.fhPtNPEBHadron),\r
+    fhPtTrack(g.fhPtTrack),\r
+    fhPtNPEBHadron(g.fhPtNPEBHadron),\r
     //for computing efficiency of B-jet tags\r
     fhBJetPt1x4(g.fhBJetPt1x4),fhBJetPt2x3(g.fhBJetPt2x3),\r
     fhBJetPt3x2(g.fhBJetPt3x2),\r
@@ -234,6 +240,10 @@ AliAnaElectron & AliAnaElectron::operator = (const AliAnaElectron & g)
   fhPtPE = g.fhPtPE;\r
   fhPhiPE = g.fhPhiPE;\r
   fhEtaPE = g.fhEtaPE; \r
+  //for comparisons with tracking detectors\r
+  fhPtHadron = g.fhPtHadron; fhPtNPEleTPC = g.fhPtNPEleTPC; \r
+  fhPtNPEleTPCTRD = g.fhPtNPEleTPCTRD; fhPtNPEleTTE = g.fhPtNPEleTTE; \r
+  fhPtNPEleEMCAL = g.fhPtNPEleEMCAL; \r
   //DVM B-tagging\r
   fhDVMBtagCut1 = g.fhDVMBtagCut1;\r
   fhDVMBtagCut2 = g.fhDVMBtagCut2; \r
@@ -269,9 +279,7 @@ AliAnaElectron & AliAnaElectron::operator = (const AliAnaElectron & g)
   fhEtaConversion = g.fhEtaConversion;\r
   //for comparisons with tracking detectors\r
   fhPtTrack = g.fhPtTrack;\r
-  fhPtHadron = g.fhPtHadron; fhPtNPEleTPC = g.fhPtNPEleTPC; \r
-  fhPtNPEleTPCTRD = g.fhPtNPEleTPCTRD; fhPtNPEleTTE = g.fhPtNPEleTTE; \r
-  fhPtNPEleEMCAL = g.fhPtNPEleEMCAL; fhPtNPEBHadron = g.fhPtNPEBHadron;\r
+  fhPtNPEBHadron = g.fhPtNPEBHadron;\r
   //for computing efficiency of B-jet tags\r
   fhBJetPt1x4 = g.fhBJetPt1x4; fhBJetPt2x3 = g.fhBJetPt2x3; \r
   fhBJetPt3x2 = g.fhBJetPt3x2;\r
@@ -304,9 +312,9 @@ TList *  AliAnaElectron::GetCreateOutputObjects()
   TList * outputContainer = new TList() ; \r
   outputContainer->SetName("ElectronHistos") ; \r
 \r
-  Int_t nptbins  = GetHistoNPtBins();\r
-  Int_t nphibins = GetHistoNPhiBins();\r
-  Int_t netabins = GetHistoNEtaBins();\r
+  Int_t nptbins  = GetHistoPtBins();\r
+  Int_t nphibins = GetHistoPhiBins();\r
+  Int_t netabins = GetHistoEtaBins();\r
   Float_t ptmax  = GetHistoPtMax();\r
   Float_t phimax = GetHistoPhiMax();\r
   Float_t etamax = GetHistoEtaMax();\r
@@ -396,6 +404,26 @@ TList *  AliAnaElectron::GetCreateOutputObjects()
   outputContainer->Add(fhPhiPE) ; \r
   outputContainer->Add(fhEtaPE) ;\r
 \r
+  //These histograms are mixed REAL/MC:\r
+  //Bins along y-axis are:  \r
+  //0 - unfiltered (filled for both real and MC data) \r
+  //1 - bottom, 2 - charm, 3 - charm from bottom  (MC only)\r
+  //4 - conversion, 5 - Dalitz, 6 - W and Z, 7 - junk/unknown (MC only)\r
+  //8 - misidentified (MC only)\r
+\r
+  //histograms for comparison to tracking detectors\r
+  fhPtHadron = new TH2F("hPtHadron","Charged hadrons w/in EMCAL acceptance",nptbins,ptmin,ptmax,10,0,10);\r
+  fhPtNPEleTPC = new TH2F("hPtNPEleTPC","Non-phot. Electrons identified by TPC w/in EMCAL acceptance",nptbins,ptmin,ptmax,10,0,10);\r
+  fhPtNPEleTPCTRD = new TH2F("hPtNPEleTPCTRD","Non-phot. Electrons identified by TPC+TRD w/in EMCAL acceptance",nptbins,ptmin,ptmax,10,0,10);\r
+  fhPtNPEleTTE = new TH2F("hPtNPEleTTE","Non-phot. Electrons identified by TPC+TRD+EMCAL w/in EMCAL acceptance",nptbins,ptmin,ptmax,10,0,10);    \r
+  fhPtNPEleEMCAL = new TH2F("hPtNPEleEMCAL","Non-phot. Electrons identified by EMCAL w/in EMCAL acceptance",nptbins,ptmin,ptmax,10,0,10);\r
+  \r
+  outputContainer->Add(fhPtHadron);\r
+  outputContainer->Add(fhPtNPEleTPC);\r
+  outputContainer->Add(fhPtNPEleTPCTRD);\r
+  outputContainer->Add(fhPtNPEleTTE);\r
+  outputContainer->Add(fhPtNPEleEMCAL);\r
+\r
   //B-tagging\r
   fhDVMBtagCut1 = new TH2F("hdvmbtag_cut1","DVM B-tag result cut1", 10,0,10 ,nptbins,ptmin,ptmax);\r
   fhDVMBtagCut2 = new TH2F("hdvmbtag_cut2","DVM B-tag result cut2", 10,0,10 ,nptbins,ptmin,ptmax);\r
@@ -474,19 +502,9 @@ TList *  AliAnaElectron::GetCreateOutputObjects()
 \r
     //histograms for comparison to tracking detectors\r
     fhPtTrack  = new TH2F("hPtTrack","Track w/in EMCAL acceptance",nptbins,ptmin,ptmax,10,0,10);\r
-    fhPtHadron = new TH2F("hPtHadron","Charged hadrons w/in EMCAL acceptance",nptbins,ptmin,ptmax,10,0,10);\r
-    fhPtNPEleTPC = new TH2F("hPtNPEleTPC","Non-phot. Electrons identified by TPC w/in EMCAL acceptance",nptbins,ptmin,ptmax,10,0,10);\r
-    fhPtNPEleTPCTRD = new TH2F("hPtNPEleTPCTRD","Non-phot. Electrons identified by TPC+TRD w/in EMCAL acceptance",nptbins,ptmin,ptmax,10,0,10);\r
-    fhPtNPEleTTE = new TH2F("hPtNPEleTTE","Non-phot. Electrons identified by TPC+TRD+EMCAL w/in EMCAL acceptance",nptbins,ptmin,ptmax,10,0,10);    \r
-    fhPtNPEleEMCAL = new TH2F("hPtNPEleEMCAL","Non-phot. Electrons identified by EMCAL w/in EMCAL acceptance",nptbins,ptmin,ptmax,10,0,10);\r
     fhPtNPEBHadron = new TH2F("hPtNPEBHadron","Non-phot. b-electrons (TPC+TRD+EMCAL) vs B-hadron pt w/in EMCAL acceptance",nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);\r
 \r
     outputContainer->Add(fhPtTrack);\r
-    outputContainer->Add(fhPtHadron);\r
-    outputContainer->Add(fhPtNPEleTPC);\r
-    outputContainer->Add(fhPtNPEleTPCTRD);\r
-    outputContainer->Add(fhPtNPEleTTE);\r
-    outputContainer->Add(fhPtNPEleEMCAL);\r
     outputContainer->Add(fhPtNPEBHadron);\r
 \r
     //for computing efficiency of IPSig tag\r
@@ -535,50 +553,50 @@ TList *  AliAnaElectron::GetCreateOutputObjects()
   }//Histos with MC\r
   \r
   //Save parameters used for analysis\r
-  TString parList ; //this will be list of parameters used for this analysis.\r
-  char onePar[500] ;\r
-  \r
-  sprintf(onePar,"--- AliAnaElectron ---\n") ;\r
-  parList+=onePar ;    \r
-  sprintf(onePar,"fCalorimeter: %s\n",fCalorimeter.Data()) ;\r
-  parList+=onePar ;  \r
-  sprintf(onePar,"fpOverEmin: %f\n",fpOverEmin) ;\r
-  parList+=onePar ;  \r
-  sprintf(onePar,"fpOverEmax: %f\n",fpOverEmax) ;\r
-  parList+=onePar ;  \r
-  sprintf(onePar,"fResidualCut: %f\n",fResidualCut) ;\r
-  parList+=onePar ;  \r
-  sprintf(onePar,"fMinClusEne: %f\n",fMinClusEne) ;\r
-  parList+=onePar ;\r
-  sprintf(onePar,"---DVM Btagging\n");\r
-  parList+=onePar ;\r
-  sprintf(onePar,"max IP-cut (e,h): %f\n",fImpactCut);\r
-  parList+=onePar ;\r
-  sprintf(onePar,"min ITS-hits: %d\n",fITSCut);\r
-  parList+=onePar ;\r
-  sprintf(onePar,"max dR (e,h): %f\n",fDrCut);\r
-  parList+=onePar ;\r
-  sprintf(onePar,"max pairDCA: %f\n",fPairDcaCut);\r
-  parList+=onePar ;\r
-  sprintf(onePar,"max decaylength: %f\n",fDecayLenCut);\r
-  parList+=onePar ;\r
-  sprintf(onePar,"min Associated Pt: %f\n",fAssocPtCut);\r
-  parList+=onePar ;\r
-  sprintf(onePar,"---IPSig Btagging\n");\r
-  parList+=onePar ;\r
-  sprintf(onePar,"min tag track: %d\n",fNTagTrkCut);\r
-  parList+=onePar ;\r
-  sprintf(onePar,"min IP significance: %f\n",fIPSigCut);\r
-  parList+=onePar ;\r
-\r
-  //Get parameters set in base class.\r
-  parList += GetBaseParametersList() ;\r
-  \r
-  //Get parameters set in FidutialCut class (not available yet)\r
-  //parlist += GetFidCut()->GetFidCutParametersList() \r
-  \r
-  TObjString *oString= new TObjString(parList) ;\r
-  outputContainer->Add(oString);\r
+//  TString parList ; //this will be list of parameters used for this analysis.\r
+//  char onePar[500] ;\r
+//  \r
+//  sprintf(onePar,"--- AliAnaElectron ---\n") ;\r
+//  parList+=onePar ;  \r
+//  sprintf(onePar,"fCalorimeter: %s\n",fCalorimeter.Data()) ;\r
+//  parList+=onePar ;  \r
+//  sprintf(onePar,"fpOverEmin: %f\n",fpOverEmin) ;\r
+//  parList+=onePar ;  \r
+//  sprintf(onePar,"fpOverEmax: %f\n",fpOverEmax) ;\r
+//  parList+=onePar ;  \r
+//  sprintf(onePar,"fResidualCut: %f\n",fResidualCut) ;\r
+//  parList+=onePar ;  \r
+//  sprintf(onePar,"fMinClusEne: %f\n",fMinClusEne) ;\r
+//  parList+=onePar ;\r
+//  sprintf(onePar,"---DVM Btagging\n");\r
+//  parList+=onePar ;\r
+//  sprintf(onePar,"max IP-cut (e,h): %f\n",fImpactCut);\r
+//  parList+=onePar ;\r
+//  sprintf(onePar,"min ITS-hits: %d\n",fITSCut);\r
+//  parList+=onePar ;\r
+//  sprintf(onePar,"max dR (e,h): %f\n",fDrCut);\r
+//  parList+=onePar ;\r
+//  sprintf(onePar,"max pairDCA: %f\n",fPairDcaCut);\r
+//  parList+=onePar ;\r
+//  sprintf(onePar,"max decaylength: %f\n",fDecayLenCut);\r
+//  parList+=onePar ;\r
+//  sprintf(onePar,"min Associated Pt: %f\n",fAssocPtCut);\r
+//  parList+=onePar ;\r
+//  sprintf(onePar,"---IPSig Btagging\n");\r
+//  parList+=onePar ;\r
+//  sprintf(onePar,"min tag track: %d\n",fNTagTrkCut);\r
+//  parList+=onePar ;\r
+//  sprintf(onePar,"min IP significance: %f\n",fIPSigCut);\r
+//  parList+=onePar ;\r
+//\r
+//  //Get parameters set in base class.\r
+//  parList += GetBaseParametersList() ;\r
+//  \r
+//  //Get parameters set in FiducialCut class (not available yet)\r
+//  //parlist += GetFidCut()->GetFidCutParametersList() \r
+//  \r
+//  TObjString *oString= new TObjString(parList) ;\r
+//  outputContainer->Add(oString);\r
   \r
   return outputContainer ;\r
   \r
@@ -644,8 +662,6 @@ void  AliAnaElectron::MakeAnalysisFillAOD()
   // Also fill some QA histograms\r
   //\r
 \r
-  TObjArray *cl = new TObjArray();\r
-\r
   Double_t bfield = 0.;\r
   if(GetReader()->GetDataType() != AliCaloTrackReader::kMC) bfield = GetReader()->GetBField();\r
 \r
@@ -654,7 +670,8 @@ void  AliAnaElectron::MakeAnalysisFillAOD()
     printf("This class not yet implemented for PHOS\n");\r
     abort();\r
   }\r
-  cl = GetAODEMCAL();\r
+  \r
+  TObjArray *cl = GetAODEMCAL();\r
   \r
   ////////////////////////////////////////////////\r
   //Start from tracks and get associated clusters \r
@@ -703,9 +720,19 @@ void  AliAnaElectron::MakeAnalysisFillAOD()
       Double_t teta = pos.Eta();\r
       Double_t tmom = mom.Mag();\r
       \r
-      TLorentzVector mom2(mom,0.);\r
-      Bool_t in =  GetFidutialCut()->IsInFidutialCut(mom2,fCalorimeter) ;\r
-      if(GetDebug() > 1) printf("AliAnaElectron::MakeAnalysisFillAOD() - Track pt %2.2f, phi %2.2f, eta %2.2f in fidutial cut %d\n",track->Pt(), track->Phi(), track->Eta(), in);\r
+      //TLorentzVector mom2(mom,0.);\r
+      Bool_t in = kFALSE;\r
+      if(mom.Phi()*180./TMath::Pi() > 80. && mom.Phi()*180./TMath::Pi() < 190. &&\r
+        mom.Eta() > -0.7 && mom.Eta() < 0.7) in = kTRUE;\r
+      //Also check the track\r
+      if(track->Phi()*180./TMath::Pi() > 80. && track->Phi()*180./TMath::Pi() < 190. &&\r
+        track->Eta() > -0.7 && track->Eta() < 0.7) in = kTRUE;\r
+      ////////////////////////////\r
+      //THIS HAS A MEM LEAK JLK 24-Oct-09\r
+      //Bool_t in =  GetFiducialCut()->IsInFiducialCut(mom2,fCalorimeter) ;\r
+      ///////////////////////////\r
+      if(GetDebug() > 1) printf("AliAnaElectron::MakeAnalysisFillAOD() - Track(Extrap) pt %2.2f(%2.2f), phi %2.2f(%2.2f), eta %2.2f(%2.2f) in fiducial cut %d\n",track->Pt(), mom.Pt(), track->Phi(), mom.Phi(), track->Eta(),mom.Eta(), in);\r
+\r
       if(mom.Pt() > GetMinPt() && in) {\r
        \r
        Double_t dEdx = pid->GetTPCsignal();\r
@@ -1209,7 +1236,13 @@ void  AliAnaElectron::MakeAnalysisFillHistograms()
 \r
       TLorentzVector mom(px,py,pz,e);\r
       TLorentzVector pos(vx,vy,vz,vt);\r
-      Bool_t in = GetFidutialCut()->IsInFidutialCut(mom,fCalorimeter);\r
+      Bool_t in = kFALSE;\r
+      if(mom.Phi()*180./TMath::Pi() > 80. && mom.Phi()*180./TMath::Pi() < 190. &&\r
+        mom.Eta() > -0.7 && mom.Eta() < 0.7) in = kTRUE;\r
+      /////////////////////////////////\r
+      //THIS HAS A MEM LEAK JLK 24-Oct-09\r
+      //Bool_t in = GetFiducialCut()->IsInFiducialCut(mom,fCalorimeter);\r
+      ////////////////////////////////\r
       if(mom.Pt() < GetMinPt()) continue;\r
       if(!in) continue;\r
 \r
@@ -1352,9 +1385,6 @@ Double_t AliAnaElectron::ComputeSignDca(AliAODTrack *tr, AliAODTrack *tr2 , floa
   Double_t massE = 0.000511;\r
   Double_t massK = 0.493677;\r
 \r
-  Double_t bfield = 5.; //kG\r
-  if(GetReader()->GetDataType() != AliCaloTrackReader::kMC) bfield = GetReader()->GetBField();\r
-\r
   Double_t vertex[3] = {-999.,-999.,-999}; //vertex\r
   if(GetReader()->GetDataType() != AliCaloTrackReader::kMC) {\r
     GetReader()->GetVertex(vertex); //If only one file, get the vertex from there\r
@@ -1371,11 +1401,15 @@ Double_t AliAnaElectron::ComputeSignDca(AliAODTrack *tr, AliAODTrack *tr2 , floa
   AliExternalTrackParam *param1 = new AliExternalTrackParam(tr);\r
   AliExternalTrackParam *param2 = new AliExternalTrackParam(tr2);\r
 \r
+  Double_t bfield[3];\r
+  param1->GetBxByBz(bfield);\r
+  Double_t bz = param1->GetBz();\r
+\r
   Double_t xplane1 = 0.; Double_t xplane2 = 0.;\r
-  Double_t pairdca = param1->GetDCA(param2,bfield,xplane1,xplane2);\r
+  Double_t pairdca = param1->GetDCA(param2,bz,xplane1,xplane2);\r
 \r
-  param1->PropagateTo(xplane1,bfield);\r
-  param2->PropagateTo(xplane2,bfield);\r
+  param1->PropagateToBxByBz(xplane1,bfield);\r
+  param2->PropagateToBxByBz(xplane2,bfield);\r
 \r
   Int_t id1 = 0, id2 = 0;\r
   AliESDv0 bvertex(*param1,id1,*param2,id2);\r
@@ -1393,6 +1427,8 @@ Double_t AliAnaElectron::ComputeSignDca(AliAODTrack *tr, AliAODTrack *tr2 , floa
   decayvector = secvtxpt - primV; //decay vector from PrimVtx\r
   Double_t decaylength = decayvector.Mag();\r
 \r
+  printf("\t JLK pairDCA = %2.2f\n",pairdca);\r
+\r
   if(GetDebug() > 0) {\r
     printf(">>ComputeSdca:: mom1=%f, mom2=%f \n", emomAtB.Perp(), hmomAtB.Perp() );\r
     printf(">>ComputeSdca:: pairDCA=%f, length=%f \n", pairdca,decaylength );\r
@@ -1445,7 +1481,6 @@ Double_t AliAnaElectron::GetIPSignificance(AliAODTrack *tr, Double_t jetPhi)
   }\r
 \r
   Double_t significance=0;\r
-  Double_t magField = 0;\r
   Double_t maxD = 10000.;\r
   Double_t impPar[] = {0,0};\r
   Double_t ipCov[]={0,0,0};\r
@@ -1458,7 +1493,9 @@ Double_t AliAnaElectron::GetIPSignificance(AliAODTrack *tr, Double_t jetPhi)
   AliVTrack* vTrack = (AliVTrack*)vEvent->GetTrack(trackIndex);\r
   if(!vTrack) return -99;\r
   AliESDtrack esdTrack(vTrack);\r
-  if(!esdTrack.PropagateToDCA(vv, magField, maxD, impPar, ipCov)) return -100;\r
+  Double_t bfield[3];\r
+  esdTrack.GetBxByBz(bfield);\r
+  if(!esdTrack.PropagateToDCABxByBz(vv, bfield, maxD, impPar, ipCov)) return -100;\r
   if(ipCov[0]<0) return -101;\r
 \r
   Double_t Pxy[] = {esdTrack.Px(), esdTrack.Py()};\r
@@ -1469,6 +1506,7 @@ Double_t AliAnaElectron::GetIPSignificance(AliAODTrack *tr, Double_t jetPhi)
   Double_t cosTheta = TMath::Cos(jetPhi - phiIP);\r
   Double_t sign = cosTheta/TMath::Abs(cosTheta);\r
   significance = TMath::Abs(impPar[0])/TMath::Sqrt(ipCov[0])*sign;\r
+  printf("\t JLK significance = %2.2f\n",significance);\r
   //ip = fabs(impPar[0]);\r
   fhIPSigBtagQA2->Fill(significance);\r
   return significance;\r
@@ -1515,9 +1553,6 @@ Bool_t AliAnaElectron::PhotonicPrim(const AliAODPWG4Particle* part)
   Double_t massOmega = 0.782;\r
   Double_t massPhi = 1.020;\r
 \r
-  Double_t bfield = 5.; //kG\r
-  if(GetReader()->GetDataType() != AliCaloTrackReader::kMC) bfield = GetReader()->GetBField();\r
-\r
   Int_t pdg1 = part->GetPdg();\r
   Int_t trackId = part->GetTrackLabel(0);\r
   AliAODTrack* track = (AliAODTrack*)GetAODCTS()->At(trackId);\r
@@ -1639,14 +1674,15 @@ Bool_t AliAnaElectron::GetDCA(const AliAODTrack* track,Double_t impPar[2], Doubl
   //Once alice-off gets its act together and fixes the AOD, this\r
   //should become obsolete.\r
 \r
-  Double_t bfield = 5.; //kG\r
   Double_t maxD = 100000.; //max transverse IP\r
   if(GetReader()->GetDataType() != AliCaloTrackReader::kMC) {\r
-    bfield = GetReader()->GetBField();\r
     AliVEvent* ve = (AliVEvent*)GetReader()->GetInputEvent();\r
     AliVVertex *vv = (AliVVertex*)ve->GetPrimaryVertex();\r
     AliESDtrack esdTrack(track);\r
-    Bool_t gotit = esdTrack.PropagateToDCA(vv,bfield,maxD,impPar,cov);\r
+    Double_t bfield[3];\r
+    esdTrack.GetBxByBz(bfield);\r
+    Bool_t gotit = esdTrack.PropagateToDCABxByBz(vv,bfield,maxD,impPar,cov);\r
+    printf("\t JLK impPar = %2.2f\n",impPar[0]);\r
     return gotit;\r
   }\r
 \r