From: prino Date: Thu, 23 Jun 2011 21:51:27 +0000 (+0000) Subject: possibility to exclude events with SDD clusters plus a fix on the histogram filling... X-Git-Url: http://git.uio.no/git/?p=u%2Fmrichter%2FAliRoot.git;a=commitdiff_plain;h=2b35ac47534de764a6b032b6bdc52e4ff7c68af6 possibility to exclude events with SDD clusters plus a fix on the histogram filling in MC (Zaida) --- diff --git a/PWG3/vertexingHF/AliAnalysisTaskSED0Mass.cxx b/PWG3/vertexingHF/AliAnalysisTaskSED0Mass.cxx index afd9f2c0fbb..0129943ca73 100644 --- a/PWG3/vertexingHF/AliAnalysisTaskSED0Mass.cxx +++ b/PWG3/vertexingHF/AliAnalysisTaskSED0Mass.cxx @@ -73,7 +73,8 @@ AliAnalysisTaskSE(), fDaughterTracks(), fIsSelectedCandidate(0), fFillVarHists(kTRUE), - fSys(0) + fSys(0), + fIsRejectSDDClusters(0) { // Default constructor } @@ -96,7 +97,8 @@ AliAnalysisTaskSED0Mass::AliAnalysisTaskSED0Mass(const char *name,AliRDHFCutsD0t fDaughterTracks(), fIsSelectedCandidate(0), fFillVarHists(kTRUE), - fSys(0) + fSys(0), + fIsRejectSDDClusters(0) { // Default constructor @@ -614,7 +616,7 @@ void AliAnalysisTaskSED0Mass::UserCreateOutputObjects() const char* nameoutput=GetOutputSlot(3)->GetContainer()->GetName(); - fNentries=new TH1F(nameoutput, "Integral(1,2) = number of AODs *** Integral(2,3) = number of candidates selected with cuts *** Integral(3,4) = number of D0 selected with cuts *** Integral(4,5) = events with good vertex *** Integral(5,6) = pt out of bounds", 16,-0.5,15.5); + fNentries=new TH1F(nameoutput, "Integral(1,2) = number of AODs *** Integral(2,3) = number of candidates selected with cuts *** Integral(3,4) = number of D0 selected with cuts *** Integral(4,5) = events with good vertex *** Integral(5,6) = pt out of bounds", 17,-0.5,16.5); fNentries->GetXaxis()->SetBinLabel(1,"nEventsAnal"); fNentries->GetXaxis()->SetBinLabel(2,"nCandSel(Cuts)"); @@ -637,6 +639,7 @@ void AliAnalysisTaskSED0Mass::UserCreateOutputObjects() fNentries->GetXaxis()->SetBinLabel(14,"Pile-up Rej"); fNentries->GetXaxis()->SetBinLabel(15,"N. of 0SMH"); if(fSys==1) fNentries->GetXaxis()->SetBinLabel(16,"Nev in centr"); + if(fIsRejectSDDClusters) fNentries->GetXaxis()->SetBinLabel(17,"SDD-Cls Rej"); fNentries->GetXaxis()->SetNdivisions(1,kFALSE); fCounter = new AliNormalizationCounter(Form("%s",GetOutputSlot(5)->GetContainer()->GetName())); @@ -748,6 +751,23 @@ void AliAnalysisTaskSED0Mass::UserExec(Option_t */*option*/) if(fSys==1 && (fCuts->GetWhyRejection()==2 || fCuts->GetWhyRejection()==3)) fNentries->Fill(15); return; } + + // Check the Nb of SDD clusters + if (fIsRejectSDDClusters) { + Bool_t skipEvent = kFALSE; + Int_t ntracks = 0; + if (aod) ntracks = aod->GetNTracks(); + for(Int_t itrack=0; itrackGetTrack(itrack); + if(TESTBIT(track->GetITSClusterMap(),2) || TESTBIT(track->GetITSClusterMap(),3) ){ + skipEvent=kTRUE; + fNentries->Fill(16); + break; + } + } + if (skipEvent) return; + } // AOD primary vertex AliAODVertex *vtx1 = (AliAODVertex*)aod->GetPrimaryVertex(); @@ -1415,14 +1435,14 @@ void AliAnalysisTaskSED0Mass::FillMassHists(AliAODRecoDecayHF2Prong *part, TClon AliAODMCParticle *partD0 = (AliAODMCParticle*)arrMC->At(labD0); Int_t pdgD0 = partD0->GetPdgCode(); - //cout<<"pdg = "<FindObject(fillthis)))->Fill(invmassD0); if(fSys==0){ - if(TMath::Abs(invmassD0 - mPDG) < 0.027){ + if(TMath::Abs(invmassD0 - mPDG) < 0.027 && fFillVarHists){ fillthis="histSgn27_"; fillthis+=ptbin; ((TH1F*)(listout->FindObject(fillthis)))->Fill(invmassD0); @@ -1442,9 +1462,9 @@ void AliAnalysisTaskSED0Mass::FillMassHists(AliAODRecoDecayHF2Prong *part, TClon }else{ fillthis="histMass_"; fillthis+=ptbin; - //cout<<"Filling "<FindObject(fillthis)))->Fill(invmassD0); } @@ -1455,7 +1475,7 @@ void AliAnalysisTaskSED0Mass::FillMassHists(AliAODRecoDecayHF2Prong *part, TClon if(fArray==1) cout<<"LS signal ERROR"<At(labD0); Int_t pdgD0 = partD0->GetPdgCode(); - //cout<<" pdg = "<FindObject(fillthis))->Fill(invmassD0bar); } diff --git a/PWG3/vertexingHF/AliAnalysisTaskSED0Mass.h b/PWG3/vertexingHF/AliAnalysisTaskSED0Mass.h index 7badaa0dc7e..47f497881da 100644 --- a/PWG3/vertexingHF/AliAnalysisTaskSED0Mass.h +++ b/PWG3/vertexingHF/AliAnalysisTaskSED0Mass.h @@ -51,11 +51,13 @@ class AliAnalysisTaskSED0Mass : public AliAnalysisTaskSE void SetFillOnlyD0D0bar(Int_t flagfill){fFillOnlyD0D0bar=flagfill;} void SetFillVarHists(Bool_t flag) {fFillVarHists=flag;} void SetSystem(Int_t sys){fSys=sys; if(fSys==1) SetFillVarHists(kFALSE);} + void SetRejectSDDClusters(Bool_t flag) { fIsRejectSDDClusters=flag; } Bool_t GetCutOnDistr() const {return fCutOnDistr;} Bool_t GetUsePid4Distr() const {return fUsePid4Distr;} Int_t GetFillOnlyD0D0bar() const {return fFillOnlyD0D0bar;} Int_t GetSystem() const {return fSys;} + Bool_t GetRejectSDDClusters() { return fIsRejectSDDClusters; } private: @@ -81,8 +83,9 @@ class AliAnalysisTaskSED0Mass : public AliAnalysisTaskSE Int_t fIsSelectedCandidate; // selection outcome Bool_t fFillVarHists; // flag to enable filling variable histos Int_t fSys; // fSys=0 -> p-p; fSys=1 ->PbPb (in this case fFillVarHists=kFALSE by default: set it to kTRUE *after* if needed) + Bool_t fIsRejectSDDClusters; // flag to reject events with SDD clusters - ClassDef(AliAnalysisTaskSED0Mass,14); // AliAnalysisTaskSE for D0->Kpi + ClassDef(AliAnalysisTaskSED0Mass,15); // AliAnalysisTaskSE for D0->Kpi }; #endif