]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
After MatchToMC, check that D0MC daughters are K and pi
authordainese <dainese@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 15 Sep 2009 23:21:18 +0000 (23:21 +0000)
committerdainese <dainese@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 15 Sep 2009 23:21:18 +0000 (23:21 +0000)
PWG3/vertexingHF/AliAnalysisTaskSECompareHF.cxx
PWG3/vertexingHF/AliCFHeavyFlavourTaskMultiVarMultiStep.cxx

index 21e4c9522a67ae66dd933a4044d0299205776460..6d5fe506cb1c9290011f13ec46693e05d47849c2 100644 (file)
@@ -238,12 +238,18 @@ void AliAnalysisTaskSECompareHF::UserExec(Option_t */*option*/)
          AliAODMCParticle *dMC = (AliAODMCParticle*)mcArray->At(lab);
          pdg = dMC->GetPdgCode();
          invmass = (pdg==421 ? d2->InvMassD0() : d2->InvMassD0bar());
-         fHistMass->Fill(invmass);
-         // Post the data already here
-         PostData(1,fOutput);
          // get a daughter for true pos of decay vertex
          AliAODMCParticle *dg0MC = (AliAODMCParticle*)mcArray->At(dMC->GetDaughter(0));
+         AliAODMCParticle *dg1MC = (AliAODMCParticle*)mcArray->At(dMC->GetDaughter(1));
          dg0MC->XvYvZv(posTrue);
+         // check that the D0 decayed in two prong (this is not necessary, because the check is already done, implicitely, in MatchToMC)
+         if(TMath::Abs(dMC->GetDaughter(0)-dMC->GetDaughter(1))!=1) continue;
+         // check that the D0 decayed in K-pi+
+         if(!(TMath::Abs(dg0MC->GetPdgCode())==321 && TMath::Abs(dg1MC->GetPdgCode())==211) && 
+            !(TMath::Abs(dg0MC->GetPdgCode())==211 && TMath::Abs(dg1MC->GetPdgCode())==321)) continue;
+         fHistMass->Fill(invmass);
+         // Post the data already here
+         PostData(1,fOutput);
          Float_t tmp[16]={(Float_t)pdg,(Float_t)nprongs,
                           (Float_t)posRec[0],(Float_t)posTrue[0],(Float_t)errx,
                           (Float_t)posRec[1],(Float_t)posTrue[1],(Float_t)erry,
@@ -273,6 +279,17 @@ void AliAnalysisTaskSECompareHF::UserExec(Option_t */*option*/)
        // get a daughter for true pos of decay vertex
        AliAODMCParticle *dg0MC = (AliAODMCParticle*)mcArray->At(dMC->GetDaughter(0));
        dg0MC->XvYvZv(posTrue);
+       // check that the D+ decayed in K-pi+pi+
+       AliAODTrack *dg0 = (AliAODTrack*)d3->GetDaughter(0);
+       AliAODTrack *dg1 = (AliAODTrack*)d3->GetDaughter(1);
+       AliAODTrack *dg2 = (AliAODTrack*)d3->GetDaughter(2);
+        dg0MC = (AliAODMCParticle*)mcArray->At(TMath::Abs(dg0->GetLabel()));
+       AliAODMCParticle *dg1MC = (AliAODMCParticle*)mcArray->At(TMath::Abs(dg1->GetLabel()));
+       AliAODMCParticle *dg2MC = (AliAODMCParticle*)mcArray->At(TMath::Abs(dg2->GetLabel()));
+
+         if(!(TMath::Abs(dg0MC->GetPdgCode())==321 && TMath::Abs(dg1MC->GetPdgCode())==211 && TMath::Abs(dg2MC->GetPdgCode())==211) && 
+            !(TMath::Abs(dg0MC->GetPdgCode())==211 && TMath::Abs(dg1MC->GetPdgCode())==321 && TMath::Abs(dg2MC->GetPdgCode())==211) &&
+            !(TMath::Abs(dg0MC->GetPdgCode())==211 && TMath::Abs(dg1MC->GetPdgCode())==211 && TMath::Abs(dg2MC->GetPdgCode())==321)) continue;
        Float_t tmp[16]={(Float_t)pdg,(Float_t)nprongs,
                         (Float_t)posRec[0],(Float_t)posTrue[0],(Float_t)errx,
                         (Float_t)posRec[1],(Float_t)posTrue[1],(Float_t)erry,
index 274755c274acaa5c953605f828c9e23186558e41..17df78d9b38095e513be30fcad085ce3c983cbf8 100644 (file)
@@ -203,7 +203,7 @@ void AliCFHeavyFlavourTaskMultiVarMultiStep::UserExec(Option_t *)
                Int_t pdgGranma = CheckOrigin(mcPart, mcArray);
                Int_t abspdgGranma = TMath::Abs(pdgGranma);
                if ((abspdgGranma > 500 && abspdgGranma < 600) || (abspdgGranma > 5000 && abspdgGranma < 6000)) {
-                       AliInfo(Form("Particle has a b-meson, or b-baryon mother (pdg code mother = %d )--> not coming from a c-quark, skipping...", pdgGranma));
+                       AliDebug(2,Form("Particle has a b-meson, or b-baryon mother (pdg code mother = %d )--> not coming from a c-quark, skipping...", pdgGranma));
                        continue;  // skipping particles that don't come from c quark
                }
                
@@ -272,7 +272,7 @@ void AliCFHeavyFlavourTaskMultiVarMultiStep::UserExec(Option_t *)
                        continue;
                }
        }
-       if (cquarks<2) AliInfo(Form("Event found with %d c-quarks", cquarks));
+       if (cquarks<2) AliDebug(2,Form("Event found with %d c-quarks", cquarks));
        
        AliDebug(2, Form("Found %i MC particles that are D0!!",icountMC));
        AliDebug(2, Form("Found %i MC particles that are D0 and satisfy Acc cuts!!",icountAcc));
@@ -310,7 +310,12 @@ void AliCFHeavyFlavourTaskMultiVarMultiStep::UserExec(Option_t *)
                                AliWarning("Could not find associated MC in AOD MC tree");
                                continue;
                        }
-                                       
+                       // check whether the daughters are K- and pi+
+                       AliAODMCParticle* dg0MC=(AliAODMCParticle*)mcArray->At(mcVtxHF->GetDaughter(0));
+                       AliAODMCParticle* dg1MC=(AliAODMCParticle*)mcArray->At(mcVtxHF->GetDaughter(1));
+                       if(!(TMath::Abs(dg0MC->GetPdgCode())==321 && TMath::Abs(dg1MC->GetPdgCode())==211) && 
+                          !(TMath::Abs(dg0MC->GetPdgCode())==211 && TMath::Abs(dg1MC->GetPdgCode())==321)) continue;
+
                        // check whether the daughters have kTPCrefit set
                        AliAODTrack *track0 = (AliAODTrack*)d0tokpi->GetDaughter(0);
                        AliAODTrack *track1 = (AliAODTrack*)d0tokpi->GetDaughter(1);
@@ -334,7 +339,7 @@ void AliCFHeavyFlavourTaskMultiVarMultiStep::UserExec(Option_t *)
                        Int_t pdgGranma = CheckOrigin(mcVtxHF, mcArray);
                        Int_t abspdgGranma = TMath::Abs(pdgGranma);
                        if ((abspdgGranma > 500 && abspdgGranma < 600) || (abspdgGranma > 5000 && abspdgGranma < 6000)) {
-                               AliInfo(Form("At Reco level, from MC info: Particle has a b-meson, or b-baryon mother (pdg code mother = %d )--> not coming from a c-quark, skipping...", pdgGranma));
+                               AliDebug(2,Form("At Reco level, from MC info: Particle has a b-meson, or b-baryon mother (pdg code mother = %d )--> not coming from a c-quark, skipping...", pdgGranma));
                                continue;  // skipping particles that don't come from c quark
                        }