fResonantDecay(0),
fLctoV0bachelorOption(1),
fGenLctoV0bachelorOption(0),
- fUseSelectionBit(kTRUE)
+ fUseSelectionBit(kTRUE),
+ fPDGcode(0)
{
//
//Default ctor
fResonantDecay(0),
fLctoV0bachelorOption(1),
fGenLctoV0bachelorOption(0),
- fUseSelectionBit(kTRUE)
+ fUseSelectionBit(kTRUE),
+ fPDGcode(0)
{
//
// Constructor. Initialization of Inputs and Outputs
fResonantDecay(c.fResonantDecay),
fLctoV0bachelorOption(c.fLctoV0bachelorOption),
fGenLctoV0bachelorOption(c.fGenLctoV0bachelorOption),
- fUseSelectionBit(c.fUseSelectionBit)
+ fUseSelectionBit(c.fUseSelectionBit),
+ fPDGcode(c.fPDGcode)
{
//
// Copy Constructor
switch (fDecayChannel){
case 2:{
+ fPDGcode = 421;
copyfCuts = new AliRDHFCutsD0toKpi(*(static_cast<AliRDHFCutsD0toKpi*>(fCuts)));
switch (fConfiguration) {
case kSnail: // slow configuration: all variables in
break;
}
case 21:{
+ fPDGcode = 413;
copyfCuts = new AliRDHFCutsDStartoKpipi(*(static_cast<AliRDHFCutsDStartoKpipi*>(fCuts)));
switch (fConfiguration) {
case kSnail: // slow configuration: all variables in
break;
}
case 22:{
+ fPDGcode = 4122;
copyfCuts = new AliRDHFCutsLctoV0(*(static_cast<AliRDHFCutsLctoV0*>(fCuts)));
switch (fConfiguration) {
case kSnail: // slow configuration: all variables in
break;
}
case 31:{
+ fPDGcode = 411;
copyfCuts = new AliRDHFCutsDplustoKpipi(*(static_cast<AliRDHFCutsDplustoKpipi*>(fCuts)));
switch (fConfiguration) {
case kSnail: // slow configuration: all variables in
break;
}
case 32:{
+ fPDGcode = 4122;
copyfCuts = new AliRDHFCutsLctopKpi(*(static_cast<AliRDHFCutsLctopKpi*>(fCuts)));
switch (fConfiguration) {
case kSnail: // slow configuration: all variables in
break;
}
case 33:{
+ fPDGcode = 431;
copyfCuts = new AliRDHFCutsDstoKKpi(*(static_cast<AliRDHFCutsDstoKKpi*>(fCuts)));
switch (fConfiguration) {
case kSnail: // slow configuration: all variables in
break;
}
case 4:{
+ fPDGcode = 421;
copyfCuts = new AliRDHFCutsD0toKpipipi(*(static_cast<AliRDHFCutsD0toKpipipi*>(fCuts)));
switch (fConfiguration) {
case kSnail: // slow configuration: all variables in
AliError("Failed casting particle from MC array!, Skipping particle");
continue;
}
+
+ //counting c quarks
+ cquarks += cfVtxHF->MCcquarkCounting(mcPart);
+
// check the MC-level cuts, must be the desidered particle
if (!fCFManager->CheckParticleCuts(0, mcPart)) {
AliDebug(2,"Check the MC-level cuts - not desidered particle");
}
cfVtxHF->SetMCCandidateParam(iPart);
- //counting c quarks
- cquarks += cfVtxHF->MCcquarkCounting(mcPart);
if (!(cfVtxHF->SetLabelArray())){
AliDebug(2,Form("Impossible to set the label array (decaychannel = %d)",fDecayChannel));
if(fAcceptanceUnf){
Double_t fill[4]; //fill response matrix
- Bool_t bUnfolding = cfVtxHF -> FillUnfoldingMatrix(fill);
+ Bool_t bUnfolding = cfVtxHF -> FillUnfoldingMatrix(fPDGcode,fill);
if (bUnfolding) fCorrelation->Fill(fill);
}
Bool_t keepDs=ProcessDs(recoPidSelection);
if(keepDs) recoPidSelection=3;
} else if (fDecayChannel==22){ // Lc->V0+bachelor case, where more possibilities are considered
- Bool_t keepLctoV0bachelor=ProcessLctoV0Bachelor(recoAnalysisCuts);
- if (keepLctoV0bachelor) recoAnalysisCuts=3;
+ Bool_t keepLctoV0bachelor=ProcessLctoV0Bachelor(recoPidSelection);
+ if (keepLctoV0bachelor) recoPidSelection=3;
}
Bool_t tempPid=(recoPidSelection == 3 || recoPidSelection == isPartOrAntipart);
AliDebug(3,"Reco PID cuts passed and container filled \n");
if(!fAcceptanceUnf){
Double_t fill[4]; //fill response matrix
- Bool_t bUnfolding = cfVtxHF -> FillUnfoldingMatrix(fill);
+ Bool_t bUnfolding = cfVtxHF -> FillUnfoldingMatrix(fPDGcode,fill);
if (bUnfolding) fCorrelation->Fill(fill);
}
}
}
+//_________________________________________________________________________
+void AliCFTaskVertexingHF::SetPtWeightsFromFONLL276overLHC12a17a(){
+ // ad-hoc weight function from ratio of
+ // pt spectra from FONLL 2.76 TeV and
+ // pt spectra from MC production LHC12a17a (PYTHIA Perugia0 with pthard bins)
+ if(fFuncWeight) delete fFuncWeight;
+ fFuncWeight=new TF1("funcWeight","[0]+[1]*TMath::Exp(-[2]*x)",0.,50.);
+ fFuncWeight->SetParameter(0,4.63891e-02);
+ fFuncWeight->SetParameter(1,1.51674e+01);
+ fFuncWeight->SetParameter(2,4.09941e-01);
+}
+//_________________________________________________________________________
+void AliCFTaskVertexingHF::SetPtWeightsFromDataPbPb276overLHC12a17a(){
+ // ad-hoc weight function from ratio of
+ // D0 pt spectra in PbPb 2011 0-10% centrality and
+ // pt spectra from MC production LHC12a17a (PYTHIA Perugia0 with pthard bins)
+ if(fFuncWeight) delete fFuncWeight;
+ fFuncWeight=new TF1("funcWeight","[0]+[1]/TMath::Power(x,[2])",0.05,50.);
+ fFuncWeight->SetParameter(0,1.43116e-02);
+ fFuncWeight->SetParameter(1,4.37758e+02);
+ fFuncWeight->SetParameter(2,3.08583);
+}
//_________________________________________________________________________
Double_t AliCFTaskVertexingHF::GetWeight(Float_t pt)
{