ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/

//////////////////////////////////////////////////////////////////////////
//                                                                      //
// AliHMPIDPid                                                          //
//                                                                      //
// HMPID class to perfom particle identification                        //
//                                                                      //
//////////////////////////////////////////////////////////////////////////

#include "AliHMPIDPid.h"       //class header
#include "AliHMPIDParam.h"     //class header
#include "AliHMPIDRecon.h"     //class header
#include <AliESDtrack.h>       //FindPid()
#include <TRandom.h>           //Resolution()

//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
AliHMPIDPid::AliHMPIDPid():TNamed("HMPIDrec","HMPIDPid")
{
//..
//init of data members
//..
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Double_t AliHMPIDPIDResponse::CosTheta(Float_t mom, Int_t species) {
  Double_t mass = AliPID::ParticleMass(species); 
  TMath::Sqrt(mass*mass+pmod*pmod)/(AliHMPIDParam::Instance()->MeanIdxRad()*pmod);                   //  evaluate the theor. Theta Cherenkov
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Double_t AliHMPIDPIDResponse::Resolution(Double_t thetaCerTh, AliESDtrack *pTrk)
{
  AliHMPIDParam *pParam = AliHMPIDParam::Instance();
      
  AliHMPIDRecon rec;
  Float_t xRa,yRa,thRa,phRa;
  pTrk->GetHMPIDtrk(xRa,yRa,thRa,phRa);
  rec.SetTrack(xRa,yRa,thRa,phRa);
  Double_t thetaMax = TMath::ACos(1./pParam->MeanIdxRad());
  Int_t nPhots = (Int_t)(21.*TMath::Sin(thetaCerTh)*TMath::Sin(thetaCerTh)/(TMath::Sin(thetaMax)*TMath::Sin(thetaMax))+0.01);

  Double_t sigmatot = 0;
  Int_t nTrks = 20;
  for(Int_t iTrk=0;iTrk<nTrks;iTrk++) {
    Double_t invSigma = 0;
    Int_t nPhotsAcc = 0;
    for(Int_t j=0;j<nPhots;j++){
      Double_t phi = gRandom->Rndm()*TMath::TwoPi();
      TVector2 pos; pos=rec.TracePhot(thetaCerTh,phi);
      if(!pParam->IsInside(pos.X(),pos.Y())) continue;
      if(pParam->IsInDead(pos.X(),pos.Y())) continue;
      Double_t sigma2 = pParam->Sigma2(thRa,phRa,thetaCerTh,phi);//photon candidate sigma^2
      if(sigma2!=0) {
        invSigma += 1./sigma2;
        nPhotsAcc++;
      }
    }      
    if(invSigma!=0) sigmatot += 1./TMath::Sqrt(invSigma);  
  }
  return sigmatot/nTrks;
}
 AliHMPIDPIDResponse.cxx:1
 AliHMPIDPIDResponse.cxx:2
 AliHMPIDPIDResponse.cxx:3
 AliHMPIDPIDResponse.cxx:4
 AliHMPIDPIDResponse.cxx:5
 AliHMPIDPIDResponse.cxx:6
 AliHMPIDPIDResponse.cxx:7
 AliHMPIDPIDResponse.cxx:8
 AliHMPIDPIDResponse.cxx:9
 AliHMPIDPIDResponse.cxx:10
 AliHMPIDPIDResponse.cxx:11
 AliHMPIDPIDResponse.cxx:12
 AliHMPIDPIDResponse.cxx:13
 AliHMPIDPIDResponse.cxx:14
 AliHMPIDPIDResponse.cxx:15
 AliHMPIDPIDResponse.cxx:16
 AliHMPIDPIDResponse.cxx:17
 AliHMPIDPIDResponse.cxx:18
 AliHMPIDPIDResponse.cxx:19
 AliHMPIDPIDResponse.cxx:20
 AliHMPIDPIDResponse.cxx:21
 AliHMPIDPIDResponse.cxx:22
 AliHMPIDPIDResponse.cxx:23
 AliHMPIDPIDResponse.cxx:24
 AliHMPIDPIDResponse.cxx:25
 AliHMPIDPIDResponse.cxx:26
 AliHMPIDPIDResponse.cxx:27
 AliHMPIDPIDResponse.cxx:28
 AliHMPIDPIDResponse.cxx:29
 AliHMPIDPIDResponse.cxx:30
 AliHMPIDPIDResponse.cxx:31
 AliHMPIDPIDResponse.cxx:32
 AliHMPIDPIDResponse.cxx:33
 AliHMPIDPIDResponse.cxx:34
 AliHMPIDPIDResponse.cxx:35
 AliHMPIDPIDResponse.cxx:36
 AliHMPIDPIDResponse.cxx:37
 AliHMPIDPIDResponse.cxx:38
 AliHMPIDPIDResponse.cxx:39
 AliHMPIDPIDResponse.cxx:40
 AliHMPIDPIDResponse.cxx:41
 AliHMPIDPIDResponse.cxx:42
 AliHMPIDPIDResponse.cxx:43
 AliHMPIDPIDResponse.cxx:44
 AliHMPIDPIDResponse.cxx:45
 AliHMPIDPIDResponse.cxx:46
 AliHMPIDPIDResponse.cxx:47
 AliHMPIDPIDResponse.cxx:48
 AliHMPIDPIDResponse.cxx:49
 AliHMPIDPIDResponse.cxx:50
 AliHMPIDPIDResponse.cxx:51
 AliHMPIDPIDResponse.cxx:52
 AliHMPIDPIDResponse.cxx:53
 AliHMPIDPIDResponse.cxx:54
 AliHMPIDPIDResponse.cxx:55
 AliHMPIDPIDResponse.cxx:56
 AliHMPIDPIDResponse.cxx:57
 AliHMPIDPIDResponse.cxx:58
 AliHMPIDPIDResponse.cxx:59
 AliHMPIDPIDResponse.cxx:60
 AliHMPIDPIDResponse.cxx:61
 AliHMPIDPIDResponse.cxx:62
 AliHMPIDPIDResponse.cxx:63
 AliHMPIDPIDResponse.cxx:64
 AliHMPIDPIDResponse.cxx:65
 AliHMPIDPIDResponse.cxx:66
 AliHMPIDPIDResponse.cxx:67
 AliHMPIDPIDResponse.cxx:68
 AliHMPIDPIDResponse.cxx:69
 AliHMPIDPIDResponse.cxx:70
 AliHMPIDPIDResponse.cxx:71
 AliHMPIDPIDResponse.cxx:72
 AliHMPIDPIDResponse.cxx:73