//dimensions of THnSparse for tracks
const Int_t nvartrk=8;
- // pt cent Q vec IDrec IDgen isph y DCA
- Int_t binsHistRealTrk[nvartrk] = { nptBins, fnCentBins, fnQvecBins, 4, 3, 3, 2, fnDCABins};
- Double_t xminHistRealTrk[nvartrk] = { 0., 0., 0., -.5, -0.5, 0.5, -0.5, fDCAmin};
- Double_t xmaxHistRealTrk[nvartrk] = { 10., 100., fQvecUpperLim, 3.5, 2.5, 3.5, 0.5, fDCAmax};
+ // pt cent Q vec IDrec IDgen isph y DCA
+ Int_t binsHistRealTrk[nvartrk] = { nptBins, fnCentBins, fnQvecBins, 4, 3, 3, 2, fnDCABins};
+ Double_t xminHistRealTrk[nvartrk] = { 0., 0., 0., -.5, -0.5, 0.5, -0.5, fDCAmin};
+ Double_t xmaxHistRealTrk[nvartrk] = { 10., 100., fQvecUpperLim, 3.5, 2.5, 3.5, 0.5, fDCAmax};
THnSparseF* NSparseHistTrk = new THnSparseF("NSparseHistTrk","NSparseHistTrk",nvartrk,binsHistRealTrk,xminHistRealTrk,xmaxHistRealTrk);
NSparseHistTrk->GetAxis(0)->SetTitle("#it{p}_{T,rec}");
NSparseHistTrk->GetAxis(0)->SetName("pT_rec");
fOutput->Add(NSparseHistTrk);
//dimensions of THnSparse for stack
- const Int_t nvarst=6;
- // pt cent IDgen isph y etaselected
- Int_t binsHistRealSt[nvarst] = { nptBins, fnCentBins, 3, 2, 2, 1};
- Double_t xminHistRealSt[nvarst] = { 0., 0., -0.5, -0.5, -0.5, 0.5};
- Double_t xmaxHistRealSt[nvarst] = { 10., 100., 2.5, 1.5, 0.5, 1.5};
+ const Int_t nvarst=7;
+ // pt cent IDgen isph y etaselected Qvec gen
+ Int_t binsHistRealSt[nvarst] = { nptBins, fnCentBins, 3, 2, 2, 1, fnQvecBins};
+ Double_t xminHistRealSt[nvarst] = { 0., 0., -0.5, -0.5, -0.5, 0.5, 0.};
+ Double_t xmaxHistRealSt[nvarst] = { 10., 100., 2.5, 1.5, 0.5, 1.5, fQvecUpperLim};
THnSparseF* NSparseHistSt = new THnSparseF("NSparseHistSt","NSparseHistSt",nvarst,binsHistRealSt,xminHistRealSt,xmaxHistRealSt);
NSparseHistSt->GetAxis(0)->SetTitle("#it{p}_{T,gen}");
NSparseHistSt->SetBinEdges(0,ptBins);
NSparseHistSt->GetAxis(4)->SetName("y");
NSparseHistSt->GetAxis(5)->SetTitle("etaselected");
NSparseHistSt->GetAxis(5)->SetName("etaselected");
+ NSparseHistSt->GetAxis(6)->SetTitle("Q vec gen");
+ NSparseHistSt->GetAxis(6)->SetName("Q_vec_gen");
fOutput->Add(NSparseHistSt);
//dimensions of THnSparse for the normalization
- const Int_t nvarev=3;
- // cent Q vec Nch
- Int_t binsHistRealEv[nvarev] = { fnCentBins, fnQvecBins, fnNchBins};
- Double_t xminHistRealEv[nvarev] = { 0., 0., 0.};
- Double_t xmaxHistRealEv[nvarev] = { 100., fQvecUpperLim, 2000.};
+ const Int_t nvarev=4;
+ // cent Q vec Nch Qvec gen
+ Int_t binsHistRealEv[nvarev] = { fnCentBins, fnQvecBins, fnNchBins, fnQvecBins};
+ Double_t xminHistRealEv[nvarev] = { 0., 0., 0., 0.};
+ Double_t xmaxHistRealEv[nvarev] = { 100., fQvecUpperLim, 2000., fQvecUpperLim};
THnSparseF* NSparseHistEv = new THnSparseF("NSparseHistEv","NSparseHistEv",nvarev,binsHistRealEv,xminHistRealEv,xmaxHistRealEv);
NSparseHistEv->GetAxis(0)->SetTitle(Form("%s cent",fEventCuts->GetCentralityMethod().Data()));
NSparseHistEv->GetAxis(0)->SetName(Form("%s_cent",fEventCuts->GetCentralityMethod().Data()));
NSparseHistEv->GetAxis(1)->SetName("Q_vec");
NSparseHistEv->GetAxis(2)->SetTitle("N charged");
NSparseHistEv->GetAxis(2)->SetName("N_ch");
+ NSparseHistEv->GetAxis(3)->SetTitle("Q vec gen");
+ NSparseHistEv->GetAxis(3)->SetName("Q_vec_gen");
fOutput->Add(NSparseHistEv);
PostData(1, fOutput );
if(!fEventCuts->IsSelected(fAOD,fTrackCuts))return;//event selection
//Default TPC priors
- if(fHelperPID->GetPIDType()==kBayes)fHelperPID->GetPIDCombined()->SetDefaultTPCPriors();//FIXME maybe this can go in the UserCreateOutputObject?
+ //if(fHelperPID->GetPIDType()==kBayes)fHelperPID->GetPIDCombined()->SetDefaultTPCPriors();//FIXME maybe this can go in the UserCreateOutputObject?
- Double_t Qvec=0.;//in case of MC we save space in the memory
- if(!fIsMC){
+ Double_t Qvec=0.;
+ if(fIsQvecCalibMode){
+ if(fVZEROside==0)Qvec=fEventCuts->GetqV0A();
+ else if (fVZEROside==1)Qvec=fEventCuts->GetqV0C();
+ }
+ else Qvec=fEventCuts->GetQvecPercentile(fVZEROside);
+
+ Double_t QvecMC = 0.;
+ if(fIsMC){
if(fIsQvecCalibMode){
- if(fVZEROside==0)Qvec=fEventCuts->GetqV0A();
- else if (fVZEROside==1)Qvec=fEventCuts->GetqV0C();
+ QvecMC = fEventCuts->CalculateQVectorMC(fVZEROside);
}
- else Qvec=fEventCuts->GetQvecPercentile(fVZEROside);
+ else QvecMC = fEventCuts->GetQvecPercentileMC(fVZEROside);
}
Double_t Cent=fEventCuts->GetCent();
if(partMC->Eta()>=fTrackCuts->GetEtaMin() && partMC->Eta()<=fTrackCuts->GetEtaMax())etaselected=1.;
//pt cent IDgen isph y
- Double_t varSt[6];
+ Double_t varSt[7];
varSt[0]=partMC->Pt();
varSt[1]=Cent;
varSt[2]=(Double_t)fHelperPID->GetParticleSpecies(partMC);
varSt[3]=(Double_t)partMC->IsPhysicalPrimary();
varSt[4]=partMC->Y();
varSt[5]=etaselected;
+ varSt[6]=QvecMC;
((THnSparseF*)fOutput->FindObject("NSparseHistSt"))->Fill(varSt);//stack loop
//Printf("a particle");
Nch++;
} // end loop on tracks
- Double_t varEv[3];
+ Double_t varEv[4];
varEv[0]=Cent;
varEv[1]=Qvec;
varEv[2]=Nch;
+ varEv[3]=QvecMC;
((THnSparseF*)fOutput->FindObject("NSparseHistEv"))->Fill(varEv);//event loop
PostData(1, fOutput );