fIsPPbData(kFALSE),
fUseAdditionalCuts(kFALSE),
fUseCutsForTMVA(kFALSE),
- fUseCascadeTaskForLctoV0bachelor(kFALSE)
+ fUseCascadeTaskForLctoV0bachelor(kFALSE),
+ fCutOnMomConservation(0.00001)
{
//
//Default ctor
fIsPPbData(kFALSE),
fUseAdditionalCuts(kFALSE),
fUseCutsForTMVA(kFALSE),
- fUseCascadeTaskForLctoV0bachelor(kFALSE)
+ fUseCascadeTaskForLctoV0bachelor(kFALSE),
+ fCutOnMomConservation(0.00001)
{
//
// Constructor. Initialization of Inputs and Outputs
fIsPPbData(c.fIsPPbData),
fUseAdditionalCuts(c.fUseAdditionalCuts),
fUseCutsForTMVA(c.fUseCutsForTMVA),
- fUseCascadeTaskForLctoV0bachelor(c.fUseCascadeTaskForLctoV0bachelor)
+ fUseCascadeTaskForLctoV0bachelor(c.fUseCascadeTaskForLctoV0bachelor),
+ fCutOnMomConservation(c.fCutOnMomConservation)
{
//
// Copy Constructor
((AliCFVertexingHFCascade*)cfVtxHF)->SetPDGneutrDaughPositive(211);
((AliCFVertexingHFCascade*)cfVtxHF)->SetPDGneutrDaughNegative(211);
((AliCFVertexingHFCascade*)cfVtxHF)->SetPrimaryVertex(aodVtx);
+ ((AliCFVertexingHFCascade*)cfVtxHF)->SetCutOnMomConservation(fCutOnMomConservation);
if (fUseAdditionalCuts) ((AliCFVertexingHFCascade*)cfVtxHF)->SetUseCutsForTMVA(fUseCutsForTMVA);
}
else {
void SetUseCascadeTaskForLctoV0bachelor(Bool_t useCascadeTaskForLctoV0bachelor) {fUseCascadeTaskForLctoV0bachelor = useCascadeTaskForLctoV0bachelor;}
Bool_t GetUseCascadeTaskForLctoV0bachelor() const {return fUseCascadeTaskForLctoV0bachelor;}
+ void SetCutOnMomConservation(Float_t cut) {fCutOnMomConservation = cut;}
+ Bool_t GetCutOnMomConservation() const {return fCutOnMomConservation;}
+
protected:
AliCFManager *fCFManager; // pointer to the CF manager
TH1I *fHistEventsProcessed; //! simple histo for monitoring the number of events processed
Bool_t fUseCutsForTMVA; // flag to use additional cuts needed for Lc --> K0S + p, TMVA
// these are the pre-selection cuts for the TMVA
Bool_t fUseCascadeTaskForLctoV0bachelor; // flag to define which task to use for Lc --> K0S+p
-
- ClassDef(AliCFTaskVertexingHF,22); // class for HF corrections as a function of many variables
+ Float_t fCutOnMomConservation; // cut on momentum conservation
+
+ ClassDef(AliCFTaskVertexingHF,23); // class for HF corrections as a function of many variables
};
#endif
fPDGneutrDaughPositive(0),
fPDGneutrDaughNegative(0),
fPrimVtx(0x0),
- fUseCutsForTMVA(kFALSE)
+ fUseCutsForTMVA(kFALSE),
+ fCutOnMomConservation(0.00001)
{
// standard constructor
Double_t pzMother = neutralDaugh->Pz();
AliDebug(3, Form("pxMother = %f, pyMother = %f, pzMother = %f", pxMother, pyMother, pzMother));
AliDebug(3, Form("sumPxDau = %f, sumPyDau = %f, sumPzDau = %f", sumPxDau, sumPyDau, sumPzDau));
- if(TMath::Abs(pxMother-sumPxDau)/(TMath::Abs(pxMother)+1.e-13)>0.00001 ||
- TMath::Abs(pyMother-sumPyDau)/(TMath::Abs(pyMother)+1.e-13)>0.00001 ||
- TMath::Abs(pzMother-sumPzDau)/(TMath::Abs(pzMother)+1.e-13)>0.00001){
+ if(TMath::Abs(pxMother-sumPxDau)/(TMath::Abs(pxMother)+1.e-13)>fCutOnMomConservation ||
+ TMath::Abs(pyMother-sumPyDau)/(TMath::Abs(pyMother)+1.e-13)>fCutOnMomConservation ||
+ TMath::Abs(pzMother-sumPzDau)/(TMath::Abs(pzMother)+1.e-13)>fCutOnMomConservation){
AliDebug(2, "Momentum conservation violated, skipping!!");
return isHadronic;
}
fPtAccCut[iP]=0.1;
fEtaAccCut[iP]=0.9;
}
- fPtAccCut[2]=0.06; // soft pion
- fEtaAccCut[2]=0.9; // soft pion
+
+ if (fPDGcascade != 4122){
+ fPtAccCut[2]=0.06; // soft pion
+ fEtaAccCut[2]=0.9; // soft pion
+ }
}
return;
}
void SetUseCutsForTMVA(Bool_t useCutsForTMVA) {fUseCutsForTMVA = useCutsForTMVA;}
Bool_t GetUseCutsForTMVA() const {return fUseCutsForTMVA;}
+ void SetCutOnMomConservation(Float_t cut) {fCutOnMomConservation = cut;}
+ Bool_t GetCutOnMomConservation() const {return fCutOnMomConservation;}
+
protected:
AliAODVertex* fPrimVtx; // primaryVertex
Bool_t fUseCutsForTMVA; // flag to decide whether to use or not the preselection
// cuts of the TMVA when filling the CF
+ Float_t fCutOnMomConservation; // cut on momentum conservation
- ClassDef(AliCFVertexingHFCascade, 3); // CF class for D* and other cascades
+ ClassDef(AliCFVertexingHFCascade,4); // CF class for D* and other cascades
};
task->SetCFManager(man); //here is set the CF manager
task->SetDecayChannel(22);
task->SetUseCascadeTaskForLctoV0bachelor(kTRUE);
- task->SetUseAdditionalCuts(kFALSE);
task->SetUseAdditionalCuts(kTRUE);
task->SetUseCutsForTMVA(kFALSE);
task->SetUseFlatPtWeight(useFlatPtWeight);
task->SetRejectCandidateIfNotFromQuark(kFALSE); // put to false if you want to keep HIJING D0!!
task->SetUseMCVertex(kFALSE); // put to true if you want to do studies on pp
//task->SetPtWeightsFromDataPbPb276overLHC12a17a();
+ task->SetCutOnMomConservation(0.0000005);
if (isKeepDfromB && !isKeepDfromBOnly) task->SetDselection(2);
if (isKeepDfromB && isKeepDfromBOnly) task->SetDselection(1);