* about the suitability of this software for any purpose. It is *
* provided "as is" without express or implied warranty. *
**************************************************************************/
-
-/* $Id$ */
-
//
// Class for impact parameter (DCA) of charged particles
// Study resolution and pull: prepare for beauty study
}
//________________________________________________________________________
-void AliHFEdca::InitAnalysis(){
+void AliHFEdca::InitAnalysis()const{
//Printf("initialize analysis\n");
//_______________________________________________________________________________________________
-void AliHFEdca::FillHistogramsDca(AliESDEvent * const esdEvent, AliESDtrack * const track, AliMCEvent * const mcEvent)
+void AliHFEdca::FillHistogramsDca(const AliESDEvent * const esdEvent, const AliESDtrack * const track, AliMCEvent * const mcEvent)
{
// the kDca plugin
// MC vertex
Double_t dz[2]; // error of dca in cm
Double_t covardz[3];
- if(!track->PropagateToDCA(primVtx,magneticField, beampiperadius, dz, covardz)) return; // protection
+ AliESDtrack ctrack(*track);
+ if(!ctrack.PropagateToDCA(primVtx,magneticField, beampiperadius, dz, covardz)) return; // protection
AliMCParticle *mctrack = dynamic_cast<AliMCParticle *>(mcEvent->GetTrack(TMath::Abs(track->GetLabel())));
if(!mctrack) return;
}
//_______________________________________________________________________________________________
-void AliHFEdca::FillHistogramsKfDca(AliESDEvent * const esdEvent, AliESDtrack * const track, const AliMCEvent * const mcEvent)
+void AliHFEdca::FillHistogramsKfDca(const AliESDEvent * const esdEvent, const AliESDtrack * const track, const AliMCEvent * const mcEvent)
{
// the kKfDca plugin
Double_t beampiperadius=3.;
Double_t dz[2]; // error of dca in cm
Double_t covardz[3];
- if(!track->PropagateToDCA(primVtx,magneticField, beampiperadius, dz, covardz)) return; // protection
+ AliESDtrack ctrack(*track);
+ if(!ctrack.PropagateToDCA(primVtx,magneticField, beampiperadius, dz, covardz)) return; // protection
AliMCParticle *mctrack = dynamic_cast<AliMCParticle *>(mcEvent->GetTrack(TMath::Abs(track->GetLabel())));
if(!mctrack) return;
//_______________________________________________________________________________________________
-void AliHFEdca::FillHistogramsVtx(AliESDEvent *const esdEvent, AliMCEvent *const mcEvent)
+void AliHFEdca::FillHistogramsVtx(const AliESDEvent *const esdEvent, const AliMCEvent *const mcEvent)
{
// MC vertex
}
//_______________________________________________________________________________________________
-void AliHFEdca::FillHistogramsPid(AliESDtrack * const track, const AliMCEvent * const mcEvent)
+void AliHFEdca::FillHistogramsPid(const AliESDtrack * const track, const AliMCEvent * const mcEvent)
{
////_______________________________________________________________________________________________
-void AliHFEdca::FillHistogramsDataDca(AliESDEvent * const esdEvent, AliESDtrack * const track, AliESDVertex * const vtxESDSkip)
+void AliHFEdca::FillHistogramsDataDca(const AliESDEvent * const esdEvent, const AliESDtrack * const track, const AliESDVertex * const vtxESDSkip)
{
// filling historgams track by track
// obtaining reconstructed dca --------------------------------------------------------------
Double_t dz[2]; // error of dca in cm
Double_t covardz[3];
- if(!track->PropagateToDCA(primVtx,magneticField, beampiperadius, dz, covardz)) return; // protection
+ AliESDtrack ctrack(*track);
+ if(!ctrack.PropagateToDCA(primVtx,magneticField, beampiperadius, dz, covardz)) return; // protection
Double_t pull[2] = {0, 0};
Double_t dzwo[2], covardzwo[3];
Double_t pullwo[2] = {0, 0};
- if(!track->PropagateToDCA(vtxESDSkip, magneticField, beampiperadius, dzwo, covardzwo)) return; // protection
+ if(!ctrack.PropagateToDCA(vtxESDSkip, magneticField, beampiperadius, dzwo, covardzwo)) return; // protection
Double_t errorwo[2] ={TMath::Sqrt(TMath::Abs(covardzwo[0])), TMath::Sqrt(TMath::Abs(covardzwo[2]))};
for(Int_t i=0; i<2; i++){
}
//_______________________________________________________________________________________________
-void AliHFEdca::FillHistogramsDataVtx(AliESDEvent * const esdEvent)
+void AliHFEdca::FillHistogramsDataVtx(const AliESDEvent * const esdEvent)
{
////_______________________________________________________________________________________________
-void AliHFEdca::FillHistogramsDataPid(AliESDtrack * const track)
+void AliHFEdca::FillHistogramsDataPid(const AliESDtrack * const track)
{
// filling historgams track by track
// obtaining reconstructed dca --------------------------------------------------------------
}
//_________________________________________________________________________________________________
-void AliHFEdca::ApplyExtraCuts(AliESDEvent * const esdEvent, Int_t nMinPrimVtxContributor)
+void AliHFEdca::ApplyExtraCuts(const AliESDEvent * const esdEvent, Int_t nMinPrimVtxContributor)
{
//
}
//_____________________________________________________
-Int_t AliHFEdca::GetCombinedPid(AliESDtrack *const track)
+Int_t AliHFEdca::GetCombinedPid(const AliESDtrack *const track)
{
// combined detector pid
//_______________________________________________________________________________________________
-void AliHFEdca::FillHistogramsHfeDca(AliESDEvent * const esdEvent, AliESDtrack * const track, AliMCEvent * const mcEvent)
+void AliHFEdca::FillHistogramsHfeDca(const AliESDEvent * const esdEvent, const AliESDtrack * const track, const AliMCEvent * const mcEvent)
{
// the kHFEpid plugin
Double_t beampiperadius=3.;
Double_t dz[2]; // error of dca in cm
Double_t covardz[3];
- if(!track->PropagateToDCA(primVtx,magneticField, beampiperadius, dz, covardz)) return; // protection
+ AliESDtrack ctrack(*track);
+ if(!ctrack.PropagateToDCA(primVtx,magneticField, beampiperadius, dz, covardz)) return; // protection
AliMCParticle *mctrack = dynamic_cast<AliMCParticle *>(mcEvent->GetTrack(TMath::Abs(track->GetLabel())));
if(!mctrack) return;
//_______________________________________________________________________________________________
-void AliHFEdca::FillHistogramsHfeDataDca(AliESDEvent * const esdEvent, AliESDtrack * const track, AliESDVertex * const vtxESDSkip)
+void AliHFEdca::FillHistogramsHfeDataDca(const AliESDEvent * const esdEvent, const AliESDtrack * const track, const AliESDVertex * const vtxESDSkip)
{
// filling historgams track by track
// obtaining reconstructed dca --------------------------------------------------------------
Double_t dz[2]; // error of dca in cm
Double_t covardz[3];
- if(!track->PropagateToDCA(vtxESDSkip,magneticField, beampiperadius, dz, covardz)) return; // protection
+ AliESDtrack ctrack(*track); // Propagate on copy track
+ if(!ctrack.PropagateToDCA(vtxESDSkip,magneticField, beampiperadius, dz, covardz)) return; // protection
Double_t pull[2] = {0, 0};
Double_t error[2] ={TMath::Sqrt(covardz[0]), TMath::Sqrt(covardz[2])};