]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
updated
authorssakai <ssakai@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 30 Sep 2013 10:09:22 +0000 (10:09 +0000)
committerssakai <ssakai@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 30 Sep 2013 10:09:22 +0000 (10:09 +0000)
PWGHF/hfe/AliAnalysisTaskEMCalHFEpA.cxx
PWGHF/hfe/AliAnalysisTaskHFECal.cxx
PWGHF/hfe/macros/configs/PbPb/ConfigHFECal.C

index ca20a4015f81853bed4acb57cf40a2b0639a09ff..e0709d842abdb5d64a526f57df810e31ab5be045 100644 (file)
@@ -1273,11 +1273,11 @@ void AliAnalysisTaskEMCalHFEpA::UserExec(Option_t *)
                        for(Int_t iMC = 0; iMC < fMCarray->GetEntries(); iMC++)
                        {
                                fMCparticle = (AliAODMCParticle*) fMCarray->At(iMC);
-                               fMCparticleMother = (AliAODMCParticle*) fMCarray->At(fMCparticle->GetMother());
+                               if(fMCparticle->GetMother()>0) fMCparticleMother = (AliAODMCParticle*) fMCarray->At(fMCparticle->GetMother());
                                                                
                                Int_t pdg = fMCparticle->GetPdgCode();
-                               Int_t mpdg = fMCparticleMother->GetPdgCode();
                                
+                                                       
                                double proX = fMCparticle->Xv();
                                double proY = fMCparticle->Yv();
                                double proR = sqrt(pow(proX,2)+pow(proY,2));
@@ -1286,7 +1286,9 @@ void AliAnalysisTaskEMCalHFEpA::UserExec(Option_t *)
                                if(fMCparticle->Eta()>=fEtaCutMin && fMCparticle->Eta()<=fEtaCutMax && fMCparticle->Charge()!=0)
                                {
                                                //to correct background
-                                       if (TMath::Abs(pdg) == 11){
+                                       if (TMath::Abs(pdg) == 11 && fMCparticle->GetMother()>0){
+                                               Int_t mpdg = fMCparticleMother->GetPdgCode();
+
                                                if(TMath::Abs(mpdg) == 221 || TMath::Abs(mpdg) == 22 || TMath::Abs(mpdg) == 111){
                                                
                                                        if(proR<7){
@@ -1340,11 +1342,11 @@ void AliAnalysisTaskEMCalHFEpA::UserExec(Option_t *)
                {
                                
                                fMCtrack = fMCstack->Particle(iMC);
-                               fMCtrackMother = fMCstack->Particle(fMCtrack->GetFirstMother());
+                               if(fMCtrack->GetFirstMother()>0) fMCtrackMother = fMCstack->Particle(fMCtrack->GetFirstMother());
                                TParticle *particle=fMCstack->Particle(iMC);
                                
                                Int_t pdg = fMCtrack->GetPdgCode();
-                               Int_t mpdg = fMCtrackMother->GetPdgCode();
+                                
                                
                                if(TMath::Abs(pdg)==111) fPtMCpi0->Fill(fMCtrack->Pt());
                                if(TMath::Abs(pdg)==221) fPtMCeta->Fill(fMCtrack->Pt());
@@ -1354,7 +1356,8 @@ void AliAnalysisTaskEMCalHFEpA::UserExec(Option_t *)
                                {
                                        
                                                //to correct background
-                                       if (TMath::Abs(pdg) == 11){
+                                       if (TMath::Abs(pdg) == 11 && fMCtrack->GetFirstMother()>0){
+                                               Int_t mpdg = fMCtrackMother->GetPdgCode();
                                                if(TMath::Abs(mpdg) == 221 || TMath::Abs(mpdg) == 22 || TMath::Abs(mpdg) == 111){
                                                        Double_t proR=particle->R();
                                                        if(proR<7){
@@ -2162,15 +2165,15 @@ void AliAnalysisTaskEMCalHFEpA::UserExec(Option_t *)
                                                        if(track->Charge()>0)  fCharge_p->Fill(fPt);
                                                        
                                                        fMCparticle = (AliAODMCParticle*) fMCarray->At(track->GetLabel());
-                                                       fMCparticleMother = (AliAODMCParticle*) fMCarray->At(fMCparticle->GetMother());
+                                                       if(fMCparticle->GetMother()>0) fMCparticleMother = (AliAODMCParticle*) fMCarray->At(fMCparticle->GetMother());
                                                        Int_t pdg = fMCparticle->GetPdgCode();
-                                                       Int_t mpdg = fMCparticleMother->GetPdgCode();
-                                                       
+                                       
                                                
                                                        
                                                        if(fMCparticle->Eta()>=fEtaCutMin && fMCparticle->Eta()<=fEtaCutMax ){
                                                                        
-                                                               if( TMath::Abs(pdg) == 11 ){
+                                                               if( TMath::Abs(pdg) == 11 && fMCparticle->GetMother()>0 ){
+                                                                       Int_t mpdg = fMCparticleMother->GetPdgCode();
                                                                        if(TMath::Abs(mpdg) == 221 || TMath::Abs(mpdg) == 22 || TMath::Abs(mpdg) == 111){
                                                                                fPtMCelectronAfterAll_nonPrimary->Fill(fMCparticle->Pt()); //numerator for the total efficiency, non Primary track
                                                                        }
@@ -2205,10 +2208,18 @@ void AliAnalysisTaskEMCalHFEpA::UserExec(Option_t *)
                                                        if(track->Charge()>0)  fCharge_p->Fill(fPt);
                                                        
                                                        fMCtrack = fMCstack->Particle(track->GetLabel());
+                                                       if(fMCtrack->GetFirstMother()>0) fMCtrackMother = fMCstack->Particle(fMCtrack->GetFirstMother());
+
                                                        Int_t pdg = fMCtrack->GetPdgCode();
                                                        
+                                                       
                                                        if(fMCtrack->Eta()>=fEtaCutMin && fMCtrack->Eta()<=fEtaCutMax){
-                                                               if( TMath::Abs(pdg) == 11) fPtMCelectronAfterAll_nonPrimary->Fill(fMCtrack->Pt()); //numerator for the total efficiency, non Primary track
+                                                               if( TMath::Abs(pdg) == 11 && fMCtrack->GetFirstMother()>0 ){
+                                                                       Int_t mpdg = fMCtrackMother->GetPdgCode();
+                                                                       if(TMath::Abs(mpdg) == 221 || TMath::Abs(mpdg) == 22 || TMath::Abs(mpdg) == 111){
+                                                                                 fPtMCelectronAfterAll_nonPrimary->Fill(fMCtrack->Pt()); //numerator for the total efficiency, non Primary track
+                                                                       }
+                                                               }
                                                                if( TMath::Abs(pdg) == 11 && fMCstack->IsPhysicalPrimary(track->GetLabel())) fPtMCelectronAfterAll_Primary->Fill(fMCtrack->Pt());
                                                        }
                                                        
index 71f9dd741fe0d6bef4b3fa983b2691eaa44b479c..ac20baecec70407751b7fa0ba4807ef843ce73ef 100644 (file)
@@ -532,6 +532,8 @@ void AliAnalysisTaskHFECal::UserExec(Option_t*)
       continue;
     }
    
+    //--- Get MC informtion
+
     int parentlabel = 99999;
     int parentPID = 99999;
     int grand_parentlabel = 99999;
@@ -669,13 +671,13 @@ void AliAnalysisTaskHFECal::UserExec(Option_t*)
  
        } // end of mcLabel>-1
 
-      } // end of MC info.
+      } // <------ end of MC info.
  
     //cout << "Pi0 = " << mcOrgPi0 << " ; Eta = " << mcOrgEta << endl; 
     //printf("weight = %f\n",mcWeight);
 
     if(TMath::Abs(track->Eta())>0.6) continue;
-    if(TMath::Abs(track->Pt()<2.0)) continue;
+    if(TMath::Abs(track->Pt()<2.5)) continue;
     
     fTrackPtBefTrkCuts->Fill(track->Pt());             
     // RecKine: ITSTPC cuts  
@@ -703,9 +705,7 @@ void AliAnalysisTaskHFECal::UserExec(Option_t*)
     
     Double_t mom = -999., eop=-999., pt = -999., dEdx=-999., fTPCnSigma=-10, phi=-999., eta=-999.;
     pt = track->Pt();
-    if(pt<2.0)continue;
-    
-    // Track extrapolation
+    if(pt<2.5)continue;
     
     //Int_t charge = track->Charge();
     fTrkpt->Fill(pt);
@@ -726,19 +726,18 @@ void AliAnalysisTaskHFECal::UserExec(Option_t*)
     */
     //cout << "correction = " << fTPCnSigma << endl; 
 
+    //--- track cluster match
+
         double ncells = -1.0;
         double m20 = -1.0;
         double m02 = -1.0;
         double disp = -1.0;
         double rmatch = -1.0;  
         double nmatch = -1.0;
-        double oppstatus = 0.0;
+        //double oppstatus = 0.0;
         double emctof = 0.0;
         Bool_t MaxEmatch = kFALSE;
 
-    Bool_t fFlagPhotonicElec = kFALSE;
-    Bool_t fFlagConvinatElec = kFALSE;
-
     Int_t clsId = track->GetEMCALcluster();
     if (clsId>0){
       AliESDCaloCluster *clust = fESD->GetCaloCluster(clsId);
@@ -759,36 +758,22 @@ void AliAnalysisTaskHFECal::UserExec(Option_t*)
                nmatch = clust->GetNTracksMatched();
                 emctof = clust->GetTOF();
                 //cout << "emctof = " << emctof << endl;
-
-               if(fTPCnSigma>-1.5 && fTPCnSigma<3.0)
-               {
-                 if(fSetKFpart)
-                     {
-                      SelectPhotonicElectron(iTracks,cent,track,fFlagPhotonicElec,fFlagConvinatElec,fTPCnSigma,m20,eop,mcele,mcWeight,iHijing,mcOrgPi0,mcOrgEta);
-                    }
-                  else
-                    {
-                     SelectPhotonicElectron2(iTracks,cent,track,fFlagPhotonicElec,fFlagConvinatElec,fTPCnSigma,m20,eop,mcele,mcWeight,iHijing,mcOrgPi0,mcOrgEta);
-                    }
-               }
-               if(fFlagPhotonicElec)oppstatus = 1.0;
-               if(fFlagConvinatElec)oppstatus = 2.0;
-               if(fFlagPhotonicElec && fFlagConvinatElec)oppstatus = 3.0;
-
-                //cout << "eop org = "<< eop << endl;
-                if(mcLabel>-1.0)
+                cout << "eop org = "<< eop << endl;
+                double eoporg =  eop;
+                if(fmcData)
                   {
                    double mceopcorr = MCEopMeanCorrection(pt,cent);
                    eop += mceopcorr;
                   }
-                //cout << "eop corr = " << eop << endl;
+                cout << "eop corr = " << eop << endl;
 
                  double valdedx[16];
                  valdedx[0] = pt; valdedx[1] = nITS; valdedx[2] = phi; valdedx[3] = eta; valdedx[4] = fTPCnSigma;
                  valdedx[5] = eop; valdedx[6] = rmatch; valdedx[7] = ncells,  valdedx[8] = nmatch; valdedx[9] = m20; valdedx[10] = mcpT;
-                 valdedx[11] = cent; valdedx[12] = dEdx; valdedx[13] = oppstatus; valdedx[14] = nTPCcl;
+                 //valdedx[11] = cent; valdedx[12] = dEdx; valdedx[13] = oppstatus; valdedx[14] = nTPCcl;
+                 valdedx[11] = cent; valdedx[12] = dEdx; valdedx[13] = eoporg; valdedx[14] = nTPCcl;
                   valdedx[15] = mcele;
-                  //fEleInfo->Fill(valdedx);
+                  fEleInfo->Fill(valdedx);
 
       }
     }
@@ -807,7 +792,7 @@ void AliAnalysisTaskHFECal::UserExec(Option_t*)
        fElenSigma->Fill(valEop);
       }
     */
-   // ============ PID
+   // --- tarck cut & e ID 
 
     if(nITS<2.5)continue;
     if(nTPCcl<100)continue;
@@ -819,26 +804,9 @@ void AliAnalysisTaskHFECal::UserExec(Option_t*)
     fTPCnsigma->Fill(mom,fTPCnSigma);
     if(fTPCnSigma >= -1.0 && fTPCnSigma <= 3)fTrkEovPBef->Fill(pt,eop);
 
-    Int_t pidpassed = 1;
-    // check reco eff. with TPC
-
-    double phoval[5];
-    phoval[0] = cent;
-    phoval[1] = pt;
-    phoval[2] = fTPCnSigma;
-    phoval[3] = iHijing;
-    phoval[4] = mcMompT;
-   
-    if((fTPCnSigma >= -1.0 && fTPCnSigma <= 3) && mcele>-1 && mcPho && mcOrgPi0)
-      {
-        if(iHijing==1)mcWeight = 1.0; 
-        fIncpTMCpho_pi0e_TPC->Fill(phoval,mcWeight);    
-        if(fFlagPhotonicElec) fPhoElecPtMC_pi0e_TPC->Fill(phoval,mcWeight);
-        if(fFlagConvinatElec) fSameElecPtMC_pi0e_TPC->Fill(phoval,mcWeight);
-      }
+    //--- track accepted by HFE
 
-    //--- track accepted
+    Int_t pidpassed = 1;
     AliHFEpidObject hfetrack;
     hfetrack.SetAnalysisType(AliHFEpidObject::kESDanalysis);
     hfetrack.SetRecTrack(track);
@@ -860,7 +828,41 @@ void AliAnalysisTaskHFECal::UserExec(Option_t*)
     if(!fPID->IsSelected(&hfetrack, NULL, "", fPIDqa)) pidpassed = 0;
 
     if(pidpassed==0) continue;
-    
+    //--- photonic ID
+
+    Bool_t fFlagPhotonicElec = kFALSE;
+    Bool_t fFlagConvinatElec = kFALSE;
+
+    if(fSetKFpart)
+      {
+       SelectPhotonicElectron(iTracks,cent,track,fFlagPhotonicElec,fFlagConvinatElec,fTPCnSigma,m20,eop,mcele,mcWeight,iHijing,mcOrgPi0,mcOrgEta);
+      }
+    else
+     {
+      SelectPhotonicElectron2(iTracks,cent,track,fFlagPhotonicElec,fFlagConvinatElec,fTPCnSigma,m20,eop,mcele,mcWeight,iHijing,mcOrgPi0,mcOrgEta);
+      }
+
+    //--- check reco eff. with TPC
+    double phoval[5];
+    phoval[0] = cent;
+    phoval[1] = pt;
+    phoval[2] = fTPCnSigma;
+    phoval[3] = iHijing;
+    phoval[4] = mcMompT;
+   
+    if((fTPCnSigma >= -1.0 && fTPCnSigma <= 3) && mcele>-1 && mcPho && mcOrgPi0)
+      {
+        if(iHijing==1)mcWeight = 1.0; 
+        fIncpTMCpho_pi0e_TPC->Fill(phoval,mcWeight);    
+        if(fFlagPhotonicElec) fPhoElecPtMC_pi0e_TPC->Fill(phoval,mcWeight);
+        if(fFlagConvinatElec) fSameElecPtMC_pi0e_TPC->Fill(phoval,mcWeight);
+      }
+
+    //+++++++  E/p cut ++++++++++++++++   
+   
+    if(eop<0.9 || eop>1.3)continue;
+   
     fTrkEovPAft->Fill(pt,eop);
     fdEdxAft->Fill(mom,fTPCnSigma);
 
@@ -999,7 +1001,7 @@ void AliAnalysisTaskHFECal::UserCreateOutputObjects()
   if(!fPID->GetNumberOfPIDdetectors()) 
     {
       fPID->AddDetector("TPC", 0);
-      fPID->AddDetector("EMCAL", 1);
+      //fPID->AddDetector("EMCAL", 1); <--- apply PID selection in task
     }
   
   Double_t params[4];
@@ -1181,9 +1183,9 @@ void AliAnalysisTaskHFECal::UserCreateOutputObjects()
   const Double_t kMaxP = 20.;
 
   // 1st histogram: TPC dEdx with/without EMCAL (p, pT, TPC Signal, phi, eta,  Sig,  e/p,  ,match, cell, M02, M20, Disp, Centrality, select)
-  Int_t nBins[16] =  {  100,     7,  60,    20,    90,  250,   25,   40,   10, 200,  100, 100,  500,    5, 100,    8};
-  Double_t min[16] = {kMinP,  -0.5, 1.0,  -1.0,  -5.0,    0,    0,    0,  0.0, 0.0,  0.0,   0,    0, -0.5,  80, -1.5};
-  Double_t max[16] = {kMaxP,   6.5, 4.0,   1.0,   4.0,  2.5, 0.05,   40,   10, 2.0, 20.0, 100,  100,  4.5, 180,  6.5};
+  Int_t nBins[16] =  {  100,     7,  60,    20,    90,  100,   25,   40,   10, 100,  100,  10,  250,  100, 100,    8};
+  Double_t min[16] = {kMinP,  -0.5, 1.0,  -1.0,  -5.0,    0,    0,    0,  0.0, 0.0,  0.0,   0,    0,    0,  80, -1.5};
+  Double_t max[16] = {kMaxP,   6.5, 4.0,   1.0,   4.0,  2.0, 0.05,   40,   10, 1.0, 20.0, 100,  100,  2.0, 180,  6.5};
   fEleInfo = new THnSparseD("fEleInfo", "Electron Info; pT [GeV/c]; TPC signal;phi;eta;nSig; E/p;Rmatch;Ncell;clsF;M20;mcpT;Centrality;charge;opp;same;trigCond;MCele", 16, nBins, min, max);
   fOutputList->Add(fEleInfo);
 
@@ -2172,6 +2174,9 @@ double AliAnalysisTaskHFECal::MCEopMeanCorrection(double pTmc, float central)
 
  shift = fcorr0->Eval(pTmc)-fcorr1->Eval(pTmc);
 
+ fcorr0->Delete(); 
+ fcorr1->Delete(); 
+
  return shift;
 }
 
index ae4ee24c909abd8bb686d9a5d01009780e7047d6..42bf583c71d49994fd0ec90588b4977aaa0be78c 100644 (file)
@@ -45,7 +45,7 @@ AliAnalysisTaskHFECal* ConfigHFECal(Bool_t useMC,Bool_t MassConst,Bool_t MassWid
   AliHFEpid *pid = task->GetPID();\r
   if(useMC) pid->SetHasMCData(kTRUE);\r
   pid->AddDetector("TPC", 0);\r
-  pid->AddDetector("EMCAL", 1);\r
+  //pid->AddDetector("EMCAL", 1);\r
 \r
   Double_t params[4];\r
   char *cutmodel;\r