X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=MUON%2FAliMUONTriggerGUI.cxx;h=f53eafeb02b6c239bbdd433ecd8c4519e65a72df;hb=05da1b4e2007170ee10c3a94cfef582320a3d258;hp=31750aab337fde35bb23f6a65fa3b601c15dcd53;hpb=8b067dfec5d61db40c3a07deccbd9c25e9456a8a;p=u%2Fmrichter%2FAliRoot.git diff --git a/MUON/AliMUONTriggerGUI.cxx b/MUON/AliMUONTriggerGUI.cxx index 31750aab337..f53eafeb02b 100644 --- a/MUON/AliMUONTriggerGUI.cxx +++ b/MUON/AliMUONTriggerGUI.cxx @@ -32,7 +32,7 @@ #include "AliMpSegmentation.h" #include "AliMpVSegmentation.h" #include "AliMpTriggerSegmentation.h" -#include "AliMpIntPair.h" +#include "AliMpEncodePair.h" #include "AliMpCDB.h" #include "AliMpDEManager.h" #include "AliMpDEIterator.h" @@ -71,6 +71,8 @@ #include #include +#include + /// \cond CLASSIMP ClassImp(AliMUONTriggerGUI) /// \endcond @@ -144,7 +146,7 @@ AliMUONTriggerGUI::AliMUONTriggerGUI(Int_t runNumber) fRawTriggerStore->Create(); fCDBManager = AliCDBManager::Instance(); - fCDBManager->SetDefaultStorage("local://$ALICE_ROOT"); + fCDBManager->SetDefaultStorage("local://$ALICE_ROOT/OCDB"); fCDBManager->SetRun(runNumber); AliMpCDB::LoadDDLStore(); fCalibrationData = new AliMUONCalibrationData(runNumber); @@ -535,14 +537,20 @@ void AliMUONTriggerGUI::HandleMenu(Int_t id) if (fDiMap == 0) { fDiMap = new AliMUONTriggerGUIdimap(fBoards,gClient->GetRoot(), fMain, 400, 200); fDiMap->SetLoader(fLoader); - fDiMap->SetMCDataInterface(fMCDataInterface); - fDiMap->SetRawDigitStore(fRawDigitStore); + if (fRUNRAW) { + fDiMap->SetRawDigitStore(fRawDigitStore); + } else { + fDiMap->SetMCDataInterface(fMCDataInterface); + } fDiMap->DrawAllMaps(); } else if (!fDiMap->IsOn()) { fDiMap = new AliMUONTriggerGUIdimap(fBoards,gClient->GetRoot(), fMain, 400, 200); fDiMap->SetLoader(fLoader); - fDiMap->SetMCDataInterface(fMCDataInterface); - fDiMap->SetRawDigitStore(fRawDigitStore); + if (fRUNRAW) { + fDiMap->SetRawDigitStore(fRawDigitStore); + } else { + fDiMap->SetMCDataInterface(fMCDataInterface); + } fDiMap->DrawAllMaps(); } @@ -954,7 +962,7 @@ void AliMUONTriggerGUI::DoRunGalApply() fRunLoader->LoadgAlice(); gAlice = fRunLoader->GetAliRun(); - fEventsPerRun = gAlice->GetEventsPerRun(); + fEventsPerRun = AliRunLoader::Instance()->GetNumberOfEvents(); fLoader = fRunLoader->GetLoader("MUONLoader"); fRunLoader->GetEvent(fEvent); @@ -1366,22 +1374,22 @@ void AliMUONTriggerGUI::OpenBoard(Int_t id) bf = new AliMUONTriggerGUIbdmap(gClient->GetRoot(), fMain, 400, 200); if (status & kGood) { - sprintf(text,"%s (Circuit %4d) status : working", + snprintf(text,200,"%s (Circuit %4d) status : working", board->GetBoardName(),board->GetIdCircuit()); } if (status & kWithProblems) { - sprintf(text,"%s (Circuit %4d) status : has problems...", + snprintf(text,200,"%s (Circuit %4d) status : has problems...", board->GetBoardName(),board->GetIdCircuit()); } if (status & kNotWorking) { - sprintf(text,"%s (Circuit %4d) status : not working", + snprintf(text,200,"%s (Circuit %4d) status : not working", board->GetBoardName(),board->GetIdCircuit()); } if (status & kUnknown) { - sprintf(text,"%s (Circuit %4d) status : unknown", + snprintf(text,200,"%s (Circuit %4d) status : unknown", board->GetBoardName(),board->GetIdCircuit()); } @@ -1389,9 +1397,12 @@ void AliMUONTriggerGUI::OpenBoard(Int_t id) bf->SetBoard(Boards(),id); bf->SetLoader(fLoader); bf->SetCrateManager(fCrateManager); - bf->SetMCDataInterface(fMCDataInterface); - bf->SetRawDigitStore(fRawDigitStore); - bf->SetRawTriggerStore(fRawTriggerStore); + if (fRUNRAW) { + bf->SetRawDigitStore(fRawDigitStore); + bf->SetRawTriggerStore(fRawTriggerStore); + } else { + bf->SetMCDataInterface(fMCDataInterface); + } bf->Init(); bf->Show(); @@ -1443,6 +1454,7 @@ void AliMUONTriggerGUI::InitBoards() // circuit number to board number in array Int_t cIdtobId[235]; + for (Int_t i = 0; i < 235; i++) cIdtobId[i] = -1; AliMpDEIterator it; Int_t boardId = -1; @@ -1461,14 +1473,11 @@ void AliMUONTriggerGUI::InitBoards() // x-strips manuIdPrev = 0; - const AliMpTriggerSegmentation *trigseg0 = static_cast(seg0); for (Int_t ix = 0; ix <= seg0->MaxPadIndexX(); ix++) { for (Int_t iy = 0; iy <= seg0->MaxPadIndexY(); iy++) { - AliMpIntPair indices(ix,iy); - AliMpPad pad = trigseg0->PadByIndices(indices,kFALSE); + AliMpPad pad = seg0->PadByIndices(ix,iy,kFALSE); if (pad.IsValid()) { - AliMpIntPair loc = pad.GetLocation(0); - Int_t manuId = loc.GetFirst(); + Int_t manuId = pad.GetLocalBoardId(0); if (manuId != manuIdPrev) { AliMpLocalBoard *mpboard = AliMpDDLStore::Instance()->GetLocalBoard(manuId); manuIdPrev = manuId; @@ -1493,16 +1502,13 @@ void AliMUONTriggerGUI::InitBoards() // y-strips manuIdPrev = 0; - const AliMpTriggerSegmentation *trigseg1 = static_cast(seg1); for (Int_t ix = 0; ix <= seg1->MaxPadIndexX(); ix++) { for (Int_t iy = 0; iy <= seg1->MaxPadIndexY(); iy++) { - AliMpIntPair indices(ix,iy); - AliMpPad pad = trigseg1->PadByIndices(indices,kFALSE); + AliMpPad pad = seg1->PadByIndices(ix,iy,kFALSE); if (pad.IsValid()) { Int_t nloc = pad.GetNofLocations(); for (Int_t iloc = 0; iloc < nloc; iloc++) { - AliMpIntPair loc = pad.GetLocation(iloc); - Int_t manuId = loc.GetFirst(); + Int_t manuId = pad.GetLocalBoardId(iloc); if (manuId != manuIdPrev) { manuIdPrev = manuId; boardIdTmp = cIdtobId[manuId]; @@ -1583,7 +1589,7 @@ void AliMUONTriggerGUI::InitBoards() reg = new TGRegion(5,xp,yp); fImageMap->AddRegion(*reg, ib); - sprintf(text,"%s (crate %s circuit %3d, number %3d)",board->GetBoardName(),board->GetCrateName(),board->GetIdCircuit(),board->GetNumber()); + snprintf(text,256,"%s (crate %s circuit %3d, number %3d)",board->GetBoardName(),board->GetCrateName(),board->GetIdCircuit(),board->GetNumber()); fImageMap->SetToolTipText(ib, text); // Set coordinates of strips boxes @@ -1639,15 +1645,15 @@ void AliMUONTriggerGUI::SetStripBoxes(AliMUONTriggerGUIboard *board) for (Int_t ix = 0; ix <= maxX; ix++) { for (Int_t iy = 0; iy <= maxY; iy++) { - pad = seg->PadByIndices(AliMpIntPair(ix,iy),kFALSE); + pad = seg->PadByIndices(ix,iy,kFALSE); if (!pad.IsValid()) continue; // get the pad position and dimensions - xlocal1 = pad.Position().X(); - ylocal1 = pad.Position().Y(); - xlocal2 = pad.Dimensions().X(); - ylocal2 = pad.Dimensions().Y(); + xlocal1 = pad.GetPositionX(); + ylocal1 = pad.GetPositionY(); + xlocal2 = pad.GetDimensionX(); + ylocal2 = pad.GetDimensionY(); transformer.Local2Global(detElemId, xlocal1, ylocal1, 0, xg1, yg1, zg1); // (no transformation for pad dimensions) @@ -1695,15 +1701,15 @@ void AliMUONTriggerGUI::SetStripBoxes(AliMUONTriggerGUIboard *board) for (Int_t ix = 0; ix <= maxX; ix++) { for (Int_t iy = 0; iy <= maxY; iy++) { - pad = seg->PadByIndices(AliMpIntPair(ix,iy),kFALSE); + pad = seg->PadByIndices(ix,iy,kFALSE); if (!pad.IsValid()) continue; // get the pad position and dimensions - xlocal1 = pad.Position().X(); - ylocal1 = pad.Position().Y(); - xlocal2 = pad.Dimensions().X(); - ylocal2 = pad.Dimensions().Y(); + xlocal1 = pad.GetPositionX(); + ylocal1 = pad.GetPositionY(); + xlocal2 = pad.GetDimensionX(); + ylocal2 = pad.GetDimensionY(); transformer.Local2Global(detElemId, xlocal1, ylocal1, 0, xg1, yg1, zg1); // (no transformation for pad dimensions) @@ -1781,9 +1787,9 @@ void AliMUONTriggerGUI::CreateDigitStore() maxY = seg->MaxPadIndexY(); if (ix > maxX) printf("Index x > maximum!\n"); if (iy > maxY) printf("Index y > maximum!\n"); - pad = seg->PadByIndices(AliMpIntPair(ix,iy),kTRUE); - manuId = pad.GetLocation(0).GetFirst(); - manuChannel = pad.GetLocation(0).GetSecond(); + pad = seg->PadByIndices(ix,iy,kTRUE); + manuId = pad.GetLocalBoardId(0); + manuChannel = pad.GetLocalBoardChannel(0); dig = fDigitStore->Add(detElemId,manuId,manuChannel,cathode,AliMUONVDigitStore::kAllow); dig->SetCharge(charge); @@ -1806,9 +1812,9 @@ void AliMUONTriggerGUI::CreateDigitStore() maxY = seg->MaxPadIndexY(); if (ix > maxX) printf("Index x > maximum!\n"); if (iy > maxY) printf("Index y > maximum!\n"); - pad = seg->PadByIndices(AliMpIntPair(ix,iy),kTRUE); - manuId = pad.GetLocation(0).GetFirst(); - manuChannel = pad.GetLocation(0).GetSecond(); + pad = seg->PadByIndices(ix,iy,kTRUE); + manuId = pad.GetLocalBoardId(0); + manuChannel = pad.GetLocalBoardChannel(0); dig = fDigitStore->Add(detElemId,manuId,manuChannel,cathode,AliMUONVDigitStore::kAllow); dig->SetCharge(charge); @@ -1837,8 +1843,8 @@ void AliMUONTriggerGUI::PrintDigitStore() const chamber = 11+i; - AliMpIntPair deRange = AliMpDEManager::GetDetElemIdRange(chamber-1); - TIter next(fDigitStore->CreateIterator(deRange.GetFirst(),deRange.GetSecond())); + MpPair_t deRange = AliMpDEManager::GetDetElemIdRange(chamber-1); + TIter next(fDigitStore->CreateIterator(AliMp::PairFirst(deRange),AliMp::PairSecond(deRange))); AliMUONVDigit *mdig; while ( ( mdig = static_cast(next())) ) @@ -1851,9 +1857,8 @@ void AliMUONTriggerGUI::PrintDigitStore() const charge = (Int_t)mdig->Charge(); seg = AliMpSegmentation::Instance()->GetMpSegmentation(detElemId, AliMp::GetCathodType(cathode)); - pad = seg->PadByIndices(AliMpIntPair(ix,iy),kTRUE); - AliMpIntPair ind = pad.GetIndices(); - + pad = seg->PadByIndices(ix,iy,kTRUE); + printf("Digit: detElemId %4d cath %1d ix %2d iy %3d charge %1d \n",detElemId,cathode,ix,iy,charge); } @@ -1947,8 +1952,8 @@ void AliMUONTriggerGUI::WriteTriggerRawData() char command[256]; char dateFileName[256]; - sprintf(dateFileName,"TriggerGUI.date"); - sprintf(command, "dateStream -c -s -D -o %s -# %d -C -run %d", + snprintf(dateFileName,256,"TriggerGUI.date"); + snprintf(command, 256,"dateStream -c -s -D -o %s -# %d -C -run %d", dateFileName, 1, 0); FILE* pipe = gSystem->OpenPipe(command, "w"); @@ -1966,7 +1971,7 @@ void AliMUONTriggerGUI::WriteTriggerRawData() ldc += AliDAQ::NumberOfLdcs(iDet) / AliDAQ::NumberOfDdls(iDet); char rawFileName[256]; - sprintf(rawFileName, "%s",AliDAQ::DdlFileName(iDet,iDDL)); + snprintf(rawFileName, 256,"%s",AliDAQ::DdlFileName(iDet,iDDL)); // check existence and size of raw data file FILE* file = fopen(rawFileName, "rb"); if (!file) continue; @@ -1988,7 +1993,7 @@ void AliMUONTriggerGUI::WriteTriggerRawData() // AliSimulation::ConvertDateToRoot char rootFileName[256]; - sprintf(rootFileName,"TriggerGUI.root"); + snprintf(rootFileName,256,"TriggerGUI.root"); // ALIMDC setup const Int_t kDBSize = 2000000000;