fAODobj(0x0),
fRecBirthHF(0,0,0),
- fRecDecayHF(0,0,0),
- fRecDecayP_HF(0,0,0),
+ fRecDecayHF(0,0,0),
+ fRecDecayMomHF(0,0,0),
fPointingAngleHF(0),
fNegTrack(0),
fPosTrack(0),
fRnrStyle(0),
fPointingLine(0),
-
+
fnProng(0),
fAODIndex(-1),
fChi2SecondVtx(-1),
-
+
fProngDCA(0x0),
fProngd0(0x0),
fProngMaxProbPdg(0x0),
}
//______________________________________________________________________________
-AliEveHF::AliEveHF(TEveRecTrack* tNeg, TEveRecTrack* tPos, Double_t primVtx[3], AliAODRecoDecay* aodObj, Double_t /*firstPointTrack*/[3], TEveTrackPropagator* rs) :
-
+AliEveHF::AliEveHF(TEveRecTrack* tNeg, TEveRecTrack* tPos, Double_t primVtx[3], AliAODRecoDecay* aodObj, TEveTrackPropagator* rs) :
+
TEvePointSet(),
fAODobj(aodObj),
fRecBirthHF(primVtx[0], primVtx[1], primVtx[2]),
fRecDecayHF(aodObj->GetSecVtxX(), aodObj->GetSecVtxY(), aodObj->GetSecVtxZ()),
- fRecDecayP_HF(aodObj->Px(),aodObj->Py(),aodObj->Pz()),
+ fRecDecayMomHF(aodObj->Px(),aodObj->Py(),aodObj->Pz()),
fPointingAngleHF(aodObj->CosPointingAngle(primVtx)),
fNegTrack(new TEveTrack(tNeg, rs)),
fPosTrack(new TEveTrack(tPos, rs)),
fRnrStyle(rs),
fPointingLine(new TEveLine("Pointing line")),
-
+
fnProng(aodObj->GetNProngs()),
fAODIndex(-1),
fChi2SecondVtx(aodObj->GetReducedChi2()),
-
+
fProngDCA(0),
fProngd0(0),
fProngMaxProbPdg(0),
fInvariantMassAntiPart(0),
fDecay(0)
{
-
+
// Constructor with full HF specification.
// Override from TEveElement.
fPickable = kTRUE;
//_____________________________________________________________________________
void AliEveHF::SetProngDCA() const
-{
+{
for(Int_t ip=0; ip<fnProng; ip++)
fProngDCA[ip] = fAODobj->GetDCA(ip);
}
//______________________________________________________________________________
void AliEveHF::Setd0Prong() const
-{
+{
for(Int_t ip=0; ip<fnProng; ip++)
fProngd0[ip] = fAODobj->Getd0Prong(ip);
}
// Should be moved to TEveTrack property eventually (or AliEveTrack creation)
Double_t pid[5];
Int_t pos = -1;
-
+
for (Int_t ip=0; ip<fnProng; ip++){
- fAODobj->GetPIDProng(ip, pid);
+ fAODobj->GetPIDProng(ip, pid);
- fProngMaxProbPid[ip]=pid[0]; //lascio cosi perchè mi da errore se lo uso come puntatore
+ fProngMaxProbPid[ip]=pid[0];
for (Int_t pp=1; pp<5; pp++)
- if (pid[pp]>pid[pp-1]) {
+ if (pid[pp]>pid[pp-1]) {
fProngMaxProbPid[ip]=pid[pp];
pos = pp;}
switch (pos)
- {
- case 0:
+ {
+ case 0:
fProngMaxProbPdg[ip] = -11;
- case 1:
+ break;
+ case 1:
fProngMaxProbPdg[ip] = -13;
- case 2:
+ break;
+ case 2:
fProngMaxProbPdg[ip] = 211;
- case 3:
+ break;
+ case 3:
fProngMaxProbPdg[ip] = 321;
- case 4:
+ break;
+ case 4:
fProngMaxProbPdg[ip] = 2212;
+ break;
}
}
-
+
}
//________________________________________________________________________________________
void AliEveHF::CalculateInvMass(Int_t decay)
{
+
+ //Method to calculate the invariant mass of the particle and the antiparticle.
UInt_t pdg2[2];
Double_t mPDG,minv;
-
- switch (decay)
- {
+
+ switch (decay)
+ {
case 0: // D0->Kpi
pdg2[0]=211; pdg2[1]=321;
mPDG=TDatabasePDG::Instance()->GetParticle(421)->Mass();
minv = fAODobj->InvMass(fnProng,pdg2);
fInvariantMassPart=minv;
-
+
pdg2[0]=321; pdg2[1]=211;
minv = fAODobj->InvMass(fnProng,pdg2);
fInvariantMassAntiPart=minv;
break;
}
-
+
}
//______________________________________________________________________________
Bool_t AliEveHF::SelectInvMass(Int_t decay, Float_t decayCuts)
{
+
+ //Member fuction to select particles using the invariant mass cuts.
UInt_t pdg2[2];
Double_t mPDG,minv;
-
+
Bool_t retval=kFALSE;
- switch (decay)
- {
+ switch (decay)
+ {
case 0: // D0->Kpi
pdg2[0]=211; pdg2[1]=321;
mPDG=TDatabasePDG::Instance()->GetParticle(421)->Mass();
//______________________________________________________________________________
void AliEveHFList::FilterByPt(Float_t minPt, Float_t maxPt)
{
-
+
+ //Select visibility of elements based on their Pt
fMinPt = minPt;
fMaxPt = maxPt;
- for(List_i i = fChildren.begin(); i != fChildren.end(); ++i)//lista gli HF!!!
+ for(List_i i = fChildren.begin(); i != fChildren.end(); ++i)
{
AliEveHF *hf = (AliEveHF*) *i;
Float_t pt = hf->GetPt();
fMinRCut = minR;
fMaxRCut = maxR;
- for(List_i i = fChildren.begin(); i != fChildren.end(); ++i)//lista gli HF!!!
+ for(List_i i = fChildren.begin(); i != fChildren.end(); ++i)
{
AliEveHF *hf = (AliEveHF*) *i;
Float_t rad = hf->GetRadius();
//______________________________________________________________________________
void AliEveHFList::FilterByCosPointingAngle(Float_t minCosPointingAngle, Float_t maxCosPointingAngle)
{
- // Select visibility of elements based on the V0 pt.
+ // Select visibility of elements based on the HF cosine of the pointing angle
fMinCosPointingAngle = minCosPointingAngle;
fMaxCosPointingAngle = maxCosPointingAngle;
- for(List_i i = fChildren.begin(); i != fChildren.end(); ++i)//lista gli HF!!!
+ for(List_i i = fChildren.begin(); i != fChildren.end(); ++i)
{
AliEveHF *hf = (AliEveHF*) *i;
Float_t cosPointingAngle = hf->GetCosPointingAngle();
Bool_t show = cosPointingAngle >= fMinCosPointingAngle && cosPointingAngle <= fMaxCosPointingAngle;
hf->SetRnrState(show);
-
+
ElementChanged();
gEve->Redraw3D();
}
//______________________________________________________________________________
void AliEveHFList::FilterByd0(Float_t mind0, Float_t maxd0)
{
- // Select visibility of elements based on the V0 pt.
+ // Select visibility of elements based on the HF impact parameter.
fMind0 = mind0;
fMaxd0 = maxd0;
{
AliEveHF *hf = (AliEveHF*) *i;
Int_t nProng=(Int_t)hf->GetAODobj()->GetNProngs();
- for(Int_t ip = 1; ip < nProng; ++ip) {
+ for(Int_t ip = 1; ip < nProng; ++ip) {
Double_t d0 = hf->Getd0Prong(ip);
Bool_t show = d0 >= fMind0 && d0 <= fMaxd0;
hf->SetRnrState(show);
Double_t dca;
AliEveHF *hf();
-
+
for(List_i i = fChildren.begin(); i != fChildren.end(); ++i)
{
AliEveHF* hf = (AliEveHF*) *i;
Int_t nProng=(Int_t)hf->GetAODobj()->GetNProngs();
- for(Int_t ip = 1; ip < nProng; ++ip) {
+ for(Int_t ip = 1; ip < nProng; ++ip) {
dca = hf->GetProngDCA(ip);
Bool_t show = dca >= fMinDaughterDCA && dca <= fMaxDaughterDCA;
hf->SetRnrState(show);
- }
+ }
}
ElementChanged();
gEve->Redraw3D();
}
-
+
/******************************************************************************/
//______________________________________________________________________________
/*void AliEveHFList::FilterByCheckedPidMinProb(Int_t rFlag,Int_t rDaughter, Int_t rPid, Float_t rProb)
if (!rDaughter) {// Negative daughter checked
pid = hf->GetNegMaxProbPdg();
prob = hf->GetNegMaxProbPid();
- show = (pid == fNegCheckedPid && prob > fNegCheckedProb) || !rFlag ;
+ show = (pid == fNegCheckedPid && prob > fNegCheckedProb) || !rFlag ;
}
else if (rDaughter) {// Positive daughter checked
pid = hf->GetPosMaxProbPdg();
prob = hf->GetPosMaxProbPid();
- show = (pid == fPosCheckedPid && prob > fPosCheckedProb) || !rFlag ;
+ show = (pid == fPosCheckedPid && prob > fPosCheckedProb) || !rFlag ;
}
hf->SetRnrState(show);
exit }
ElementChanged();
gEve->Redraw3D();
}
-
-