#ifndef ALIHMPIDPIDRESPONSE_H #define ALIHMPIDPIDRESPONSE_H /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * * See cxx source for full Copyright notice */ //*********************************************************** // Class AliHMPIDPIDResponse // // HMPID class to perfom particle identification // // Author: G. Volpe, giacomo.volpe@cern.ch //*********************************************************** #include //base class #include #include #include "AliPID.h" class AliVTrack; class TObjArray; class TGeoHMatrix; class AliHMPIDPIDResponse : public TNamed { public : AliHMPIDPIDResponse(); //ctor AliHMPIDPIDResponse(const AliHMPIDPIDResponse& c); //copy constructor AliHMPIDPIDResponse &operator=(const AliHMPIDPIDResponse& c); //dummy assignment operator virtual ~AliHMPIDPIDResponse(); enum EChamberData{kMinCh=0,kMaxCh=6,kMinPc=0,kMaxPc=5}; //Segmenation enum EPadxData{kPadPcX=80,kMinPx=0,kMaxPx=79,kMaxPcx=159}; //Segmentation structure along x enum EPadyData{kPadPcY=48,kMinPy=0,kMaxPy=47,kMaxPcy=143}; //Segmentation structure along y Double_t GetExpectedSignal (const AliVTrack *vTrk, AliPID::EParticleType specie ) const; Double_t GetExpectedSigma (const AliVTrack *vTrk, AliPID::EParticleType specie ) const; //Find the sigma for a given ThetaCerTh Double_t GetNumberOfSigmas (const AliVTrack *vTrk, AliPID::EParticleType specie ) const; //Find the expected Cherenkov angle for a given track void GetProbability (const AliVTrack *vTrk, Int_t nSpecies,Double_t *prob ) const; //Find the PID probability array Double_t GetSignalDelta (const AliVTrack *vTrk, AliPID::EParticleType specie, Bool_t ratio=kFALSE) const; void Propagate (const TVector3 dir, TVector3 &pos, Double_t z ) const; //propagate photon alogn the line void Refract (TVector3 &dir, Double_t n1, Double_t n2 ) const; //refract photon on the boundary TVector2 TracePhot (Double_t xRa, Double_t yRa, Double_t thRa, Double_t phRa, Double_t ckovThe,Double_t ckovPhi) const; //trace photon created by track to PC void Trs2Lors (Double_t thRa, Double_t phRa, TVector3 dirCkov, Double_t &thetaCer,Double_t &phiCer) const; //TRS to LORS TVector2 TraceForward (Double_t xRa, Double_t yRa, TVector3 dirCkov ) const; //tracing forward a photon from (x,y) to PC void SetTrack (Double_t xRad, Double_t yRad, Double_t theta,Double_t phi ) {fTrkDir.SetMagThetaPhi(1,theta,phi); fTrkPos.Set(xRad,yRad);} //set track parameter at RAD Double_t RadThick ( ) const {return 1.5;} //Radiator thickness Double_t WinThick ( ) const {return 0.5;} //Window thickness Double_t GapThick ( ) const {return 8.0;} //Proximity gap thicknes Double_t GetRefIdx ( ) const {return fRefIdx;} //running refractive index Double_t WinIdx ( ) const {return 1.5787;} //Mean refractive index of WIN material (SiO2) Double_t GapIdx ( ) const {return 1.0005;} //Mean refractive index of GAP material (CH4) static Bool_t IsInside (Float_t x,Float_t y,Float_t d=0 ) {return x>-d&&y>-d&&x