From ddb21a01a2d24b5b6c78ee292a8635a4f0e2ed9c Mon Sep 17 00:00:00 2001 From: dibari Date: Thu, 8 Jul 2010 08:27:52 +0000 Subject: [PATCH] Linear gradient inside radiators. Height in the radiator used to find temperature Ring reconstructed with at least 3 photons (fake rings with nPhot<3 eliminated) --- HMPID/AliHMPIDParam.h | 17 +++++++++-------- HMPID/AliHMPIDRecon.cxx | 4 ++-- HMPID/AliHMPIDTracker.cxx | 6 ++++-- 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/HMPID/AliHMPIDParam.h b/HMPID/AliHMPIDParam.h index 834c9b704c9..cd50bf7c1c6 100644 --- a/HMPID/AliHMPIDParam.h +++ b/HMPID/AliHMPIDParam.h @@ -79,8 +79,9 @@ public: inline void SetGeomAccept(); inline static Int_t InHVSector( Float_t y ); //find HV sector - static Int_t Radiator( Float_t y ) {if (InHVSector(y)<0) return -1; return InHVSector(y)/2;} - static Bool_t IsInside (Float_t x,Float_t y,Float_t d=0) {return x>-d&&y>-d&&x-d&&y>-d&&xSizePcY()) yRad = SizePcY(); //protection against fake y values -// Double_t gradT = (t2-t1)/SizePcY(); // linear gradient -// return gradT*y+t1; - Double_t halfPadSize = 0.5*SizePadY(); - Double_t gradT = (TMath::Log(SizePcY()) - TMath::Log(halfPadSize))/(TMath::Log(tHigh)-TMath::Log(tLow)); - if(y<0) y = 0; - return tLow + TMath::Power(y/halfPadSize,1./gradT); + Double_t gradT = (tHigh-tLow)/SizePcY(); // linear gradient + return gradT*yRad+tLow; } //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ void AliHMPIDParam::SetChStatus(Int_t ch,Bool_t status) diff --git a/HMPID/AliHMPIDRecon.cxx b/HMPID/AliHMPIDRecon.cxx index 85495c40d6f..27069b2a598 100644 --- a/HMPID/AliHMPIDRecon.cxx +++ b/HMPID/AliHMPIDRecon.cxx @@ -127,7 +127,7 @@ void AliHMPIDRecon::CkovAngle(AliESDtrack *pTrk,TClonesArray *pCluLst,Int_t inde pTrk->SetHMPIDmip(mipX,mipY,mipQ,fPhotCnt); //store mip info in any case pTrk->SetHMPIDcluIdx(chId,index+1000*sizeClu); //set index of cluster - if(fPhotCnt<=nMinPhotAcc) { //no reconstruction with <=3 photon candidates + if(fPhotCntSetHMPIDsignal(kNoPhotAccept); //set the appropriate flag return; } @@ -141,7 +141,7 @@ void AliHMPIDRecon::CkovAngle(AliESDtrack *pTrk,TClonesArray *pCluLst,Int_t inde Int_t iNrec=FlagPhot(HoughResponse()); //flag photons according to individual theta ckov with respect to most probable pTrk->SetHMPIDmip(mipX,mipY,mipQ,iNrec); //store mip info - if(iNrec<1){ + if(iNrecSetHMPIDsignal(kNoPhotAccept); //no photon candidates are accepted return; } diff --git a/HMPID/AliHMPIDTracker.cxx b/HMPID/AliHMPIDTracker.cxx index 528ea538ff2..837164c91e3 100644 --- a/HMPID/AliHMPIDTracker.cxx +++ b/HMPID/AliHMPIDTracker.cxx @@ -256,13 +256,13 @@ Int_t AliHMPIDTracker::Recon(AliESDEvent *pEsd,TObjArray *pClus,TObjArray *pNmea FillResiduals(hmpTrk,bestHmpCluster,kFALSE); + Int_t iRad = pParam->Radiator(yRa); //evaluate the radiator involved //evaluate nMean if(tsRight){ if(pNmean->GetEntries()==21) { //for backward compatibility nmean=((TF1*)pNmean->At(3*ipCh))->Eval(ts); //C6F14 Nmean for this chamber } else { - Int_t iRad = pParam->Radiator(yRa); //evaluate the radiator involved if(iRad < 0) { nmean = -1; } else { @@ -376,12 +376,14 @@ Int_t AliHMPIDTracker::ReconHiddenTrk(AliESDEvent *pEsd,TObjArray *pClus,TObjArr Double_t yRa = yMip; //just an approx... Double_t nmean; + + Int_t iRad = pParam->Radiator(yRa); //evaluate the radiator involved + //evaluate nMean if(tsRight){ if(pNmean->GetEntries()==21) { //for backward compatibility nmean=((TF1*)pNmean->At(3*chMip))->Eval(ts); //C6F14 Nmean for this chamber } else { - Int_t iRad = pParam->Radiator(yRa); //evaluate the radiator involved if(iRad < 0) { nmean = -1; } else { -- 2.43.0