-AliAnalysisTaskSE *AddTaskNuclei(Bool_t kAOD=kFALSE,Bool_t kMC=kFALSE,Float_t fCentralityMin=0.0,Float_t fCentralityMax=100.0,Int_t filterBit=16,Int_t nTPCminCluster=0,Float_t DCAzCut=100.0,Float_t DCAxyCut=0.1,Bool_t bTPCcut=kTRUE,Float_t fNsigmaTpcCut=2.0,Bool_t bSignalCheck=kTRUE, Int_t nAnaMomType=1){
+AliAnalysisTaskSE *AddTaskNuclei(Bool_t kAOD=kFALSE,Bool_t kMC=kFALSE,Float_t fCentralityMin=0.0,Float_t fCentralityMax=100.0,Int_t filterBit=16,Int_t nTPCminCluster=0,Float_t DCAzCut=100.0,Float_t DCAxyCut=0.1,Bool_t bTPCcut=kTRUE,Float_t fNsigmaTpcCut=2.0,Bool_t bSignalCheck=kTRUE, Int_t nAnaMomType=1, Double_t AbsEtaMin=0.0, Double_t AbsEtaMax=0.1){
//get the current analysis manager
AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
kCentrality[0]=fCentralityMin;
kCentrality[1]=fCentralityMax;
+ Double_t *fEtaLimits = new Double_t[2];
+ fEtaLimits[0]=AbsEtaMin;
+ fEtaLimits[1]=AbsEtaMax;
+
task->SetCentrality(kCentrality);
task->SetFilterBit(filterBit);
task->SetNTPCcluster(nTPCminCluster);
task->SetNsigmaTPCCut(fNsigmaTpcCut);
task->SetisSignalCheck(bSignalCheck);
task->SetMomBin(nAnaMomType);
-
+ task->SetAbsEtaLimit(fEtaLimits);
+
mgr->AddTask(task);
//Attach input to my tasks
- char name[300];
+ char name[400];
//sprintf(name,"cchain1%02i%02i",kCentrality[0],kCentrality[1]);
- sprintf(name,"cchain1%02i%02i_FilterBit=%02i_NminTPCclusters=%03i_DCAzCUT=%.1f_DCAxyCUT=%.2f_kTPCcut=%i_NsigTPCcut=%1.0f_bSignCheck=%i_iMomType=%01i",kCentrality[0],kCentrality[1],filterBit,nTPCminCluster,DCAzCut,DCAxyCut,bTPCcut,fNsigmaTpcCut,bSignalCheck,nAnaMomType);
+ sprintf(name,"cchain1%02i%02i_FilterBit=%02i_NminTPCclusters=%03i_DCAzCUT=%.1f_DCAxyCUT=%.2f_kTPCcut=%i_NsigTPCcut=%1.0f_bSignCheck=%i_iMomType=%01i_EtaMin=%.1f_EtaMax=%.1f",kCentrality[0],kCentrality[1],filterBit,nTPCminCluster,DCAzCut,DCAxyCut,bTPCcut,fNsigmaTpcCut,bSignalCheck,nAnaMomType,fEtaLimits[0],fEtaLimits[1]);
AliAnalysisDataContainer *cinput = mgr->CreateContainer(name,TChain::Class(),AliAnalysisManager::kInputContainer);
mgr->ConnectInput(task,0,mgr->GetCommonInputContainer());
//sprintf(name,"Results_CC%02i%02i",kCentrality[0],kCentrality[1]);
- sprintf(name,"ResultsBmm_CC%02i%02i_FilterBit=%02i_NminTPCclusters=%03i_DCAzCUT=%.1f_DCAxyCUT=%.2f_kTPCcut=%i_NsigTPCcut=%1.0f_bSignCheck=%i_iMomType=%01i",kCentrality[0],kCentrality[1],filterBit,nTPCminCluster,DCAzCut,DCAxyCut,bTPCcut,fNsigmaTpcCut,bSignalCheck,nAnaMomType);
+ sprintf(name,"ResultsBmm_CC%02i%02i_FilterBit=%02i_NminTPCclusters=%03i_DCAzCUT=%.1f_DCAxyCUT=%.2f_kTPCcut=%i_NsigTPCcut=%1.0f_bSignCheck=%i_iMomType=%01i_EtaMin=%.1f_EtaMax=%.1f",kCentrality[0],kCentrality[1],filterBit,nTPCminCluster,DCAzCut,DCAxyCut,bTPCcut,fNsigmaTpcCut,bSignalCheck,nAnaMomType,fEtaLimits[0],fEtaLimits[1]);
AliAnalysisDataContainer *cOutputL= mgr->CreateContainer(name,TList::Class(), AliAnalysisManager::kOutputContainer, AliAnalysisManager::GetCommonFileName());
mgr->ConnectOutput(task, 1, cOutputL);
- sprintf(name,"ResultsBpp_%02i%02i_FilterBit=%02i_NminTPCclusters=%03i_DCAzCUT=%.1f_DCAxyCUT=%.2f_kTPCcut=%i_NsigTPCcut=%1.0f_bSignCheck=%i_iMomType=%01i",kCentrality[0],kCentrality[1],filterBit,nTPCminCluster,DCAzCut,DCAxyCut,bTPCcut,fNsigmaTpcCut,bSignalCheck,nAnaMomType);
+ sprintf(name,"ResultsBpp_%02i%02i_FilterBit=%02i_NminTPCclusters=%03i_DCAzCUT=%.1f_DCAxyCUT=%.2f_kTPCcut=%i_NsigTPCcut=%1.0f_bSignCheck=%i_iMomType=%01i_EtaMin=%.1f_EtaMax=%.1f",kCentrality[0],kCentrality[1],filterBit,nTPCminCluster,DCAzCut,DCAxyCut,bTPCcut,fNsigmaTpcCut,bSignalCheck,nAnaMomType,fEtaLimits[0],fEtaLimits[1]);
AliAnalysisDataContainer *cOutputL2= mgr->CreateContainer(name,TList::Class(), AliAnalysisManager::kOutputContainer, AliAnalysisManager::GetCommonFileName());
mgr->ConnectOutput(task, 2, cOutputL2);
kTOF(0),
iBconf(0),
isSignalCheck(kTRUE),
- //NsigmaTPCCut(2.0),
- //MomType(7),
+ NsigmaTPCCut(2.0),
+ MomType(1),
fAOD(NULL),
fESD(NULL),
fEvent(NULL),
- fPIDResponse(NULL)
+ fPIDResponse(NULL),
+ fmism(NULL),
+ hmism(NULL),
+ fchDist(NULL),
+ hChDist(NULL)
/*fBetaTofVSp(NULL),
fCentrality(NULL),
hNevent(NULL),
kTOF(0),
iBconf(0),
isSignalCheck(kTRUE),
- //NsigmaTPCCut(2.0),
- //MomType(7),
+ NsigmaTPCCut(2.0),
+ MomType(1),
fAOD(NULL),
fESD(NULL),
fEvent(NULL),
- fPIDResponse(NULL)
+ fPIDResponse(NULL),
+ fmism(NULL),
+ hmism(NULL),
+ fchDist(NULL),
+ hChDist(NULL)
/*fBetaTofVSp(NULL),
fCentrality(NULL),
hNevent(NULL),
hNeventSelected[iB] = new TH1F("hNevent_Selected","Centrality(selected)",20,0,100);
hZvertex[iB] = new TH1F("hZvertex","Vertex distribution of selected events; z vertex (cm)",240,-30,30);
+
+ hEtaDistribution[iB] = new TH1F("hEtaDistribution","Eta distribution of the tracks; |#eta|",11,-0.1,1.0);
hTOFSignalPion[iB] = new TH1F("hTOFSignalPion","TOF signal 0.9<p_{T}<1.0; t-t_{exp}^{#pi} (ps)",1500,-1500,1500);
fBetaTofVSp[iB] = new TH2F("fBetaTofVSp","#beta_{TOF} vs p; p(GeV/c); #beta_{TOF}",1,0,5,1,0.4,1.05);
- fM2vsP_NoTpcCut[iB][0] = new TH2F("fM2vsP_NoTpcCut","M_{TOF}^{2} vs p; M_{TOF}^{2}/Z^{2} (GeV^{2}/c^{4}); p/|Z| (GeV/c)",1250,0,10,80,0,8);
- fM2vsP_NoTpcCut[iB][1] = new TH2F("fM2vsP_NoTpcCut_Positive","M_{TOF}^{2} vs p Pos Part; M_{TOF}^{2}/Z^{2} (GeV^{2}/c^{4}); p/|Z| (GeV/c)",1250,0,10,80,0,8);
- fM2vsP_NoTpcCut[iB][2] = new TH2F("fM2vsP_NoTpcCut_Negative","M_{TOF}^{2} vs p Neg Part; M_{TOF}^{2}/Z^{2} (GeV^{2}/c^{4}); p/|Z| (GeV/c)",1250,0,10,80,0,8);
+ fM2vsP_NoTpcCut[iB][0] = new TH2F("fM2vsP_NoTpcCut","M_{TOF}^{2} vs p; M_{TOF}^{2}/Z^{2} (GeV^{2}/c^{4}); p/|Z| (GeV/c)",1,0,10,1,0,8);//1250,...,80
+ fM2vsP_NoTpcCut[iB][1] = new TH2F("fM2vsP_NoTpcCut_Positive","M_{TOF}^{2} vs p Pos Part; M_{TOF}^{2}/Z^{2} (GeV^{2}/c^{4}); p/|Z| (GeV/c)",1,0,10,1,0,8);
+ fM2vsP_NoTpcCut[iB][2] = new TH2F("fM2vsP_NoTpcCut_Negative","M_{TOF}^{2} vs p Neg Part; M_{TOF}^{2}/Z^{2} (GeV^{2}/c^{4}); p/|Z| (GeV/c)",1,0,10,1,0,8);
- fM2vsP_NoTpcCut_DCAxyCut[iB][0] = new TH2F("fM2vsP_NoTpcCut_DCAxycut","M_{TOF}^{2} vs p with DCAxy cut; M_{TOF}^{2}/Z^{2} (GeV^{2}/c^{4}); p/|Z| (GeV/c)",1250,0,10,80,0,8);
- fM2vsP_NoTpcCut_DCAxyCut[iB][1] = new TH2F("fM2vsP_NoTpcCut_Positive_DCAxycut","M_{TOF}^{2} vs p Pos Part with DCAxy cut; M_{TOF}^{2}/Z^{2} (GeV^{2}/c^{4}); p/|Z| (GeV/c)",1250,0,10,80,0,8);
- fM2vsP_NoTpcCut_DCAxyCut[iB][2] = new TH2F("fM2vsP_NoTpcCut_Negative_DCAxycut","M_{TOF}^{2} vs p Neg Part with DCAxy cut; M_{TOF}^{2}/Z^{2} (GeV^{2}/c^{4}); p/|Z| (GeV/c)",1250,0,10,80,0,8);
+ fM2vsP_NoTpcCut_DCAxyCut[iB][0] = new TH2F("fM2vsP_NoTpcCut_DCAxycut","M_{TOF}^{2} vs p with DCAxy cut; M_{TOF}^{2}/Z^{2} (GeV^{2}/c^{4}); p/|Z| (GeV/c)",1,0,10,1,0,8);
+ fM2vsP_NoTpcCut_DCAxyCut[iB][1] = new TH2F("fM2vsP_NoTpcCut_Positive_DCAxycut","M_{TOF}^{2} vs p Pos Part with DCAxy cut; M_{TOF}^{2}/Z^{2} (GeV^{2}/c^{4}); p/|Z| (GeV/c)",1,0,10,1,0,8);
+ fM2vsP_NoTpcCut_DCAxyCut[iB][2] = new TH2F("fM2vsP_NoTpcCut_Negative_DCAxycut","M_{TOF}^{2} vs p Neg Part with DCAxy cut; M_{TOF}^{2}/Z^{2} (GeV^{2}/c^{4}); p/|Z| (GeV/c)",1,0,10,1,0,8);
/*fM2vsP_NoTpcCut[iB][0] = new TH2F("fM2vsP_NoTpcCut","M_{TOF}^{2} vs p; M_{TOF}^{2}/Z^{2} (GeV^{2}/c^{4}); p/|Z| (GeV/c)",1,0,10,1,0,10);
fM2vsP_NoTpcCut[iB][1] = new TH2F("fM2vsP_NoTpcCut_Positive","M_{TOF}^{2} vs p Pos Part; M_{TOF}^{2}/Z^{2} (GeV^{2}/c^{4}); p/|Z| (GeV/c)",1,0,10,1,0,10);
for (Int_t i=0;i<18;i++) fM2vsP_DCAxyCut[iB][i] = new TH2F(name_par_MvsP_DCAxyCut[i],name_title_MvsP_DCAxyCut[i],1,0,10,1,0,10);*/
- for (Int_t i=0;i<18;i++) fM2vsP[iB][i] = new TH2F(name_par_MvsP[i],name_title_MvsP[i],1250,0,10,80,0,8);
+ for (Int_t i=0;i<18;i++) fM2vsP[iB][i] = new TH2F(name_par_MvsP[i],name_title_MvsP[i],1000,0,6,60,0,6);//1250,0,10,80,0,8
- for (Int_t i=0;i<18;i++) fM2vsP_DCAxyCut[iB][i] = new TH2F(name_par_MvsP_DCAxyCut[i],name_title_MvsP_DCAxyCut[i],1250,0,10,80,0,8);
+ for (Int_t i=0;i<18;i++) fM2vsP_DCAxyCut[iB][i] = new TH2F(name_par_MvsP_DCAxyCut[i],name_title_MvsP_DCAxyCut[i],1000,0,6,60,0,6);//1250,0,10,80,0,8
}
Float_t binPt[nbin+1];
for(Int_t i=0;i<nbin+1;i++) {
- binPt[i]=0.700+i*0.025;
+ binPt[i]=0.4+0.1*i;
}
Char_t par_name_nbin[nbin][30];
for(Int_t j=0;j<nbin;j++) {
- snprintf(par_name_nbin[j],30,"%.3f<Pt<%.3f",binPt[j],binPt[j+1]);
+ snprintf(par_name_nbin[j],30,"%.1f<Pt<%.1f",binPt[j],binPt[j+1]);
}
Char_t par_name_nbin_pbin[nbin][30];
for(Int_t j=0;j<nbin;j++) {
- snprintf(par_name_nbin_pbin[j],30,"%.3f<P<%.3f",binPt[j],binPt[j+1]);
+ snprintf(par_name_nbin_pbin[j],30,"%.1f<P<%.1f",binPt[j],binPt[j+1]);
}
Char_t par_name_nbin_pTpcbin[nbin][30];
for(Int_t j=0;j<nbin;j++) {
- snprintf(par_name_nbin_pTpcbin[j],30,"%.3f<PTpc<%.3f",binPt[j],binPt[j+1]);
+ snprintf(par_name_nbin_pTpcbin[j],30,"%.1f<PTpc<%.1f",binPt[j],binPt[j+1]);
}
Char_t nameDCAxy[3][18][nbin][120];
for(Int_t iBinMom=0;iBinMom<3;iBinMom++) {
for(Int_t j=0;j<nbin;j++) {
- hM2BkgMism[iB][iBinMom][j]=new TH1D(nameM2BkgMism[iBinMom][j],titleM2BkgMism[iBinMom][j],5000,0,10);//125 bins
+ hM2BkgMism[iB][iBinMom][j]=new TH1D(nameM2BkgMism[iBinMom][j],titleM2BkgMism[iBinMom][j],500,0,6);//125 bins
hM2BkgMism[iB][iBinMom][j]->GetXaxis()->CenterTitle();
}
}
- const Int_t BinM2pT[9]={1,1,600,400,500,500,1000,400,600};
+ const Int_t BinM2pT[9]={1,1,600,250,500,500,1000,400,600};
const Float_t RangeM2min[9]={0.0,0.0,-0.1,0.0,0.0,0.0,0.0,0.0,0.0};
- const Float_t RangeM2max[9]={1.0,1.0,0.5,1.0,4.0,6.0,12.0,4.0,6.0};
+ const Float_t RangeM2max[9]={1.0,1.0,0.5,2.0,4.0,6.0,12.0,4.0,6.0};
+
+
for(Int_t iSp=0;iSp<9;iSp++) {
for(Int_t j=0;j<nbin;j++) {
fList1[iB]->Add(hNeventSelected[iB]);
fList1[iB]->Add(hNevent[iB]);
fList1[iB]->Add(hZvertex[iB]);
+ fList1[iB]->Add(hEtaDistribution[iB]);
fList1[iB]->Add(hTOFSignalPion[iB]);
for(Int_t iS=0;iS<18;iS++) fList1[iB]->Add(fNsigmaTPCvsP_kTOFtrue[iB][iS]);
for(Int_t i=0;i<15;i++) fList1[iB]->Add(fM2vsZwithTPC[iB][i]);
for(Int_t i=0;i<3;i++) fList1[iB]->Add(fM2vsP_NoTpcCut[iB][i]);
- for(Int_t i=0;i<18;i++) fList1[iB]->Add(fM2vsP[iB][i]);
-
+ for(Int_t i=3;i<6;i++) {//for(Int_t i=0;i<18;i++)
+ fList1[iB]->Add(fM2vsP[iB][i]);
+ fList1[iB]->Add(fM2vsP[iB][i+9]);//via-^
+ }
+
for(Int_t i=0;i<3;i++) fList1[iB]->Add(fM2vsP_NoTpcCut_DCAxyCut[iB][i]);
- for(Int_t i=0;i<18;i++) fList1[iB]->Add(fM2vsP_DCAxyCut[iB][i]);
-
+ for(Int_t i=3;i<6;i++) {//for(Int_t i=0;i<18;i++)
+ fList1[iB]->Add(fM2vsP_DCAxyCut[iB][i]);
+ fList1[iB]->Add(fM2vsP_DCAxyCut[iB][i+9]);//via-^
+ }
+
if(MomType & 1) {
- for(Int_t iSp=2;iSp<9;iSp++) {
+ for(Int_t iSp=3;iSp<6;iSp++) {//for(Int_t iSp=2;iSp<9;iSp++)
for(Int_t j=0;j<nbin;j++) {
fList1[iB]->Add(hDCAxy[iB][iSp][j]);
fList1[iB]->Add(hDCAz[iB][iSp][j]);
}
}
if(MomType & 2) {
- for(Int_t iSp=2;iSp<9;iSp++) {
+ for(Int_t iSp=3;iSp<6;iSp++) {//for(Int_t iSp=2;iSp<9;iSp++)
for(Int_t j=0;j<nbin;j++) {
fList1[iB]->Add(hDCAxy_pbin[iB][iSp][j]);
fList1[iB]->Add(hDCAz_pbin[iB][iSp][j]);
}
}
if(MomType & 4) {
- for(Int_t iSp=2;iSp<9;iSp++) {
+ for(Int_t iSp=3;iSp<6;iSp++) {//for(Int_t iSp=2;iSp<9;iSp++)
for(Int_t j=0;j<nbin;j++) {
fList1[iB]->Add(hDCAxy_pTpcbin[iB][iSp][j]);
fList1[iB]->Add(hDCAz_pTpcbin[iB][iSp][j]);
Int_t NTpcCls=track->GetTPCNcls();
if(NTpcCls>NminTPCcluster) kTPC=kTRUE;
else kTPC=kFALSE;
+
+ Float_t etaAbs = TMath::Abs(track->Eta());
+
+ //if(etaAbs<EtaLimit[0] && etaAbs>EtaLimit[1]) continue;
+
+ if(etaAbs<EtaLimit[0]) continue;
+ if(etaAbs>EtaLimit[1]) continue;
- if ((TMath::Abs(track->Eta()) > 0.8) || (track->Pt() < 0.2) || !trkFlag || !kTPC){
+ if ((track->Pt() < 0.2) || !trkFlag || !kTPC){
continue;
- }
-
+ }
+
Double_t b[2] = {-99., -99.};
Double_t bCov[3] = {-99., -99., -99.};
if (!track->PropagateToDCA(fEvent->GetPrimaryVertex(), fEvent->GetMagneticField(), 100., b, bCov))
continue;
- Float_t etaAbs = TMath::Abs(track->Eta());
+ //Float_t etaAbs = TMath::Abs(track->Eta());
Float_t charge = (Float_t)track->Charge();
Float_t p = track->P();
Float_t pt = track->Pt();
Float_t DCAxy = b[0];
Float_t DCAz = b[1];
+ hEtaDistribution[iBconf]->Fill(etaAbs);
+
if(TMath::Abs(DCAz)>DCAzCUT)//CUT ON DCAz
continue;
Float_t binPt[nbin+1];
for(Int_t i=0;i<nbin+1;i++) {
- binPt[i]=0.700+i*0.025;
+ binPt[i]=0.4+i*0.1;
}
//M2 background distribution from mismatch (START):