#include <TH2F.h>
#include <TH3F.h>
#include <THnSparse.h>
-#include <TProfile.h>
+#include <TProfile.h>
#include "AliAnalysisManager.h"
#include "AliRDHFCuts.h"
#include "AliRDHFCutsDplustoKpipi.h"
fOutput(0),
fListCuts(0),
fOutputCounters(0),
+ fListProfiles(0),
fHistNEvents(0),
+ fHistNtrEta16vsNtrEta1(0),
+ fHistNtrCorrEta1vsNtrRawEta1(0),
+ fHistNtrVsZvtx(0),
+ fHistNtrCorrVsZvtx(0),
+ fHistNtrVsNchMC(0),
+ fHistNtrCorrVsNchMC(0),
+ fHistNtrVsNchMCPrimary(0),
+ fHistNtrCorrVsNchMCPrimary(0),
+ fHistNtrVsNchMCPhysicalPrimary(0),
+ fHistNtrCorrVsNchMCPhysicalPrimary(0),
+ fHistGenPrimaryParticlesInelGt0(0),
+ fHistNchMCVsNchMCPrimaryVsNchMCPhysicalPrimary(0),
+ fHistNtrUnCorrEvSel(0),
+ fHistNtrCorrEvSel(0),
+ fHistNtrCorrEvWithCand(0),
+ fHistNtrCorrEvWithD(0),
fPtVsMassVsMult(0),
fPtVsMassVsMultNoPid(0),
fPtVsMassVsMultUncorr(0),
fReadMC(kFALSE),
fMCOption(0),
fUseBit(kTRUE),
- fRefMult(9.5),
+ fSubtractTrackletsFromDau(kFALSE),
+ fRefMult(9.26),
fPdgMeson(411)
{
// Default constructor
fOutput(0),
fListCuts(0),
fOutputCounters(0),
+ fListProfiles(0),
fHistNEvents(0),
+ fHistNtrEta16vsNtrEta1(0),
+ fHistNtrCorrEta1vsNtrRawEta1(0),
+ fHistNtrVsZvtx(0),
+ fHistNtrCorrVsZvtx(0),
+ fHistNtrVsNchMC(0),
+ fHistNtrCorrVsNchMC(0),
+ fHistNtrVsNchMCPrimary(0),
+ fHistNtrCorrVsNchMCPrimary(0),
+ fHistNtrVsNchMCPhysicalPrimary(0),
+ fHistNtrCorrVsNchMCPhysicalPrimary(0),
+ fHistGenPrimaryParticlesInelGt0(0),
+ fHistNchMCVsNchMCPrimaryVsNchMCPhysicalPrimary(0),
+ fHistNtrUnCorrEvSel(0),
+ fHistNtrCorrEvSel(0),
+ fHistNtrCorrEvWithCand(0),
+ fHistNtrCorrEvWithD(0),
fPtVsMassVsMult(0),
fPtVsMassVsMultNoPid(0),
fPtVsMassVsMultUncorr(0),
fReadMC(kFALSE),
fMCOption(0),
fUseBit(kTRUE),
- fRefMult(9.5),
+ fSubtractTrackletsFromDau(kFALSE),
+ fRefMult(9.26),
fPdgMeson(pdgMeson)
{
//
DefineOutput(2,TList::Class());
// Output slot #3 writes cut to private output
DefineOutput(3,TList::Class());
+ // Output slot #4 writes cut to private output
+ DefineOutput(4,TList::Class());
}
//________________________________________________________________________
AliAnalysisTaskSEDvsMultiplicity::~AliAnalysisTaskSEDvsMultiplicity()
delete fOutput;
delete fHistNEvents;
delete fListCuts;
+ delete fListProfiles;
delete fRDCutsAnalysis;
delete fCounter;
delete fCounterU;
+ for(Int_t i=0; i<4; i++) delete fMultEstimatorAvg[i];
for(Int_t i=0; i<5; i++){
delete fHistMassPtImpPar[i];
}
void AliAnalysisTaskSEDvsMultiplicity::SetMassLimits(Double_t lowlimit, Double_t uplimit){
// set invariant mass limits
if(uplimit>lowlimit){
- fUpmasslimit = lowlimit;
- fLowmasslimit = uplimit;
+ fLowmasslimit = lowlimit;
+ fUpmasslimit = uplimit;
}else{
AliError("Wrong mass limits: upper value should be larger than lower one");
}
}
PostData(2,fListCuts);
+ fListProfiles = new TList();
+ fListProfiles->SetOwner();
+ TString period[4]={"LHC10b","LHC10c","LHC10d","LHC10e"};
+ for(Int_t i=0; i<4; i++){
+ if(fMultEstimatorAvg[i]){
+ TProfile* hprof=new TProfile(*fMultEstimatorAvg[i]);
+ hprof->SetName(Form("ProfileTrkVsZvtx%s\n",period[i].Data()));
+ fListProfiles->Add(hprof);
+ }
+ }
+ PostData(4,fListProfiles);
+
return;
}
fOutput->SetOwner();
fOutput->SetName("OutputHistos");
-
- TH1F *hspdmultCand = new TH1F("hspdmultCand", "Tracklets multiplicity for events with D candidates; Tracklets ; Entries",200,0.,200.);// Total multiplicity
- TH1F *hspdmultD = new TH1F("hspdmultD", "Tracklets multiplicity for events with D in mass region ; Tracklets ; Entries",200,0.,200.); //
- TH2F *heta16vseta1 = new TH2F("heta16vseta1","Uncorrected Eta1.6 vs Eta1.0; Ntracklets #eta<1.0; Ntracklets #eta<1.6",200,-0.5,199.5,200,-0.5,199.5); //eta 1.6 vs eta 1.0 histogram
- TH2F *hNtrkvsVtxZ = new TH2F("hNtrkvsVtxZ","Ntracklet vs VtxZ; VtxZ;N_{tracklet};",300,-15,15,200,0,200.); //
- TH2F *hNtrkvsVtxZCorr = new TH2F("hNtrkvsVtxZCorr","Ntracklet vs VtxZ; VtxZ;N_{tracklet};",300,-15,15,200,0,200.); //
+ fHistNtrUnCorrEvSel = new TH1F("hNtrUnCorrEvSel","Uncorrected tracklets multiplicity for selected events; Tracklets ; Entries",200,-0.5,199.5);
+ fHistNtrCorrEvSel = new TH1F("hNtrCorrEvSel","Corrected tracklets multiplicity for selected events; Tracklets ; Entries",200,-0.5,199.5);
+ fHistNtrCorrEvWithCand = new TH1F("hNtrCorrEvWithCand", "Tracklets multiplicity for events with D candidates; Tracklets ; Entries",200,-0.5,199.5);// Total multiplicity
+ fHistNtrCorrEvWithD = new TH1F("hNtrCorrEvWithD", "Tracklets multiplicity for events with D in mass region ; Tracklets ; Entries",200,-0.5,199.5); //
+ fHistNtrEta16vsNtrEta1 = new TH2F("hNtrEta16vsNtrEta1","Uncorrected Eta1.6 vs Eta1.0; Ntracklets #eta<1.0; Ntracklets #eta<1.6",200,-0.5,199.5,200,-0.5,199.5); //eta 1.6 vs eta 1.0 histogram
+ fHistNtrCorrEta1vsNtrRawEta1 = new TH2F("hNtrCorrEta1vsNtrRawEta1","Corrected Eta1 vs Eta1.0; Ntracklets #eta<1.0 corrected; Ntracklets #eta<1",200,-0.5,199.5,200,-0.5,199.5); //eta 1.6 vs eta 1.0 histogram
+ fHistNtrVsZvtx = new TH2F("hNtrVsZvtx","Ntracklet vs VtxZ; VtxZ;N_{tracklet};",300,-15,15,200,-0.5,199.5); //
+ fHistNtrCorrVsZvtx = new TH2F("hNtrCorrVsZvtx","Ntracklet vs VtxZ; VtxZ;N_{tracklet};",300,-15,15,200,-0.5,199.5); //
+
+ fHistNtrVsNchMC = new TH2F("hNtrVsNchMC","Ntracklet vs NchMC; Nch;N_{tracklet};",200,-0.5,199.5,200,-0.5,199.5); //
+ fHistNtrCorrVsNchMC = new TH2F("hNtrCorrVsNchMC","Ntracklet vs Nch; Nch;N_{tracklet};",200,-0.5,199.5,200,-0.5,199.5); //
+ fHistNtrVsNchMCPrimary = new TH2F("hNtrVsNchMCPrimary","Ntracklet vs Nch (Primary); Nch (Primary);N_{tracklet};",200,-0.5,199.5,200,-0.5,199.5); //
+ fHistNtrCorrVsNchMCPrimary = new TH2F("hNtrCorrVsNchMCPrimary","Ntracklet vs Nch (Primary); Nch(Primary) ;N_{tracklet};",200,-0.5,199.5,200,-0.5,199.5); //
- hspdmultCand->Sumw2();
- hspdmultD->Sumw2();
-
- fOutput->Add(hspdmultCand);
- fOutput->Add(hspdmultD);
- fOutput->Add(heta16vseta1);
- fOutput->Add(hNtrkvsVtxZ);
- fOutput->Add(hNtrkvsVtxZCorr);
+ fHistNtrVsNchMCPhysicalPrimary = new TH2F("hNtrVsNchMCPhysicalPrimary","Ntracklet vs Nch (Physical Primary); Nch (Physical Primary);N_{tracklet};",200,-0.5,199.5,200,-0.5,199.5); //
+ fHistNtrCorrVsNchMCPhysicalPrimary = new TH2F("hNtrCorrVsMCPhysicalPrimary","Ntracklet vs Nch (Physical Primary); Nch (Physical Primary);N_{tracklet};",200,-0.5,199.5,200,-0.5,199.5); //
+
+ fHistGenPrimaryParticlesInelGt0 = new TH1F("hGenPrimaryParticlesInelGt0","Multiplcity of generated charged particles ; Nparticles ; Entries",200,-0.5,199.5);
+
+ fHistNchMCVsNchMCPrimaryVsNchMCPhysicalPrimary = new TH3F("fHistNchMCVsNchMCPrimaryVsNchMCPhysicalPrimary", "MC: Nch (Physical Primary) vs Nch (Primary) vs Nch (Generated); Nch (Generated); Nch (Primary); Nch (Physical Primary)",200,-0.5,199.5,200,-0.5,199.5,200,-0.5,199.5);
+
+ fHistNtrUnCorrEvSel->Sumw2();
+ fHistNtrCorrEvSel->Sumw2();
+ fHistNtrCorrEvWithCand->Sumw2();
+ fHistNtrCorrEvWithD->Sumw2();
+ fHistGenPrimaryParticlesInelGt0->Sumw2();
+ fOutput->Add(fHistNtrUnCorrEvSel);
+ fOutput->Add(fHistNtrCorrEvSel);
+ fOutput->Add(fHistNtrCorrEvWithCand);
+ fOutput->Add(fHistNtrCorrEvWithD);
+ fOutput->Add(fHistNtrEta16vsNtrEta1);
+ fOutput->Add(fHistNtrCorrEta1vsNtrRawEta1);
+ fOutput->Add(fHistNtrVsZvtx);
+ fOutput->Add(fHistNtrCorrVsZvtx);
+
+ fOutput->Add(fHistNtrVsNchMC);
+ fOutput->Add(fHistNtrCorrVsNchMC);
+ fOutput->Add(fHistNtrVsNchMCPrimary);
+ fOutput->Add(fHistNtrCorrVsNchMCPrimary);
+ fOutput->Add(fHistNtrVsNchMCPhysicalPrimary);
+ fOutput->Add(fHistNtrCorrVsNchMCPhysicalPrimary);
+ fOutput->Add(fHistGenPrimaryParticlesInelGt0);
+ fOutput->Add(fHistNchMCVsNchMCPrimaryVsNchMCPhysicalPrimary);
fHistNEvents = new TH1F("fHistNEvents", "number of events ",11,-0.5,10.5);
fHistNEvents->SetMinimum(0);
fOutput->Add(fHistNEvents);
- fPtVsMassVsMult=new TH3F("hPtVsMassvsMult", "D candidates: p_{t} vs mass vs tracklets multiplicity; Tracklets; Mass M [GeV/c^{2}]; p_{t} [GeV/c]",200,0.,200.,fNMassBins,fLowmasslimit,fUpmasslimit,48,0.,24.);
+ fPtVsMassVsMult=new TH3F("hPtVsMassvsMult", "D candidates: p_{t} vs mass vs tracklets multiplicity; Tracklets; Mass M [GeV/c^{2}]; p_{t} [GeV/c]",200,-0.5,199.5,fNMassBins,fLowmasslimit,fUpmasslimit,48,0.,24.);
- fPtVsMassVsMultNoPid=new TH3F("hPtVsMassvsMultNoPid", "D candidates: p_{t} vs mass vs tracklets multiplicity; Tracklets; Mass M [GeV/c^{2}]; p_{t} [GeV/c]",200,0.,200.,fNMassBins,fLowmasslimit,fUpmasslimit,48,0.,24.);
+ fPtVsMassVsMultNoPid=new TH3F("hPtVsMassvsMultNoPid", "D candidates: p_{t} vs mass vs tracklets multiplicity; Tracklets; Mass M [GeV/c^{2}]; p_{t} [GeV/c]",200,-0.5,199.5,fNMassBins,fLowmasslimit,fUpmasslimit,48,0.,24.);
fPtVsMassVsMultUncorr=new TH3F("hPtVsMassvsMultUncorr", "D candidates: p_{t} vs mass vs tracklets multiplicity; Tracklets; Mass M [GeV/c^{2}]; p_{t} [GeV/c]",200,-0.5,199.5,fNMassBins,fLowmasslimit,fUpmasslimit,48,0.,24.);
- fPtVsMassVsMultPart=new TH3F("hPtVsMassvsMultPart", "D candidates: p_{t} vs mass vs tracklets multiplicity; Tracklets; Mass M [GeV/c^{2}]; p_{t} [GeV/c]",200,0.,200.,fNMassBins,fLowmasslimit,fUpmasslimit,48,0.,24.);
+ fPtVsMassVsMultPart=new TH3F("hPtVsMassvsMultPart", "D candidates: p_{t} vs mass vs tracklets multiplicity; Tracklets; Mass M [GeV/c^{2}]; p_{t} [GeV/c]",200,-0.5,199.5,fNMassBins,fLowmasslimit,fUpmasslimit,48,0.,24.);
- fPtVsMassVsMultAntiPart=new TH3F("hPtVsMassvsMultAntiPart", "D candidates: p_{t} vs mass vs tracklets multiplicity; Tracklets; Mass M [GeV/c^{2}]; p_{t} [GeV/c]",200,0.,200.,fNMassBins,fLowmasslimit,fUpmasslimit,48,0.,24.);
+ fPtVsMassVsMultAntiPart=new TH3F("hPtVsMassvsMultAntiPart", "D candidates: p_{t} vs mass vs tracklets multiplicity; Tracklets; Mass M [GeV/c^{2}]; p_{t} [GeV/c]",200,-0.5,199.5,fNMassBins,fLowmasslimit,fUpmasslimit,48,0.,24.);
fOutput->Add(fPtVsMassVsMult);
fOutput->Add(fPtVsMassVsMultUncorr);
PostData(1,fOutput);
PostData(2,fListCuts);
PostData(3,fOutputCounters);
+ PostData(4,fListProfiles);
+
+
return;
}
// Execute analysis for current event:
// heavy flavor candidates association to MC truth
- printf("UserExec\n");
-
AliAODEvent *aod = dynamic_cast<AliAODEvent*> (InputEvent());
// AliAODTracklets* tracklets = aod->GetTracklets();
}
}
- fCounter->StoreEvent(aod,fRDCutsAnalysis,fReadMC,countTreta1corr);
+ fCounter->StoreEvent(aod,fRDCutsAnalysis,fReadMC,(Int_t)countTreta1corr);
Bool_t isEvSel=fRDCutsAnalysis->IsEventSelected(aod);
if(fRDCutsAnalysis->GetWhyRejection()==5) fHistNEvents->Fill(3);
if(fRDCutsAnalysis->GetWhyRejection()==7) fHistNEvents->Fill(4);
- if(fRDCutsAnalysis->GetWhyRejection()==6)fHistNEvents->Fill(5);
- if(fRDCutsAnalysis->GetWhyRejection()==1)fHistNEvents->Fill(6);
-
+ if(fRDCutsAnalysis->GetWhyRejection()==6) fHistNEvents->Fill(5);
+ if(fRDCutsAnalysis->GetWhyRejection()==1) fHistNEvents->Fill(6);
- if(!isEvSel)return;
- fHistNEvents->Fill(2); // count events selected
-
- ((TH2F*)(fOutput->FindObject("heta16vseta1")))->Fill(countTreta1,countTr);
- ((TH2F*)(fOutput->FindObject("heta1corrvseta1")))->Fill(countTreta1,countTreta1corr);
- ((TH2F*)(fOutput->FindObject("hNtrkvsVtxZ")))->Fill(vtx1->GetZ(),countTreta1);
- ((TH2F*)(fOutput->FindObject("hNtrkvsVtxZCorr")))->Fill(vtx1->GetZ(),countTreta1corr);
-
+ if(!isEvSel)return;
+ fHistNtrEta16vsNtrEta1->Fill(countTreta1,countTr);
+ fHistNtrCorrEta1vsNtrRawEta1->Fill(countTreta1,countTreta1corr);
+ if(vtx1){
+ fHistNtrVsZvtx->Fill(vtx1->GetZ(),countTreta1);
+ fHistNtrCorrVsZvtx->Fill(vtx1->GetZ(),countTreta1corr);
+ }
+
TClonesArray *arrayMC=0;
AliAODMCHeader *mcHeader=0;
printf("AliAnalysisTaskSEDvsMultiplicity::UserExec: MC header branch not found!\n");
return;
}
+
+
+ Int_t nChargedMC=AliVertexingHFUtils::GetGeneratedMultiplicityInEtaRange(arrayMC,-1.0,1.0);
+ Int_t nChargedMCPrimary=AliVertexingHFUtils::GetGeneratedPrimariesInEtaRange(arrayMC,-1.0,1.0);
+ Int_t nChargedMCPhysicalPrimary=AliVertexingHFUtils::GetGeneratedPhysicalPrimariesInEtaRange(arrayMC,-1.0,1.0);
+ if(nChargedMCPhysicalPrimary>0){ // INEL>0 for |eta|<1
+ fHistGenPrimaryParticlesInelGt0->Fill(nChargedMCPhysicalPrimary);
+ }
+ fHistNtrVsNchMC->Fill(nChargedMC,countTreta1);
+ fHistNtrCorrVsNchMC->Fill(nChargedMC,countTreta1corr);
+
+ fHistNtrVsNchMCPrimary->Fill(nChargedMCPrimary,countTreta1);
+ fHistNtrCorrVsNchMCPrimary->Fill(nChargedMCPrimary,countTreta1corr);
+
+ fHistNtrVsNchMCPhysicalPrimary->Fill(nChargedMCPhysicalPrimary,countTreta1);
+ fHistNtrCorrVsNchMCPhysicalPrimary->Fill(nChargedMCPhysicalPrimary,countTreta1corr);
+
+ fHistNchMCVsNchMCPrimaryVsNchMCPhysicalPrimary->Fill(nChargedMC,nChargedMCPrimary,nChargedMCPhysicalPrimary);
}
Int_t nCand = arrayCand->GetEntriesFast();
Double_t ptCand = d->Pt();
Double_t rapid=d->Y(fPdgMeson);
Bool_t isFidAcc=fRDCutsAnalysis->IsInFiducialAcceptance(ptCand,rapid);
- Int_t passAllCuts=fRDCutsAnalysis->IsSelected(d,AliRDHFCuts::kCandidate,aod);
+ if(!isFidAcc) continue;
+ Int_t passAllCuts=fRDCutsAnalysis->IsSelected(d,AliRDHFCuts::kAll,aod);
Int_t passTopolCuts=fRDCutsAnalysis->GetIsSelectedCuts();
if(passTopolCuts==0) continue;
nSelectedNoPID++;
nSelectedPID++;
fHistNEvents->Fill(10);
}
+ Double_t multForCand=countTreta1corr;
+ if(fSubtractTrackletsFromDau){
+ for(Int_t iDau=0; iDau<nDau; iDau++){
+ AliAODTrack *t = (AliAODTrack*)d->GetDaughter(iDau);
+ if(!t) continue;
+ if(t->HasPointOnITSLayer(0) && t->HasPointOnITSLayer(1)){
+ if(multForCand>0) multForCand-=1;
+ }
+ }
+ }
Bool_t isPrimary=kTRUE;
Int_t labD=-1;
Double_t trueImpParXY=9999.;
for(Int_t iHyp=0; iHyp<2; iHyp++){
if(mass[iHyp]<0.) continue; // for D+ and D* we have 1 mass hypothesis
Double_t invMass=mass[iHyp];
- Double_t arrayForSparse[5]={invMass,ptCand,impparXY,dlen,countTreta1corr};
+ Double_t arrayForSparse[5]={invMass,ptCand,impparXY,dlen,multForCand};
if(fReadMC){
}else if(fPdgMeson==413){
trueImpParXY=0.; /// FIXME
}
- Double_t arrayForSparseTrue[5]={invMass,ptCand,trueImpParXY,dlen,countTreta1corr};
- if(fillHisto && isFidAcc && passAllCuts){
+ Double_t arrayForSparseTrue[5]={invMass,ptCand,trueImpParXY,dlen,multForCand};
+ if(fillHisto && passAllCuts){
fHistMassPtImpPar[2]->Fill(arrayForSparse);
fHistMassPtImpPar[3]->Fill(arrayForSparseTrue);
}
}else{
- if(fillHisto && isFidAcc && passAllCuts) fHistMassPtImpPar[1]->Fill(arrayForSparse);
+ if(fillHisto && passAllCuts) fHistMassPtImpPar[1]->Fill(arrayForSparse);
}
}else{
- if(fillHisto && isFidAcc && passAllCuts)fHistMassPtImpPar[4]->Fill(arrayForSparse);
+ if(fillHisto && passAllCuts)fHistMassPtImpPar[4]->Fill(arrayForSparse);
}
if(fPdgMeson==421){
if(TMath::Abs(labD)==fPdgMeson && fMCOption==2) continue;
}
}
- if(iHyp==0 && !(passTopolCuts&1)) continue; // candidate not passing as D0
- if(iHyp==1 && !(passTopolCuts&2)) continue; // candidate not passing as D0bar
-
- if(isFidAcc){
- fPtVsMassVsMultNoPid->Fill(countTreta1corr,invMass,ptCand);
- if(passAllCuts){
- fPtVsMassVsMult->Fill(countTreta1corr,invMass,ptCand);
- fPtVsMassVsMultUncorr->Fill(countTreta1,invMass,ptCand);
- // Add separation between part antipart
- if(fPdgMeson==411){
- if(d->GetCharge()>0) fPtVsMassVsMultPart->Fill(countTreta1corr,invMass,ptCand);
- else fPtVsMassVsMultAntiPart->Fill(countTreta1corr,invMass,ptCand);
- }else if(fPdgMeson==421){
- if(passTopolCuts&1) fPtVsMassVsMultPart->Fill(countTreta1corr,invMass,ptCand);
- if(passTopolCuts&2) fPtVsMassVsMultAntiPart->Fill(countTreta1corr,invMass,ptCand);
- }else if(fPdgMeson==413){
- // FIXME ADD Dstar!!!!!!!!
- }
-
-
- if(fDoImpPar){
- fHistMassPtImpPar[0]->Fill(arrayForSparse);
- }
-
+ if(fPdgMeson==421){
+ if(iHyp==0 && !(passTopolCuts&1)) continue; // candidate not passing as D0
+ if(iHyp==1 && !(passTopolCuts&2)) continue; // candidate not passing as D0bar
+ }
+
+ fPtVsMassVsMultNoPid->Fill(multForCand,invMass,ptCand);
+
+ if(fPdgMeson==421){
+ if(iHyp==0 && !(passAllCuts&1)) continue; // candidate not passing as D0
+ if(iHyp==1 && !(passAllCuts&2)) continue; // candidate not passing as D0bar
+ }
+ if(passAllCuts){
+ fPtVsMassVsMult->Fill(multForCand,invMass,ptCand);
+ fPtVsMassVsMultUncorr->Fill(countTreta1,invMass,ptCand);
+ // Add separation between part antipart
+ if(fPdgMeson==411){
+ if(d->GetCharge()>0) fPtVsMassVsMultPart->Fill(multForCand,invMass,ptCand);
+ else fPtVsMassVsMultAntiPart->Fill(multForCand,invMass,ptCand);
+ }else if(fPdgMeson==421){
+ if(passAllCuts&1) fPtVsMassVsMultPart->Fill(multForCand,invMass,ptCand);
+ if(passAllCuts&2) fPtVsMassVsMultAntiPart->Fill(multForCand,invMass,ptCand);
+ }else if(fPdgMeson==413){
+ // FIXME ADD Dstar!!!!!!!!
}
+
+ if(fDoImpPar){
+ fHistMassPtImpPar[0]->Fill(arrayForSparse);
+ }
+
}
}
}
fCounter->StoreCandidates(aod,nSelectedNoPID,kTRUE);
fCounter->StoreCandidates(aod,nSelectedPID,kFALSE);
- if(nSelectedPID>0) ((TH2F*)(fOutput->FindObject("hspdmultCand")))->Fill(countTreta1corr);
- if(nSelectedInMassPeak) ((TH2F*)(fOutput->FindObject("hspdmultD")))->Fill(countTreta1corr);
+ fHistNtrUnCorrEvSel->Fill(countTreta1);
+ fHistNtrCorrEvSel->Fill(countTreta1corr);
+ if(nSelectedPID>0) fHistNtrCorrEvWithCand->Fill(countTreta1corr);
+ if(nSelectedInMassPeak>0) fHistNtrCorrEvWithD->Fill(countTreta1corr);
PostData(1,fOutput);
PostData(2,fListCuts);
- PostData(3,fOutput);
-
-
+ PostData(3,fOutputCounters);
+
return;
}
//________________________________________________________________________
printf("ERROR: fOutput not available\n");
return;
}
- fHistNEvents = dynamic_cast<TH1F*>(fOutput->FindObject("fHistNEvents"));
-
+ fHistNEvents = dynamic_cast<TH1F*>(fOutput->FindObject("fHistNEvents"));
+ if(!fHistNEvents){
+ printf("ERROR: fHistNEvents not available\n");
+ return;
+ }
+ printf("Number of Analyzed Events = %d\n",(Int_t)fHistNEvents->GetBinContent(3));
return;
}
return fMultEstimatorAvg[period];
}
-