/**************************************************************************
* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
* *
* Author: The ALICE Off-line Project. *
* Contributors are mentioned in the code where appropriate. *
* *
* Permission to use, copy, modify and distribute this software and its *
* documentation strictly for non-commercial purposes is hereby granted *
* without fee, provided that the above copyright notice appears in all *
* copies and that both the copyright notice and this permission notice *
* appear in the supporting documentation. The authors make no claims *
* about the suitability of this software for any purpose. It is *
* provided "as is" without express or implied warranty. *
**************************************************************************/
//
//
#if !defined(__CINT__) || defined(__MAKECINT__)
#include <stdio.h>
#include "TString.h"
#include "AliMpDDLStore.h"
#include "AliMpDDL.h"
#include "AliMpTriggerCrate.h"
#include "AliMpLocalBoard.h"
#include "AliMpCDB.h"
#endif
// Macro to generate regionnal file for Mtg package (online) from AliRoot trigger mapping
// Ch. Finck (20.08.07)
void MUONGenerateMtgRegFile(Int_t mode = 2, Int_t coinc = 0, UInt_t defaultMask = 0xFFFF,
Int_t version = 20, TString name = "MtgRegionalCrate" )
{
// mode = 0,1; 2; 3 -> writing mode no filter; mask; overwrite
// coinc = 0,1 -> coincidence 3/4, 4/4
UInt_t mask;
TString fileName = name + Form("-%d", version) + ".dat";
// Load DDL store
if ( !AliMpCDB::LoadDDLStore() ) {
printf("Could not access DDL Store from OCDB !\n");
}
FILE* fp = fopen(fileName.Data(), "w");
// instanciate the elec. mapping class
AliMpDDLStore* ddlStore = AliMpDDLStore::Instance();
// loop over the trigger DDL (Right: 20, Left: 21)
for (Int_t iDDL = 20; iDDL <= 21; ++iDDL) {
// get ddl object
AliMpDDL* ddl = ddlStore->GetDDL(iDDL);
Int_t nCrate = ddl->GetNofTriggerCrates();
// loop over the number of crate in DDL
for (Int_t index = 0; index < nCrate; ++index) {
// get crate object
AliMpTriggerCrate* crate = ddlStore->GetTriggerCrate(iDDL, index);
fprintf(fp, "%s\n", crate->GetName());
fprintf(fp, "%02x\n", index + (iDDL-20)*8);
fprintf(fp, "%d\n", mode);
fprintf(fp, "%d\n", coinc);
if (index == 7)
mask = 0x1ff;
else
mask = defaultMask;
fprintf(fp, "%04x\n", mask);
Int_t nLocal = crate->GetNofLocalBoards();
for (Int_t iLocal = 0; iLocal < nLocal; ++iLocal) {
// get local board Id from crate object
Int_t localId = crate->GetLocalBoardId(iLocal);
// get local board object
AliMpLocalBoard* localBoard = ddlStore->GetLocalBoard(localId);
// print out some info from local board
fprintf(fp, "%02d %s %03d %03x\n", localBoard->GetSlot(), localBoard->GetName(),
localId, localBoard->GetSwitch());
// print DE id
fprintf(fp, " ");
for (Int_t i = 0; i < localBoard->GetNofDEs(); ++i)
fprintf(fp, "%4d ", localBoard->GetDEId(i));
fprintf(fp, "\n");
// print copy card numbers
fprintf(fp, " %4d %4d", localBoard->GetInputXfrom(), localBoard->GetInputXto());
fprintf(fp, " %4d %4d", localBoard->GetInputYfrom(), localBoard->GetInputYto());
fprintf(fp, " %4d\n", localBoard->GetTC());
}
}
}
fclose(fp);
}
MUONGenerateMtgRegFile.C:1 MUONGenerateMtgRegFile.C:2 MUONGenerateMtgRegFile.C:3 MUONGenerateMtgRegFile.C:4 MUONGenerateMtgRegFile.C:5 MUONGenerateMtgRegFile.C:6 MUONGenerateMtgRegFile.C:7 MUONGenerateMtgRegFile.C:8 MUONGenerateMtgRegFile.C:9 MUONGenerateMtgRegFile.C:10 MUONGenerateMtgRegFile.C:11 MUONGenerateMtgRegFile.C:12 MUONGenerateMtgRegFile.C:13 MUONGenerateMtgRegFile.C:14 MUONGenerateMtgRegFile.C:15 MUONGenerateMtgRegFile.C:16 MUONGenerateMtgRegFile.C:17 MUONGenerateMtgRegFile.C:18 MUONGenerateMtgRegFile.C:19 MUONGenerateMtgRegFile.C:20 MUONGenerateMtgRegFile.C:21 MUONGenerateMtgRegFile.C:22 MUONGenerateMtgRegFile.C:23 MUONGenerateMtgRegFile.C:24 MUONGenerateMtgRegFile.C:25 MUONGenerateMtgRegFile.C:26 MUONGenerateMtgRegFile.C:27 MUONGenerateMtgRegFile.C:28 MUONGenerateMtgRegFile.C:29 MUONGenerateMtgRegFile.C:30 MUONGenerateMtgRegFile.C:31 MUONGenerateMtgRegFile.C:32 MUONGenerateMtgRegFile.C:33 MUONGenerateMtgRegFile.C:34 MUONGenerateMtgRegFile.C:35 MUONGenerateMtgRegFile.C:36 MUONGenerateMtgRegFile.C:37 MUONGenerateMtgRegFile.C:38 MUONGenerateMtgRegFile.C:39 MUONGenerateMtgRegFile.C:40 MUONGenerateMtgRegFile.C:41 MUONGenerateMtgRegFile.C:42 MUONGenerateMtgRegFile.C:43 MUONGenerateMtgRegFile.C:44 MUONGenerateMtgRegFile.C:45 MUONGenerateMtgRegFile.C:46 MUONGenerateMtgRegFile.C:47 MUONGenerateMtgRegFile.C:48 MUONGenerateMtgRegFile.C:49 MUONGenerateMtgRegFile.C:50 MUONGenerateMtgRegFile.C:51 MUONGenerateMtgRegFile.C:52 MUONGenerateMtgRegFile.C:53 MUONGenerateMtgRegFile.C:54 MUONGenerateMtgRegFile.C:55 MUONGenerateMtgRegFile.C:56 MUONGenerateMtgRegFile.C:57 MUONGenerateMtgRegFile.C:58 MUONGenerateMtgRegFile.C:59 MUONGenerateMtgRegFile.C:60 MUONGenerateMtgRegFile.C:61 MUONGenerateMtgRegFile.C:62 MUONGenerateMtgRegFile.C:63 MUONGenerateMtgRegFile.C:64 MUONGenerateMtgRegFile.C:65 MUONGenerateMtgRegFile.C:66 MUONGenerateMtgRegFile.C:67 MUONGenerateMtgRegFile.C:68 MUONGenerateMtgRegFile.C:69 MUONGenerateMtgRegFile.C:70 MUONGenerateMtgRegFile.C:71 MUONGenerateMtgRegFile.C:72 MUONGenerateMtgRegFile.C:73 MUONGenerateMtgRegFile.C:74 MUONGenerateMtgRegFile.C:75 MUONGenerateMtgRegFile.C:76 MUONGenerateMtgRegFile.C:77 MUONGenerateMtgRegFile.C:78 MUONGenerateMtgRegFile.C:79 MUONGenerateMtgRegFile.C:80 MUONGenerateMtgRegFile.C:81 MUONGenerateMtgRegFile.C:82 MUONGenerateMtgRegFile.C:83 MUONGenerateMtgRegFile.C:84 MUONGenerateMtgRegFile.C:85 MUONGenerateMtgRegFile.C:86 MUONGenerateMtgRegFile.C:87 MUONGenerateMtgRegFile.C:88 MUONGenerateMtgRegFile.C:89 MUONGenerateMtgRegFile.C:90 MUONGenerateMtgRegFile.C:91 MUONGenerateMtgRegFile.C:92 MUONGenerateMtgRegFile.C:93 MUONGenerateMtgRegFile.C:94 MUONGenerateMtgRegFile.C:95 MUONGenerateMtgRegFile.C:96 MUONGenerateMtgRegFile.C:97 MUONGenerateMtgRegFile.C:98 MUONGenerateMtgRegFile.C:99 MUONGenerateMtgRegFile.C:100 MUONGenerateMtgRegFile.C:101 MUONGenerateMtgRegFile.C:102 MUONGenerateMtgRegFile.C:103 MUONGenerateMtgRegFile.C:104 MUONGenerateMtgRegFile.C:105 MUONGenerateMtgRegFile.C:106 MUONGenerateMtgRegFile.C:107