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);
}
}
Int_t label0 = fmcPartCandidate->GetDaughter(0);
Int_t label1 = fmcPartCandidate->GetDaughter(1);
AliDebug(3,Form("label0 = %d, label1 = %d",label0,label1));
- if (label1==0 || label0 == 0){
+ if (label1<=0 || label0 <= 0){
AliDebug(2, Form("The MC particle doesn't have correct daughters, skipping!!"));
return checkDaughters;
}
AliAODMCParticle *mcPartDaughter;
Int_t label0 = fmcPartCandidate->GetDaughter(0);
Int_t label1 = fmcPartCandidate->GetDaughter(1);
- if (label1==0 || label0 == 0){
+ if (label1<=0 || label0 <= 0){
AliDebug(2, Form("The MC particle doesn't have correct daughters, skipping!!"));
return bMCAccStep;
}
Int_t label0 = fmcPartCandidate->GetDaughter(0);
Int_t label1 = fmcPartCandidate->GetDaughter(1);
- if (label1==0 || label0 == 0){
+ if (label1<=0 || label0 <= 0){
AliDebug(2, Form("The MC particle doesn't have correct daughters, skipping!!"));
return bRefitStep;
}
}
//___________________________________________________________
-Bool_t AliCFVertexingHF::FillUnfoldingMatrix(Double_t fill[4]) const
+Bool_t AliCFVertexingHF::FillUnfoldingMatrix(UInt_t pdg, Double_t fill[4]) const
{
//
// filling the unfolding matrix
if(fmcPartCandidate){
fill[0] = GetPtCand();
- fill[1] = GetYCand();
+ fill[1] = GetYCand(pdg);
fill[2] = fmcPartCandidate->Pt();
fill[3] = fmcPartCandidate->Y();
Int_t label0 = fmcPartCandidate->GetDaughter(0);
Int_t label1 = fmcPartCandidate->GetDaughter(1);
AliDebug(2,Form("label0 = %d, label1 = %d",label0,label1));
- if (label1==0 || label0 == 0){
+ if (label1<=0 || label0 <= 0){
AliDebug(2, Form("The MC particle doesn't have correct daughters, skipping!!"));
delete [] fLabelArray;
fLabelArray = 0x0;
virtual Double_t GetPtProng(Int_t iProng) const;
Double_t GetPtCand() const {return fRecoCandidate->Pt();}
- Double_t GetYCand() const {return fRecoCandidate->Y();}
+ Double_t GetYCand(UInt_t pdg) const {return fRecoCandidate->Y(pdg);}
Bool_t RecoAcceptStep(AliESDtrackCuts **trackCuts) const;
- Bool_t FillUnfoldingMatrix(Double_t fill[4]) const;
+ Bool_t FillUnfoldingMatrix(UInt_t pdg, Double_t fill[4]) const;
void SetNProngs(Int_t nProngs){fProngs = nProngs;}
Int_t GetNProngs() const {return fProngs;}
void SetDselection(UShort_t originDselection);
UShort_t GetDselection() {return fOriginDselection;};
Int_t CheckReflexion(Char_t isSign);
- Bool_t SetLabelArray();
+ virtual Bool_t SetLabelArray();
void SetCentralityValue(Float_t centValue) {fCentValue = centValue;}