]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - EVE/EveBase/AliEveHF.cxx
Added two QA histograms of centrality to be filled for CVHN (central) and CVLN (semic...
[u/mrichter/AliRoot.git] / EVE / EveBase / AliEveHF.cxx
index cd3db9a2b364aae410c0e86ad017c31686166992..5209b7a474f5c14a0e009fa82598e06448c8a9e5 100644 (file)
@@ -39,19 +39,19 @@ AliEveHF::AliEveHF():
 
   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),
@@ -69,25 +69,25 @@ AliEveHF::AliEveHF():
 }
 
 //______________________________________________________________________________
-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),
@@ -96,7 +96,7 @@ AliEveHF::AliEveHF(TEveRecTrack* tNeg, TEveRecTrack* tPos, Double_t primVtx[3],
   fInvariantMassAntiPart(0),
   fDecay(0)
 {
-  
+
   // Constructor with full HF specification.
   // Override from TEveElement.
   fPickable = kTRUE;
@@ -134,14 +134,14 @@ AliEveHF::~AliEveHF()
 
 //_____________________________________________________________________________
 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);
 }
@@ -154,63 +154,72 @@ void AliEveHF::SetMaxProbPdgPid()
   // 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();
@@ -369,12 +378,13 @@ void AliEveHFList::MakeHFs()
 //______________________________________________________________________________
 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();
@@ -392,7 +402,7 @@ void AliEveHFList::FilterByRadius(Float_t minR, Float_t maxR)
   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();
@@ -409,19 +419,19 @@ void AliEveHFList::FilterByRadius(Float_t minR, Float_t maxR)
 //______________________________________________________________________________
 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();
     }
@@ -429,7 +439,7 @@ void AliEveHFList::FilterByCosPointingAngle(Float_t minCosPointingAngle, Float_t
 //______________________________________________________________________________
 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;
@@ -438,7 +448,7 @@ void AliEveHFList::FilterByd0(Float_t mind0, Float_t 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);
@@ -459,22 +469,22 @@ void AliEveHFList::FilterByDCA(Float_t minDaughterDCA, Float_t maxDaughterDCA)
 
   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)
@@ -499,12 +509,12 @@ void AliEveHFList::FilterByDCA(Float_t minDaughterDCA, Float_t maxDaughterDCA)
     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  }
@@ -531,5 +541,3 @@ void AliEveHFList::FilterByInvariantMass(Int_t decay, Float_t deltaInvariantMass
   ElementChanged();
   gEve->Redraw3D();
 }
-
-