-//----------------------------------------------------------------------
-void AliMUONTriggerLut::LoadLut(){
-// !!!!!!! This is dummy version of the LoadLut method !!!!!!!
-// !!!!!!! calibration to be done !!!!!!!
-// 1) Loop on circuit/Xstrip1/deviation/Ystrip
-// 2) get corresponding ptCal from AliMUONTriggerCircuit
-// 3) fill histos with cuts on deviation, ptLow and ptHigh
-// 4) store histos in a file
-
- char fileName[60];
- sprintf(fileName,"$(ALICE_ROOT)/MUON/MUONTriggerLut.root");
- printf(" file name is %s\n",fileName);
-
-// open output file containing histos
- TFile *hfile = new TFile(fileName,"RECREATE","Trigger Look Up Table");
-
- //..........................................circuit/stripX/deviation
- TH3S *fLptPlus=new TH3S("LptPlus","LptPlus",234,0,234,31,0,31,31,0,31);
- TH3S *fLptMinu=new TH3S("LptMinu","LptMinu",234,0,234,31,0,31,31,0,31);
- TH3S *fLptUnde=new TH3S("LptUnde","LptUnde",234,0,234,31,0,31,31,0,31);
-
- TH3S *fHptPlus=new TH3S("HptPlus","HptPlus",234,0,234,31,0,31,31,0,31);
- TH3S *fHptMinu=new TH3S("HptMinu","HptMinu",234,0,234,31,0,31,31,0,31);
- TH3S *fHptUnde=new TH3S("HptUnde","HptUnde",234,0,234,31,0,31,31,0,31);
-
- TH3S *fAptPlus=new TH3S("AptPlus","AptPlus",234,0,234,31,0,31,31,0,31);
- TH3S *fAptMinu=new TH3S("AptMinu","AptMinu",234,0,234,31,0,31,31,0,31);
- TH3S *fAptUnde=new TH3S("AptUnde","AptUnde",234,0,234,31,0,31,31,0,31);
-
- Float_t lptTreshold=0.75;
- Float_t hptTreshold=1.75;
-
- AliMUON *pMUON = (AliMUON*)gAlice->GetModule("MUON");
- AliMUONTriggerCircuit* triggerCircuit;
-
- for (Int_t icirc=0; icirc<234; icirc++) {
- printf(" Loading LuT for circuit %d \n",icirc);
- triggerCircuit = &(pMUON->TriggerCircuit(icirc));
-
- for (Int_t istripX=0; istripX<31; istripX++) {
- for (Int_t idev=0; idev<31; idev++) {
-
- Short_t iLptPlus, iLptMinu, iLptUnde;
- Short_t iHptPlus, iHptMinu, iHptUnde;
- Short_t iAptPlus, iAptMinu, iAptUnde;
- iLptPlus = iLptMinu = iLptUnde = 0;
- iHptPlus = iHptMinu = iHptUnde = 0;
- iAptPlus = iAptMinu = iAptUnde = 0;
-
- for (Int_t istripY=0; istripY<16; istripY++) {
- Float_t pt=triggerCircuit->PtCal(istripX,idev,istripY);
-
- if (pt>lptTreshold) {
- if (idev<15) iLptMinu=iLptMinu+Int_t(TMath::Power(2,istripY));
- else if (idev==15) iLptUnde=iLptUnde+Int_t(TMath::Power(2,istripY));
- else if (idev>15) iLptPlus=iLptPlus+Int_t(TMath::Power(2,istripY));
- }
- if (pt>hptTreshold) {
- if (idev<15) iHptMinu=iHptMinu+Int_t(TMath::Power(2,istripY));
- else if (idev==15) iHptUnde=iHptUnde+Int_t(TMath::Power(2,istripY));
- else if (idev>15) iHptPlus=iHptPlus+Int_t(TMath::Power(2,istripY));
- }
- if (idev<15) iAptMinu=iAptMinu+Int_t(TMath::Power(2,istripY));
- else if (idev==15) iAptUnde=iAptUnde+Int_t(TMath::Power(2,istripY));
- else if (idev>15) iAptPlus=iAptPlus+Int_t(TMath::Power(2,istripY));
-
- } // loop on istripY
-
- Int_t bin;
-
- bin = fLptMinu->GetBin(icirc,istripX,idev);
- fLptMinu->SetBinContent(bin,iLptMinu);
- bin = fLptUnde->GetBin(icirc,istripX,idev);
- fLptUnde->SetBinContent(bin,iLptUnde);
- bin = fLptPlus->GetBin(icirc,istripX,idev);
- fLptPlus->SetBinContent(bin,iLptPlus);
-
- bin = fHptMinu->GetBin(icirc,istripX,idev);
- fHptMinu->SetBinContent(bin,iHptMinu);
- bin = fHptUnde->GetBin(icirc,istripX,idev);
- fHptUnde->SetBinContent(bin,iHptUnde);
- bin = fHptPlus->GetBin(icirc,istripX,idev);
- fHptPlus->SetBinContent(bin,iHptPlus);
-
- bin = fAptMinu->GetBin(icirc,istripX,idev);
- fAptMinu->SetBinContent(bin,iAptMinu);
- bin = fAptUnde->GetBin(icirc,istripX,idev);
- fAptUnde->SetBinContent(bin,iAptUnde);
- bin = fAptPlus->GetBin(icirc,istripX,idev);
- fAptPlus->SetBinContent(bin,iAptPlus);
-
- } // loop on idev
- } // loop on istripX
- } // loop on circuit
-
- hfile->Write();
- hfile->Close();