]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Fix (Francesco) + updates in check origin (Sandro)
authorprino <prino@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 6 Jun 2012 23:15:16 +0000 (23:15 +0000)
committerprino <prino@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 6 Jun 2012 23:15:16 +0000 (23:15 +0000)
PWGHF/correlationHF/AliHFAssociatedTrackCuts.cxx
PWGHF/correlationHF/AliHFAssociatedTrackCuts.h

index 0482d2341a55be96f87ae62625b2aed24708a475..683a90da6c8ff04c22e9d95675ea203e803072b5 100644 (file)
@@ -231,30 +231,39 @@ Bool_t AliHFAssociatedTrackCuts::IsKZeroSelected(AliAODv0 *vzero, AliAODVertex *
        return kTRUE;
 }
 //--------------------------------------------------------------------------
-Int_t AliHFAssociatedTrackCuts::IsMCpartFromHF(Int_t label, TClonesArray*mcArray)
+Int_t AliHFAssociatedTrackCuts::IsMCpartFromHF(Int_t label, TClonesArray*mcArray){
+  // Check origin in MC
 
-{
-AliAODMCParticle* MCParticle;
-Int_t generationpdgcode = -1;
-if (label<0) return 0;
-Bool_t isCharmy = kFALSE;
-Bool_t isBeauty = kFALSE;
-Int_t generation = 0;
-while(generationpdgcode!=2212){        // loops back to the collision to check the particle source     
-       MCParticle = dynamic_cast<AliAODMCParticle*>(mcArray->At(label));
-       generationpdgcode =  TMath::Abs(MCParticle->GetPdgCode());
-       label = MCParticle->GetMother();
-       generation++;
-       if(generationpdgcode == 4) isCharmy = kTRUE;
-               if(generationpdgcode == 5) {isBeauty = kTRUE; isCharmy = kFALSE;}
-       if(label<0) break;
-       
-}
-if (isCharmy) return 4;
-else if (isBeauty) return 5;
-else return 0;
+  AliAODMCParticle* mcParticle;
+  Int_t pdgCode = -1;
+  if (label<0) return 0;
+  Bool_t isCharmy = kFALSE;
+  Bool_t isBeauty = kFALSE;
+  Bool_t isD = kFALSE;
+  Bool_t isB = kFALSE;
 
-       
+  while(pdgCode!=2212){ // loops back to the collision to check the particle source
+
+    mcParticle = dynamic_cast<AliAODMCParticle*>(mcArray->At(label));
+    if(!mcParticle) {cout << "NO MC PARTICLE" << endl; break;}
+    pdgCode =  TMath::Abs(mcParticle->GetPdgCode());
+
+    label = mcParticle->GetMother();
+
+
+    if((pdgCode>=400 && pdgCode <500) || (pdgCode>=4000 && pdgCode<5000 )) isD = kTRUE;
+    if((pdgCode>=500 && pdgCode <600) || (pdgCode>=5000 && pdgCode<6000 )) {isD = kFALSE; isB = kTRUE;}
+
+
+    if(pdgCode == 4) isCharmy = kTRUE;
+    if(pdgCode == 5) {isBeauty = kTRUE; isCharmy = kFALSE;}
+    if(label<0) break;
+
+  }
+  if (isCharmy && isD) return 44; // the first 4(5) indicates the charm/beauty quark, the second the charmy meson
+  if (isBeauty && isD) return 54;
+  if (isBeauty && isB) return 55;
+  return 0;
 }
 //________________________________________________________
 void AliHFAssociatedTrackCuts::SetAODTrackCuts(Float_t *cutsarray)
index 72e3740502cf89216547d5e28fa902248b750319..80610ec8f3bdc49f786d3c8eb9913dbf2f5bbd1f 100644 (file)
@@ -47,12 +47,13 @@ class AliHFAssociatedTrackCuts : public AliAnalysisCuts
        AliHFAssociatedTrackCuts& operator=(const AliHFAssociatedTrackCuts& source);\r
        \r
        virtual ~AliHFAssociatedTrackCuts(); // destructor\r
-       //      virtual Bool_t IsSelected(TList*  list) {if(list) return kTRUE; return kFALSE;};\r
-        Bool_t IsInAcceptance();\r
-        Bool_t IsHadronSelected(AliAODTrack * track, AliAODVertex *vtx1, Double_t bz);\r
-        Bool_t CheckKaonCompatibility(AliAODTrack * track, Bool_t useMc, TClonesArray* mcArray);\r
-        Bool_t IsKZeroSelected(AliAODv0 *vzero, AliAODVertex *vtx1);\r
-        Int_t IsMCpartFromHF(Int_t label, TClonesArray*mcArray);\r
+       Bool_t IsSelected(TList*  list) {if(list) return kTRUE; return kFALSE;};\r
+       Bool_t IsSelected(TObject*  obj) {if(obj) return kTRUE; return kFALSE;};\r
+       Bool_t IsInAcceptance();\r
+       Bool_t IsHadronSelected(AliAODTrack * track, AliAODVertex *vtx1, Double_t bz);\r
+       Bool_t CheckKaonCompatibility(AliAODTrack * track, Bool_t useMc, TClonesArray* mcArray);\r
+       Bool_t IsKZeroSelected(AliAODv0 *vzero, AliAODVertex *vtx1);\r
+       Int_t IsMCpartFromHF(Int_t label, TClonesArray*mcArray);\r
        \r
        \r
        \r