]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGHF/vertexingHF/AliAnalysisTaskSEDStarSpectra.cxx
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / PWGHF / vertexingHF / AliAnalysisTaskSEDStarSpectra.cxx
index 40f7f31b988bf43b258d6e5f89d5ac9bee835b81..9553388e71d236a7377ec3858982ae584ef8978e 100644 (file)
@@ -125,6 +125,7 @@ AliAnalysisTaskSEDStarSpectra::AliAnalysisTaskSEDStarSpectra(const Char_t* name,
   Info("AliAnalysisTaskSEDStarSpectra","Calling Constructor");
 
   fCuts=cuts;
+  for(Int_t i=0;i<5;i++) fHistMassPtImpParTCDs[i]=0;
 
   DefineOutput(1,TList::Class());  //conters
   DefineOutput(2,TList::Class());  //All Entries output
@@ -252,15 +253,11 @@ void AliAnalysisTaskSEDStarSpectra::UserExec(Option_t *)
     AliAODRecoDecayHF2Prong* theD0particle = (AliAODRecoDecayHF2Prong*)dstarD0pi->Get2Prong();
     if (!theD0particle) continue;
     
-    Int_t isDStar = 0;   
+    Int_t isDStar = 0;
     TClonesArray *mcArray = 0;
     AliAODMCHeader *mcHeader=0;
 
     Bool_t isPrimary=kTRUE;
-    Float_t truePt=0.;
-    Float_t xDecay=0.;
-    Float_t yDecay=0.;
-    Float_t zDecay=0.;
     Float_t pdgCode=-2;
     Float_t trueImpParXY=0.;
 
@@ -286,11 +283,7 @@ void AliAnalysisTaskSEDStarSpectra::UserExec(Option_t *)
        Int_t checkOrigin = CheckOrigin(mcArray,partDSt);
                if(checkOrigin==5) isPrimary=kFALSE;
        AliAODMCParticle *dg0 = (AliAODMCParticle*)mcArray->At(partDSt->GetDaughter(0));
-       AliAODMCParticle *dg01 = (AliAODMCParticle*)mcArray->At(dg0->GetDaughter(0));
-       truePt=dg0->Pt();
-       xDecay=dg01->Xv();        
-       yDecay=dg01->Yv();        
-       zDecay=dg01->Zv();
+       //      AliAODMCParticle *dg01 = (AliAODMCParticle*)mcArray->At(dg0->GetDaughter(0));
        pdgCode=TMath::Abs(partDSt->GetPdgCode());
        if(!isPrimary){
          trueImpParXY=GetTrueImpactParameterD0(mcHeader,mcArray,dg0)*1000.;
@@ -300,7 +293,9 @@ void AliAnalysisTaskSEDStarSpectra::UserExec(Option_t *)
        pdgCode=-1;
       }
     }
-    
+   
+    if(pdgCode==-1) AliDebug(2,"No particle assigned! check\n");
+
     Int_t ptbin=fCuts->PtBin(dstarD0pi->Pt());
     
     // quality selction on tracks and region of interest
@@ -410,10 +405,8 @@ void AliAnalysisTaskSEDStarSpectra::UserExec(Option_t *)
     Double_t invmassDelta = dstarD0pi->DeltaInvMass();
     
     if (TMath::Abs(invmassDelta-(mPDGDstar-mPDGD0))>fPeakWindow) continue;
-    
-    
-    Int_t isSelected=fCuts->IsSelected(dstarD0pi,AliRDHFCuts::kCandidate); //selected
-    
+    Int_t isSelected=fCuts->IsSelected(dstarD0pi,AliRDHFCuts::kCandidate,aodEvent); //selected
+  
     // after cuts
     if(fDoImpParDstar && isSelected){
       fHistMassPtImpParTCDs[0]->Fill(arrayForSparse);
@@ -436,7 +429,7 @@ void AliAnalysisTaskSEDStarSpectra::UserExec(Option_t *)
 
     //swich off the PID selection
     fCuts->SetUsePID(kFALSE);
-    Int_t isSelectedNoPID=fCuts->IsSelected(dstarD0pi,AliRDHFCuts::kCandidate); //selected
+    Int_t isSelectedNoPID=fCuts->IsSelected(dstarD0pi,AliRDHFCuts::kCandidate, aodEvent); //selected
     fCuts->SetUsePID(kTRUE);
 
     FillSpectrum(dstarD0pi,isDStar,fCuts,isSelectedNoPID,fOutputAll);
@@ -447,9 +440,10 @@ void AliAnalysisTaskSEDStarSpectra::UserExec(Option_t *)
       TLorentzVector lorentzTrack1(0,0,0,0); // lorentz 4 vector
       TLorentzVector lorentzTrack2(0,0,0,0); // lorentz 4 vector
       
-      for (Int_t i=0; i<aodEvent->GetNTracks(); i++){ 
+      for (Int_t i=0; i<aodEvent->GetNumberOfTracks(); i++){ 
        
-       AliAODTrack* aodTrack = aodEvent->GetTrack(i);
+       AliAODTrack* aodTrack = dynamic_cast<AliAODTrack*>(aodEvent->GetTrack(i));
+       if(!aodTrack) AliFatal("Not a standard AOD");
        
        if(dstarD0pi->Charge() == aodTrack->Charge()) continue;
        if((!(aodTrack->GetStatus()&AliESDtrack::kITSrefit)|| (!(aodTrack->GetStatus()&AliESDtrack::kTPCrefit)))) continue;
@@ -974,16 +968,13 @@ void AliAnalysisTaskSEDStarSpectra::SideBandBackground(AliAODRecoCascadeHF *part
   if(!isSel) return;
 
   Int_t ptbin=cuts->PtBin(part->Pt());
-  
-  Bool_t massInRange=kFALSE;
-  
+    
   // select the side bands intervall
   Double_t invmassD0    = part->InvMassD0();
   if(TMath::Abs(invmassD0-1.865)>4*fD0Window && TMath::Abs(invmassD0-1.865)<8*fD0Window){
     
     // for pt and eta
     Double_t invmassDelta = part->DeltaInvMass();
-    if (TMath::Abs(invmassDelta-0.14557)<fPeakWindow) massInRange=kTRUE;
     
     TString fillthis="";
     fillthis="histSideBandMass_";
@@ -1007,7 +998,7 @@ void AliAnalysisTaskSEDStarSpectra::WrongSignForDStar(AliAODRecoCascadeHF *part,
 
   AliAODRecoDecayHF2Prong* theD0particle = (AliAODRecoDecayHF2Prong*)part->Get2Prong();
 
-  Int_t okD0WrongSign,okD0barWrongSign;
+  Int_t okD0WrongSign;
   Double_t wrongMassD0=0.;
   
   Int_t isSelected=cuts->IsSelected(part,AliRDHFCuts::kCandidate); //selected
@@ -1016,21 +1007,15 @@ void AliAnalysisTaskSEDStarSpectra::WrongSignForDStar(AliAODRecoCascadeHF *part,
   }
 
   okD0WrongSign =  1;
-  okD0barWrongSign = 1;
   
   //if is D*+ than assume D0bar
   if(part->Charge()>0 && (isSelected ==1)) { 
     okD0WrongSign = 0;
   }
-  if(part->Charge()<0 && (isSelected ==2)){
-    okD0barWrongSign = 0;
-  }
   
   // assign the wrong mass in case the cuts return both D0 and D0bar
   if(part->Charge()>0 && (isSelected ==3)) { 
     okD0WrongSign = 0;
-  } else if(part->Charge()<0 && (isSelected ==3)){
-    okD0barWrongSign = 0;
   }
   
   //wrong D0 inv mass
@@ -1067,6 +1052,7 @@ void AliAnalysisTaskSEDStarSpectra::WrongSignForDStar(AliAODRecoCascadeHF *part,
     
   }
 }
+
 //-------------------------------------------------------------------------------
 Int_t AliAnalysisTaskSEDStarSpectra::CheckOrigin(TClonesArray* arrayMC, const AliAODMCParticle *mcPartCandidate) const {               
   //
@@ -1079,7 +1065,6 @@ Int_t AliAnalysisTaskSEDStarSpectra::CheckOrigin(TClonesArray* arrayMC, const Al
   Int_t istep = 0;
   Int_t abspdgGranma =0;
   Bool_t isFromB=kFALSE;
-  Bool_t isQuarkFound=kFALSE;
   while (mother >0 ){
     istep++;
     AliAODMCParticle* mcGranma = dynamic_cast<AliAODMCParticle*>(arrayMC->At(mother));
@@ -1089,7 +1074,6 @@ Int_t AliAnalysisTaskSEDStarSpectra::CheckOrigin(TClonesArray* arrayMC, const Al
       if ((abspdgGranma > 500 && abspdgGranma < 600) || (abspdgGranma > 5000 && abspdgGranma < 6000)){
        isFromB=kTRUE;
       }
-      if(abspdgGranma==4 || abspdgGranma==5) isQuarkFound=kTRUE;
       mother = mcGranma->GetMother();
     }else{
       AliError("Failed casting the mother particle!");