ROOT logo
/// \ingroup macros
/// \file MUONReCalcGlobalTrigger.C
/// \brief Re-calculate regional/global trigger response from local response.
///
/// Basic usage is :
///
/// MUONReCalcGlobalTrigger("path_to_reconstruction_galice");
///
/// Starting from local responses the macro will re-calculate regional and
/// global response and print-out the global trigger decision.
/// It is used for comissioning data with cosmics where the global trigger
/// was not written in the raw stream.
/// The purpose is (for the future) to compare the re-calculated answer with 
/// the global trigger decision returned by the CTP.
/// 
/// \author Bogdan Vulpescu

#if !defined(__CINT__) || defined(__MAKECINT__)

#include "AliCDBManager.h"
#include "AliMpCDB.h"
#include "AliMUONCalibrationData.h"
#include "AliMUONTriggerCrateStore.h"
#include "AliMUONGlobalTriggerBoard.h"
#include "AliMUONDataInterface.h"
#include "AliMUONLocalTrigger.h"
#include "AliMUONVTriggerStore.h"
#include "AliMUONTriggerCrate.h"
#include "AliMUONTriggerCrateConfig.h"
#include "AliMUONGlobalCrateConfig.h"
#include "AliMUONRegionalTriggerBoard.h"
#include "AliMUONRegionalTriggerConfig.h"
#include "AliMUONLocalTriggerBoard.h"
#include "AliMUONVCalibParam.h"
#include "AliMUONTriggerBoard.h"

#include <TArrayS.h>
#include <TObjArray.h>
#include <TMath.h>

#endif

UShort_t locResp[235]; 

AliMUONCalibrationData *calibData;
AliMUONTriggerCrateStore *fCrates;
AliMUONGlobalTriggerBoard *fGlobalTriggerBoard;
AliMUONRegionalTriggerConfig* regionalConfig;
AliMUONGlobalCrateConfig * globalConfig;

TIterator *cratesIterator;

Int_t debug;

//___________________________________________________________________________
void PrintPattBin(Short_t s) {
  /// binary print-out of the strip patterns

  printf("   ");
  Int_t mask = 0;
  for (Int_t i = 15; i >= 0; i--) {
    mask = (Int_t)TMath::Power(2,i);
    printf("%1d",(s & mask) >> i);
  }
  printf(" \n");

}

//___________________________________________________________________________
void PrintGloBin(UShort_t s) {
  /// binary print-out of global trigger decision

  Int_t mask = 0;
  for (Int_t i = 5; i >= 0; i--) {
    mask = (Int_t)TMath::Power(2,i);
    printf("%1d",(s & mask) >> i);
  }
  printf(" \n");

}

//___________________________________________________________________________
Bool_t ReCalcGlobalTrigger(TIter *nextCrates) {
  /// re-calculate regional/global decision from array of local triggers

  Int_t loLpt, loHpt;
  AliMUONTriggerCrate* cr;

  // regional response
  
  nextCrates->Reset();
  
  Int_t irb(0);
  
  while ( ( cr = static_cast<AliMUONTriggerCrate*>(nextCrates->Next()) ) ) {
    
    if (debug) printf("Crate nr = %2d \n",++irb);
    
    TObjArray *boards = cr->Boards();
    
    AliMUONRegionalTriggerBoard *regb = (AliMUONRegionalTriggerBoard*)boards->At(0);
    regb->Reset();
    
    Int_t nrBoard = 0;
    
    UShort_t regLocResp[16]; for (Int_t j=0; j<16; j++) regLocResp[j] = 0;
    
    for (Int_t j = 1; j < boards->GetEntries(); j++) {
      
      TObject *o = boards->At(j);
      
      AliMUONLocalTriggerBoard *board = (AliMUONLocalTriggerBoard*)o;
      
      if (board->GetNumber() == 0) continue;
      
      if (debug) {
	printf("...Board nr = %2d : ",++nrBoard);
	printf("%3d %s in slot %2d of crate %s \n",board->GetNumber(),board->GetName(),j,cr->GetName());
      }
      
      UShort_t response = locResp[board->GetNumber()];
      
      if (debug) printf("......Response = %x \n",response);
      
      if (response != 0) {
	loLpt =  response &  3;
	loHpt = (response & 12) >> 2;
	//printf("Response loLpt = %02b loHpt = %02b \n",loLpt,loHpt);
      }
      
      regLocResp[j-1] = response;
      
    }  // local board loop
    
    AliMUONTriggerCrateConfig* crateConfig = regionalConfig->FindTriggerCrate(cr->GetName());
    UShort_t rmask= crateConfig->GetMask();
    regb->Mask(rmask);
    regb->SetLocalResponse(regLocResp);
    regb->Response();
    //for (Int_t j=0; j<16; j++) printf("%3d ",regLocResp[j]);
    //printf("Reg %2d Response %3d mask %4x\n",irb,regb->GetResponse(),rmask);
    
    irb++;
    
  }  // crate loop
  
  // global response
  
  fGlobalTriggerBoard->Reset();
  
  if (!globalConfig)
    printf("No valid trigger crate configuration in CDB\n");

  UInt_t gmask = 0;

  for (Int_t i = 0; i < 4; i++) {
    gmask = globalConfig->GetGlobalMask(i);
    fGlobalTriggerBoard->Mask(i,gmask);
  }

  nextCrates->Reset();
  
  UShort_t regional[16];
  irb = 0;
  
  if ( !fCrates->NumberOfCrates() >= 16 ) {
    printf("Something is wrong : too many crates %d",fCrates->NumberOfCrates());
    return kFALSE;
  }
  
  for (Int_t iSide = 0; iSide < 2; iSide++) // right & left side
  {
    for (Int_t iReg = 0; iReg < 8; iReg++) // 8 crates/regional boards for each side.
    {
      cr = fCrates->Crate(iSide, iReg);

      AliMUONTriggerBoard* rb =
        static_cast<AliMUONTriggerBoard*>(cr->Boards()->At(0));
      regional[irb] = rb->GetResponse();
      ++irb;
    }
  }
  
  fGlobalTriggerBoard->SetRegionalResponse(regional);
  fGlobalTriggerBoard->Response();
  
  if (fGlobalTriggerBoard->GetResponse() != 0) {
    fGlobalTriggerBoard->Scan("");
    printf("Global trigger response = ");
    PrintGloBin(fGlobalTriggerBoard->GetResponse());
    return kTRUE;
  }
  
  return kFALSE;
  
}

//___________________________________________________________________________
void MUONReCalcGlobalTrigger(const char* input) {
  /// create array of local triggers from the raw data, run the re-calculation
  /// and print-out the results

  debug = 0;

  Int_t runNumber = 0;

  AliCDBManager* man = AliCDBManager::Instance();
  man->SetDefaultStorage("local://$ALICE_ROOT/OCDB");
  man->SetRun(runNumber);
  AliMpCDB::LoadDDLStore();

  calibData = new AliMUONCalibrationData(runNumber);

  regionalConfig = calibData->RegionalTriggerConfig();
  globalConfig = calibData->GlobalTriggerCrateConfig();

  fCrates = new AliMUONTriggerCrateStore;
  fCrates->ReadFromFile(calibData);
  cratesIterator = fCrates->CreateCrateIterator();
  fGlobalTriggerBoard = new AliMUONGlobalTriggerBoard;
  
  TIter nextCrates(cratesIterator);

  AliMUONDataInterface diRec(input);

  printf("Number of events = %d \n",diRec.NumberOfEvents());
  Int_t nEvents = diRec.NumberOfEvents();

  AliMUONLocalTrigger* localTrig;
  Int_t circ, loLpt, loHpt, lutLpt[2], lutHpt[2];
  TArrayS xPattern[235];
  TArrayS yPattern[235];

  for (Int_t ievent = 0; ievent < nEvents; ++ievent) {

    for (Int_t i = 0; i < 234; i++) {
      locResp[i] = 0;
    }

    AliMUONVTriggerStore* triggerStore = diRec.TriggerStore(ievent,"R");
    TIter nextLocal(triggerStore->CreateLocalIterator());
    while ( (localTrig = static_cast<AliMUONLocalTrigger*>( nextLocal() )) ) {

      if (localTrig->IsNull()) continue;

      circ = localTrig->LoCircuit();
      
      loLpt = localTrig->LoLpt();
      loHpt = localTrig->LoHpt();
      
      lutLpt[0] =  loLpt & 1;
      lutLpt[1] = (loLpt & 2) >> 1;
      lutHpt[0] =  loHpt & 1;
      lutHpt[1] = (loHpt & 2) >> 1;
      
      locResp[circ] = lutLpt[0]              +
	static_cast<int>(lutLpt[1]<<1) +
	static_cast<int>(lutHpt[0]<<2) +
	static_cast<int>(lutHpt[1]<<3);
      
      localTrig->GetXPattern(xPattern[circ]);
      localTrig->GetYPattern(yPattern[circ]);

      if (debug) {
	printf("Event %4d circ %3d loLpt %1d loHpt %1d resp %3d\n",ievent,circ,loLpt,loHpt,locResp[circ]);
      }
      
    } // local trigger loop

    if (ReCalcGlobalTrigger(&nextCrates)) {
      printf("............ for event %5d \n",ievent);
      for (Int_t ic = 1; ic <= 234; ic++) {
	if (locResp[ic] != 0) {
	  UShort_t response = locResp[ic];
	  loLpt =  response &  3;
	  loHpt = (response & 12) >> 2;
	  printf("............ in circuit %3d loLpt %1d loHpt %1d resp %3d\n",ic,loLpt,loHpt,response);
	  
	  printf("   Pattern X:\n");
	  PrintPattBin(xPattern[ic].At(0));
	  PrintPattBin(xPattern[ic].At(1));
	  PrintPattBin(xPattern[ic].At(2));
	  PrintPattBin(xPattern[ic].At(3));
	  printf("   Pattern Y:\n");
	  PrintPattBin(yPattern[ic].At(0));
	  PrintPattBin(yPattern[ic].At(1));
	  PrintPattBin(yPattern[ic].At(2));
	  PrintPattBin(yPattern[ic].At(3));
	  
	}
      }
      printf("\n\n");
    }
    
  } // event loop

  delete fGlobalTriggerBoard;
  delete fCrates;
  delete calibData;

}

 MUONReCalcGlobalTrigger.C:1
 MUONReCalcGlobalTrigger.C:2
 MUONReCalcGlobalTrigger.C:3
 MUONReCalcGlobalTrigger.C:4
 MUONReCalcGlobalTrigger.C:5
 MUONReCalcGlobalTrigger.C:6
 MUONReCalcGlobalTrigger.C:7
 MUONReCalcGlobalTrigger.C:8
 MUONReCalcGlobalTrigger.C:9
 MUONReCalcGlobalTrigger.C:10
 MUONReCalcGlobalTrigger.C:11
 MUONReCalcGlobalTrigger.C:12
 MUONReCalcGlobalTrigger.C:13
 MUONReCalcGlobalTrigger.C:14
 MUONReCalcGlobalTrigger.C:15
 MUONReCalcGlobalTrigger.C:16
 MUONReCalcGlobalTrigger.C:17
 MUONReCalcGlobalTrigger.C:18
 MUONReCalcGlobalTrigger.C:19
 MUONReCalcGlobalTrigger.C:20
 MUONReCalcGlobalTrigger.C:21
 MUONReCalcGlobalTrigger.C:22
 MUONReCalcGlobalTrigger.C:23
 MUONReCalcGlobalTrigger.C:24
 MUONReCalcGlobalTrigger.C:25
 MUONReCalcGlobalTrigger.C:26
 MUONReCalcGlobalTrigger.C:27
 MUONReCalcGlobalTrigger.C:28
 MUONReCalcGlobalTrigger.C:29
 MUONReCalcGlobalTrigger.C:30
 MUONReCalcGlobalTrigger.C:31
 MUONReCalcGlobalTrigger.C:32
 MUONReCalcGlobalTrigger.C:33
 MUONReCalcGlobalTrigger.C:34
 MUONReCalcGlobalTrigger.C:35
 MUONReCalcGlobalTrigger.C:36
 MUONReCalcGlobalTrigger.C:37
 MUONReCalcGlobalTrigger.C:38
 MUONReCalcGlobalTrigger.C:39
 MUONReCalcGlobalTrigger.C:40
 MUONReCalcGlobalTrigger.C:41
 MUONReCalcGlobalTrigger.C:42
 MUONReCalcGlobalTrigger.C:43
 MUONReCalcGlobalTrigger.C:44
 MUONReCalcGlobalTrigger.C:45
 MUONReCalcGlobalTrigger.C:46
 MUONReCalcGlobalTrigger.C:47
 MUONReCalcGlobalTrigger.C:48
 MUONReCalcGlobalTrigger.C:49
 MUONReCalcGlobalTrigger.C:50
 MUONReCalcGlobalTrigger.C:51
 MUONReCalcGlobalTrigger.C:52
 MUONReCalcGlobalTrigger.C:53
 MUONReCalcGlobalTrigger.C:54
 MUONReCalcGlobalTrigger.C:55
 MUONReCalcGlobalTrigger.C:56
 MUONReCalcGlobalTrigger.C:57
 MUONReCalcGlobalTrigger.C:58
 MUONReCalcGlobalTrigger.C:59
 MUONReCalcGlobalTrigger.C:60
 MUONReCalcGlobalTrigger.C:61
 MUONReCalcGlobalTrigger.C:62
 MUONReCalcGlobalTrigger.C:63
 MUONReCalcGlobalTrigger.C:64
 MUONReCalcGlobalTrigger.C:65
 MUONReCalcGlobalTrigger.C:66
 MUONReCalcGlobalTrigger.C:67
 MUONReCalcGlobalTrigger.C:68
 MUONReCalcGlobalTrigger.C:69
 MUONReCalcGlobalTrigger.C:70
 MUONReCalcGlobalTrigger.C:71
 MUONReCalcGlobalTrigger.C:72
 MUONReCalcGlobalTrigger.C:73
 MUONReCalcGlobalTrigger.C:74
 MUONReCalcGlobalTrigger.C:75
 MUONReCalcGlobalTrigger.C:76
 MUONReCalcGlobalTrigger.C:77
 MUONReCalcGlobalTrigger.C:78
 MUONReCalcGlobalTrigger.C:79
 MUONReCalcGlobalTrigger.C:80
 MUONReCalcGlobalTrigger.C:81
 MUONReCalcGlobalTrigger.C:82
 MUONReCalcGlobalTrigger.C:83
 MUONReCalcGlobalTrigger.C:84
 MUONReCalcGlobalTrigger.C:85
 MUONReCalcGlobalTrigger.C:86
 MUONReCalcGlobalTrigger.C:87
 MUONReCalcGlobalTrigger.C:88
 MUONReCalcGlobalTrigger.C:89
 MUONReCalcGlobalTrigger.C:90
 MUONReCalcGlobalTrigger.C:91
 MUONReCalcGlobalTrigger.C:92
 MUONReCalcGlobalTrigger.C:93
 MUONReCalcGlobalTrigger.C:94
 MUONReCalcGlobalTrigger.C:95
 MUONReCalcGlobalTrigger.C:96
 MUONReCalcGlobalTrigger.C:97
 MUONReCalcGlobalTrigger.C:98
 MUONReCalcGlobalTrigger.C:99
 MUONReCalcGlobalTrigger.C:100
 MUONReCalcGlobalTrigger.C:101
 MUONReCalcGlobalTrigger.C:102
 MUONReCalcGlobalTrigger.C:103
 MUONReCalcGlobalTrigger.C:104
 MUONReCalcGlobalTrigger.C:105
 MUONReCalcGlobalTrigger.C:106
 MUONReCalcGlobalTrigger.C:107
 MUONReCalcGlobalTrigger.C:108
 MUONReCalcGlobalTrigger.C:109
 MUONReCalcGlobalTrigger.C:110
 MUONReCalcGlobalTrigger.C:111
 MUONReCalcGlobalTrigger.C:112
 MUONReCalcGlobalTrigger.C:113
 MUONReCalcGlobalTrigger.C:114
 MUONReCalcGlobalTrigger.C:115
 MUONReCalcGlobalTrigger.C:116
 MUONReCalcGlobalTrigger.C:117
 MUONReCalcGlobalTrigger.C:118
 MUONReCalcGlobalTrigger.C:119
 MUONReCalcGlobalTrigger.C:120
 MUONReCalcGlobalTrigger.C:121
 MUONReCalcGlobalTrigger.C:122
 MUONReCalcGlobalTrigger.C:123
 MUONReCalcGlobalTrigger.C:124
 MUONReCalcGlobalTrigger.C:125
 MUONReCalcGlobalTrigger.C:126
 MUONReCalcGlobalTrigger.C:127
 MUONReCalcGlobalTrigger.C:128
 MUONReCalcGlobalTrigger.C:129
 MUONReCalcGlobalTrigger.C:130
 MUONReCalcGlobalTrigger.C:131
 MUONReCalcGlobalTrigger.C:132
 MUONReCalcGlobalTrigger.C:133
 MUONReCalcGlobalTrigger.C:134
 MUONReCalcGlobalTrigger.C:135
 MUONReCalcGlobalTrigger.C:136
 MUONReCalcGlobalTrigger.C:137
 MUONReCalcGlobalTrigger.C:138
 MUONReCalcGlobalTrigger.C:139
 MUONReCalcGlobalTrigger.C:140
 MUONReCalcGlobalTrigger.C:141
 MUONReCalcGlobalTrigger.C:142
 MUONReCalcGlobalTrigger.C:143
 MUONReCalcGlobalTrigger.C:144
 MUONReCalcGlobalTrigger.C:145
 MUONReCalcGlobalTrigger.C:146
 MUONReCalcGlobalTrigger.C:147
 MUONReCalcGlobalTrigger.C:148
 MUONReCalcGlobalTrigger.C:149
 MUONReCalcGlobalTrigger.C:150
 MUONReCalcGlobalTrigger.C:151
 MUONReCalcGlobalTrigger.C:152
 MUONReCalcGlobalTrigger.C:153
 MUONReCalcGlobalTrigger.C:154
 MUONReCalcGlobalTrigger.C:155
 MUONReCalcGlobalTrigger.C:156
 MUONReCalcGlobalTrigger.C:157
 MUONReCalcGlobalTrigger.C:158
 MUONReCalcGlobalTrigger.C:159
 MUONReCalcGlobalTrigger.C:160
 MUONReCalcGlobalTrigger.C:161
 MUONReCalcGlobalTrigger.C:162
 MUONReCalcGlobalTrigger.C:163
 MUONReCalcGlobalTrigger.C:164
 MUONReCalcGlobalTrigger.C:165
 MUONReCalcGlobalTrigger.C:166
 MUONReCalcGlobalTrigger.C:167
 MUONReCalcGlobalTrigger.C:168
 MUONReCalcGlobalTrigger.C:169
 MUONReCalcGlobalTrigger.C:170
 MUONReCalcGlobalTrigger.C:171
 MUONReCalcGlobalTrigger.C:172
 MUONReCalcGlobalTrigger.C:173
 MUONReCalcGlobalTrigger.C:174
 MUONReCalcGlobalTrigger.C:175
 MUONReCalcGlobalTrigger.C:176
 MUONReCalcGlobalTrigger.C:177
 MUONReCalcGlobalTrigger.C:178
 MUONReCalcGlobalTrigger.C:179
 MUONReCalcGlobalTrigger.C:180
 MUONReCalcGlobalTrigger.C:181
 MUONReCalcGlobalTrigger.C:182
 MUONReCalcGlobalTrigger.C:183
 MUONReCalcGlobalTrigger.C:184
 MUONReCalcGlobalTrigger.C:185
 MUONReCalcGlobalTrigger.C:186
 MUONReCalcGlobalTrigger.C:187
 MUONReCalcGlobalTrigger.C:188
 MUONReCalcGlobalTrigger.C:189
 MUONReCalcGlobalTrigger.C:190
 MUONReCalcGlobalTrigger.C:191
 MUONReCalcGlobalTrigger.C:192
 MUONReCalcGlobalTrigger.C:193
 MUONReCalcGlobalTrigger.C:194
 MUONReCalcGlobalTrigger.C:195
 MUONReCalcGlobalTrigger.C:196
 MUONReCalcGlobalTrigger.C:197
 MUONReCalcGlobalTrigger.C:198
 MUONReCalcGlobalTrigger.C:199
 MUONReCalcGlobalTrigger.C:200
 MUONReCalcGlobalTrigger.C:201
 MUONReCalcGlobalTrigger.C:202
 MUONReCalcGlobalTrigger.C:203
 MUONReCalcGlobalTrigger.C:204
 MUONReCalcGlobalTrigger.C:205
 MUONReCalcGlobalTrigger.C:206
 MUONReCalcGlobalTrigger.C:207
 MUONReCalcGlobalTrigger.C:208
 MUONReCalcGlobalTrigger.C:209
 MUONReCalcGlobalTrigger.C:210
 MUONReCalcGlobalTrigger.C:211
 MUONReCalcGlobalTrigger.C:212
 MUONReCalcGlobalTrigger.C:213
 MUONReCalcGlobalTrigger.C:214
 MUONReCalcGlobalTrigger.C:215
 MUONReCalcGlobalTrigger.C:216
 MUONReCalcGlobalTrigger.C:217
 MUONReCalcGlobalTrigger.C:218
 MUONReCalcGlobalTrigger.C:219
 MUONReCalcGlobalTrigger.C:220
 MUONReCalcGlobalTrigger.C:221
 MUONReCalcGlobalTrigger.C:222
 MUONReCalcGlobalTrigger.C:223
 MUONReCalcGlobalTrigger.C:224
 MUONReCalcGlobalTrigger.C:225
 MUONReCalcGlobalTrigger.C:226
 MUONReCalcGlobalTrigger.C:227
 MUONReCalcGlobalTrigger.C:228
 MUONReCalcGlobalTrigger.C:229
 MUONReCalcGlobalTrigger.C:230
 MUONReCalcGlobalTrigger.C:231
 MUONReCalcGlobalTrigger.C:232
 MUONReCalcGlobalTrigger.C:233
 MUONReCalcGlobalTrigger.C:234
 MUONReCalcGlobalTrigger.C:235
 MUONReCalcGlobalTrigger.C:236
 MUONReCalcGlobalTrigger.C:237
 MUONReCalcGlobalTrigger.C:238
 MUONReCalcGlobalTrigger.C:239
 MUONReCalcGlobalTrigger.C:240
 MUONReCalcGlobalTrigger.C:241
 MUONReCalcGlobalTrigger.C:242
 MUONReCalcGlobalTrigger.C:243
 MUONReCalcGlobalTrigger.C:244
 MUONReCalcGlobalTrigger.C:245
 MUONReCalcGlobalTrigger.C:246
 MUONReCalcGlobalTrigger.C:247
 MUONReCalcGlobalTrigger.C:248
 MUONReCalcGlobalTrigger.C:249
 MUONReCalcGlobalTrigger.C:250
 MUONReCalcGlobalTrigger.C:251
 MUONReCalcGlobalTrigger.C:252
 MUONReCalcGlobalTrigger.C:253
 MUONReCalcGlobalTrigger.C:254
 MUONReCalcGlobalTrigger.C:255
 MUONReCalcGlobalTrigger.C:256
 MUONReCalcGlobalTrigger.C:257
 MUONReCalcGlobalTrigger.C:258
 MUONReCalcGlobalTrigger.C:259
 MUONReCalcGlobalTrigger.C:260
 MUONReCalcGlobalTrigger.C:261
 MUONReCalcGlobalTrigger.C:262
 MUONReCalcGlobalTrigger.C:263
 MUONReCalcGlobalTrigger.C:264
 MUONReCalcGlobalTrigger.C:265
 MUONReCalcGlobalTrigger.C:266
 MUONReCalcGlobalTrigger.C:267
 MUONReCalcGlobalTrigger.C:268
 MUONReCalcGlobalTrigger.C:269
 MUONReCalcGlobalTrigger.C:270
 MUONReCalcGlobalTrigger.C:271
 MUONReCalcGlobalTrigger.C:272
 MUONReCalcGlobalTrigger.C:273
 MUONReCalcGlobalTrigger.C:274
 MUONReCalcGlobalTrigger.C:275
 MUONReCalcGlobalTrigger.C:276
 MUONReCalcGlobalTrigger.C:277
 MUONReCalcGlobalTrigger.C:278
 MUONReCalcGlobalTrigger.C:279
 MUONReCalcGlobalTrigger.C:280
 MUONReCalcGlobalTrigger.C:281
 MUONReCalcGlobalTrigger.C:282
 MUONReCalcGlobalTrigger.C:283
 MUONReCalcGlobalTrigger.C:284
 MUONReCalcGlobalTrigger.C:285
 MUONReCalcGlobalTrigger.C:286
 MUONReCalcGlobalTrigger.C:287
 MUONReCalcGlobalTrigger.C:288
 MUONReCalcGlobalTrigger.C:289
 MUONReCalcGlobalTrigger.C:290
 MUONReCalcGlobalTrigger.C:291
 MUONReCalcGlobalTrigger.C:292
 MUONReCalcGlobalTrigger.C:293
 MUONReCalcGlobalTrigger.C:294
 MUONReCalcGlobalTrigger.C:295
 MUONReCalcGlobalTrigger.C:296
 MUONReCalcGlobalTrigger.C:297
 MUONReCalcGlobalTrigger.C:298
 MUONReCalcGlobalTrigger.C:299
 MUONReCalcGlobalTrigger.C:300
 MUONReCalcGlobalTrigger.C:301
 MUONReCalcGlobalTrigger.C:302
 MUONReCalcGlobalTrigger.C:303