X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=HMPID%2FAliHMPIDSelector.C;h=626f898b4473e1f38c6349d20f71b7f8db52fa87;hb=94ced39a581c8be48c724202a96b2f2897e0f836;hp=bb978bac0eed17142428c61fb1effc03d54bf39f;hpb=bd73b83f33fe8ef8e714407fc712febf8f211fea;p=u%2Fmrichter%2FAliRoot.git diff --git a/HMPID/AliHMPIDSelector.C b/HMPID/AliHMPIDSelector.C index bb978bac0ee..626f898b447 100644 --- a/HMPID/AliHMPIDSelector.C +++ b/HMPID/AliHMPIDSelector.C @@ -5,9 +5,10 @@ #include #include //docosmic() #include //base class -#include +#include #include //HmpidPayload() #include "AliHMPIDDigit.h" +#include "AliHMPIDParam.h" #include "AliHMPIDCluster.h" #include "AliHMPIDReconstructor.h" //docosmic() @@ -32,7 +33,7 @@ class AliHMPIDSelector : public AliSelector { private: TTree *fChain ; //!pointer to the analyzed TTree or TChain - AliESD *fEsd ; //! + AliESDEvent *fEsd ; //! TH2F *fCkovP,*fMipXY; //! TH1F *fDifX; //! @@ -57,7 +58,7 @@ void AliHMPIDSelector::SlaveBegin(TTree *tree) fCkovP = new TH2F("CkovP" , "#theta_{c}, [rad];P, [GeV]", 150, 0, 7 ,500, 0, 1); fSigP = new TH2F("SigP" ,"#sigma_{#theta_c}" , 150, 0, 7 ,100, 0, 1e20); fMipXY = new TH2F("MipXY" ,"mip position" , 260, 0,130 ,252,0,126); - fDifX = new TH1F("DifX" ,"diff" , 200, -5, 5); + fDifX = new TH1F("DifX" ,"diff" , 100, -2.5, 2.5); fProb[0] = new TH1F("PidE" ,"PID: e yellow #mu magenta" ,100,0,1); fProb[0]->SetLineColor(kYellow); fProb[1] = new TH1F("PidMu","pid of #mu" ,100,0,1); fProb[1]->SetLineColor(kMagenta); @@ -74,26 +75,36 @@ void AliHMPIDSelector::Init(TTree *pTr) if ( !pTr ) return ; fChain = pTr ; fChain->SetBranchAddress("ESD", &fEsd) ; - fChain->SetBranchStatus("*", 0); + fChain->SetBranchStatus("*", 1); fChain->SetBranchStatus("fTracks.*", 1); } //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Bool_t AliHMPIDSelector::Process(Long64_t entry) { + AliHMPIDParam *pParam=AliHMPIDParam::Instance(); fChain->GetTree()->GetEntry(entry); - + for(Int_t iTrk=0;iTrkGetNumberOfTracks();iTrk++){ - AliESDtrack *pTrk=fEsd->GetTrack(iTrk); + AliESDtrack *pTrk=fEsd->GetTrack(iTrk); // if(pTrk->GetHMPIDsignal()==-1) continue; - fCkovP->Fill(pTrk->GetP(),pTrk->GetHMPIDsignal()) ; - fSigP ->Fill(pTrk->GetP(),TMath::Sqrt(pTrk->GetHMPIDchi2())); + fCkovP->Fill(pTrk->GetP(),pTrk->GetHMPIDsignal()) ; + fSigP ->Fill(pTrk->GetP(),TMath::Sqrt(pTrk->GetHMPIDchi2())); - Float_t xm,ym; Int_t q,np; pTrk->GetHMPIDmip(xm,ym,q,np); fMipXY->Fill(xm,ym); //mip info - Float_t xd,yd,th,ph; pTrk->GetHMPIDtrk(xd,yd,th,ph); fDifX->Fill(xd-xm); //track info + Float_t xClu,yClu; Int_t q,np; + Float_t xPc,yPc; + pTrk->GetHMPIDmip(xClu,yClu,q,np); + fMipXY->Fill(xClu,yClu); //mip info + Float_t xRad,yRad,th,ph; + pTrk->GetHMPIDtrk(xRad,yRad,th,ph); + Int_t iCh=pTrk->GetHMPIDcluIdx();iCh/=1000000; + Double_t p1[3],n1[3]; pParam->Norm(iCh,n1); pParam->Lors2Mars(iCh,0,0,p1,AliHMPIDParam::kPc); //point & norm for PC + if(pTrk->Intersect(p1,n1,fEsd->GetMagneticField())==kFALSE) continue; //try to intersect track with PC + pParam->Mars2Lors (iCh,p1,xPc,yPc); //TRKxPC position + fDifX->Fill(xPc-xClu); //track info - Double_t pid[5]; pTrk->GetHMPIDpid(pid); for(Int_t i =0;i<5;i++) fProb[i]->Fill(pid[i]); + Double_t pid[5]; pTrk->GetHMPIDpid(pid); for(Int_t i =0;i<5;i++) fProb[i]->Fill(pid[i]); }//tracks loop return kTRUE; @@ -211,7 +222,7 @@ void HmpidPayload(ifstream *pFile,Int_t iDdl,TObjArray *pDigAll) pFile->read((char*)&w32,4); if(w32&0x08000000) continue; //it's DILOGIC CW AliHMPIDDigit *pDig=new AliHMPIDDigit; - pDig->Raw(iDdl,w32); + pDig->Raw(w32,iDdl); new ((*pDig1)[iDigCnt++]) AliHMPIDDigit(*pDig); }//words loop }//rows loop