ROOT logo
/**************************************************************************
 * 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.                  *
 **************************************************************************/

// $Id$

/// \ingroup macros
/// \file MUONRawStreamTrigger.C
/// \brief Macro for reading trigger raw data
///
/// \author Ch. Finck, Subatech, April 2006
///
/// Added example routines to show how to use the interface of the high
/// performance decoder AliMUONRawStreamTriggerrHP.
///    --  Artur Szostak <artursz@iafrica.com>
///
/// Implement "digits" iterator.
/// This macro is interface with AliRawReader for RAW.
/// The different stucture of the patload are readout and stored in TClonesArray
/// with AliMUONRawStreamTrigger class.
/// The macro just simply reads again the TClonesArray contents.
/// The parameter of each structure could be seen in the container classes
/// AliMUONDarcHeader, AliMUONRegHeader, AliMUONLocalStruct.
/// The class AliMUONDDLTrigger manages the structure containers.
/// The number of structures in the rawdata file could be set.
/// The DATE format reading is no more supported please use the MUONTRGda code.


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

// RAW includes
#include "AliRawReader.h"
#include "AliRawReaderFile.h"
#include "AliRawReaderRoot.h"

// MUON includes
#include "AliMUONRawStreamTrigger.h"
#include "AliMUONRawStreamTriggerHP.h"
#include "AliMUONDarcHeader.h"
#include "AliMUONRegHeader.h"
#include "AliMUONLocalStruct.h"
#include "AliMUONDDLTrigger.h"
#include "AliMpTriggerCrate.h"
#include "AliMpDDLStore.h"
#include "AliMpCDB.h"

#include "TStopwatch.h"


#endif

void MUONRawStreamTrigger(Int_t maxEvent = 1, Int_t minDDL = 0, Int_t maxDDL = 1, TString fileName = "./")
{
   
   TStopwatch timer;
   timer.Start(kTRUE);

   AliRawReader* rawReader = AliRawReader::Create(fileName.Data());

   // Load mapping
     if ( ! AliMpCDB::LoadDDLStore() ) {
       printf("Could not access mapping from OCDB !\n");
     }

   // raw stream
   AliMUONRawStreamTrigger* rawStream   = new AliMUONRawStreamTrigger(rawReader);

   // set the number ofreg & local that are PRESENT in the rawdata file
   // it's NOT the number to be read.
   // default wise set to 8, 16 respectively.
   //    rawStream->SetMaxReg(2);
   //    rawStream->SetMaxLoc(xx);

   // containers
   AliMUONDDLTrigger*       ddlTrigger  = 0x0;
   AliMUONDarcHeader*       darcHeader  = 0x0;
   AliMUONRegHeader*        regHeader   = 0x0;
   AliMUONLocalStruct*      localStruct = 0x0;


   // Loop over events  
   Int_t iEvent = 0;

   while (rawReader->NextEvent()) {

     if (iEvent == maxEvent)
       break;

     printf("Event %d\n",iEvent++);

     // read DDL while < 2 DDL
     while(rawStream->NextDDL()) {

      if (rawStream->GetDDL() < minDDL || rawStream->GetDDL() > maxDDL)
	 continue;

       printf("\niDDL %d\n", rawStream->GetDDL());

       ddlTrigger = rawStream->GetDDLTrigger();
       darcHeader = ddlTrigger->GetDarcHeader();

       printf("Global output %x\n", (Int_t)darcHeader->GetGlobalOutput());

       // loop over regional structures
       Int_t nReg = darcHeader->GetRegHeaderEntries();
       for(Int_t iReg = 0; iReg < nReg ;iReg++){   //REG loop

//	 printf("RegionalId %d\n", iReg);

	 regHeader =  darcHeader->GetRegHeaderEntry(iReg);
	 //  printf("Reg length %d\n",regHeader->GetHeaderLength());

	 // crate info  
	 AliMpTriggerCrate* crate = AliMpDDLStore::Instance()->
	                            GetTriggerCrate(rawStream->GetDDL(), iReg);

	 // loop over local structures
	 Int_t nLocal = regHeader->GetLocalEntries();
	 for(Int_t iLocal = 0; iLocal < nLocal; iLocal++) {  

	   localStruct = regHeader->GetLocalEntry(iLocal);

	   Int_t iLocCard = crate->GetLocalBoardId(localStruct->GetId());

	   if ( !iLocCard ) continue; // empty slot

	   // check if trigger 
 	   if (localStruct->GetTriggerX() 
	       || localStruct->GetTriggerY()) { // no empty data

	     printf("LocalId %d\n", localStruct->GetId());

	     Int_t loStripX  = (Int_t)localStruct->GetXPos();
	     Int_t loStripY  = (Int_t)localStruct->GetYPos();
	     Int_t loDev     = (Int_t)localStruct->GetXDev();
	       
	     printf("iLocCard: %d, XPos: %d, YPos: %d Dev: %d\n", iLocCard, loStripX, loStripY, loDev);

	   }
	 } // iLocal
       } // iReg
     } // NextDDL
   }// NextEvent

   delete rawReader;
   delete rawStream;

   timer.Print();

}


void MUONRawStreamTriggerHPExpert(Int_t maxEvent = 1, Int_t minDDL = 0, Int_t maxDDL = 1, TString fileName = "./")
{
   /// Decodes raw MUON trigger data using the fast decoder.
   
   TStopwatch timer;
   timer.Start(kTRUE);

   AliRawReader* rawReader = AliRawReader::Create(fileName.Data());

   // Load mapping
   if ( ! AliMpCDB::LoadDDLStore() ) {
     printf("Could not access mapping from OCDB !\n");
   }

   // raw stream
   AliMUONRawStreamTriggerHP* rawStream = new AliMUONRawStreamTriggerHP(rawReader);

   // Light weight interfaces to the raw data.
   const AliMUONRawStreamTriggerHP::AliHeader*          darcHeader  = 0x0;
   const AliMUONRawStreamTriggerHP::AliRegionalHeader*  regHeader   = 0x0;
   const AliMUONRawStreamTriggerHP::AliLocalStruct*     localStruct = 0x0;

   // Loop over events.
   Int_t iEvent = 0;

   while (rawReader->NextEvent()) {

     if (iEvent == maxEvent)
       break;

     printf("Event %d\n",iEvent++);

     // read DDL while < 2 DDL
     while(rawStream->NextDDL()) {

      if (rawStream->GetDDL() < minDDL || rawStream->GetDDL() > maxDDL)
	 continue;

       printf("\niDDL %d\n", rawStream->GetDDL());

       darcHeader = rawStream->GetHeaders();

       printf("Global output %x\n", (Int_t)darcHeader->GetGlobalOutput());

       // loop over regional structures
       Int_t nReg = (Int_t) rawStream->GetRegionalHeaderCount();
       for(Int_t iReg = 0; iReg < nReg ;iReg++){   //REG loop

//	 printf("RegionalId %d\n", iReg);

	 regHeader =  rawStream->GetRegionalHeader(iReg);

	 // crate info
	 AliMpTriggerCrate* crate = AliMpDDLStore::Instance()->
	                            GetTriggerCrate(rawStream->GetDDL(), iReg);

	 // loop over local structures
	 Int_t nLocal = rawStream->GetLocalStructCount(iReg);
	 for(Int_t iLocal = 0; iLocal < nLocal; iLocal++) {

	   localStruct = rawStream->GetLocalStruct(iReg, iLocal);

	   Int_t iLocCard = crate->GetLocalBoardId(localStruct->GetId());

	   if ( !iLocCard ) continue; // empty slot
	 	
	   // check if trigger 
 	   if (localStruct->GetTriggerX() 
	       || localStruct->GetTriggerY()) { // no empty data

	     printf("LocalId %d\n", localStruct->GetId());

	     Int_t loStripX  = (Int_t)localStruct->GetXPos();
	     Int_t loStripY  = (Int_t)localStruct->GetYPos();
	     Int_t loDev     = (Int_t)localStruct->GetXDev();

	     printf("iLocCard: %d, XPos: %d, YPos: %d Dev: %d\n", iLocCard, loStripX, loStripY, loDev);

	   }
	 } // iLocal
       } // iReg
     } // NextDDL
   }// NextEvent

   delete rawReader;
   delete rawStream;

   timer.Print();

}


void MUONRawStreamTriggerHPExpert2(Int_t maxEvent = 1, Int_t minDDL = 0, Int_t maxDDL = 1, TString fileName = "./")
{
   /// Decodes raw MUON trigger data using the fast decoder.
   /// This method shows a slightly different method of iteration over the
   /// data using the AliMUONRawStreamTriggerHP interface.
   
   TStopwatch timer;
   timer.Start(kTRUE);

   AliRawReader* rawReader = AliRawReader::Create(fileName.Data());

   // Load mapping
   if ( ! AliMpCDB::LoadDDLStore() ) {
     printf("Could not access mapping from OCDB !\n");
   }

   // raw stream
   AliMUONRawStreamTriggerHP* rawStream = new AliMUONRawStreamTriggerHP(rawReader);

   // Light weight interfaces to the raw data.
   const AliMUONRawStreamTriggerHP::AliHeader*          darcHeader  = 0x0;
   const AliMUONRawStreamTriggerHP::AliRegionalHeader*  regHeader   = 0x0;
   const AliMUONRawStreamTriggerHP::AliLocalStruct*     localStruct = 0x0;

   // Loop over events.
   Int_t iEvent = 0;

   while (rawReader->NextEvent()) {

     if (iEvent == maxEvent)
       break;

     printf("Event %d\n",iEvent++);

     // read DDL while < 2 DDL
     while(rawStream->NextDDL()) {

      if (rawStream->GetDDL() < minDDL || rawStream->GetDDL() > maxDDL)
	 continue;

       printf("\niDDL %d\n", rawStream->GetDDL());

       darcHeader = rawStream->GetHeaders();

       printf("Global output %x\n", (Int_t)darcHeader->GetGlobalOutput());

       // loop over regional structures
       Int_t nReg = (Int_t) rawStream->GetRegionalHeaderCount();
       for(Int_t iReg = 0; iReg < nReg ;iReg++){   //REG loop

//	 printf("RegionalId %d\n", iReg);

	 regHeader =  rawStream->GetRegionalHeader(iReg);

	 // crate info
	 AliMpTriggerCrate* crate = AliMpDDLStore::Instance()->
	                            GetTriggerCrate(rawStream->GetDDL(), iReg);

	 // loop over local structures
	 Int_t nLocal = regHeader->GetLocalStructCount();
	 for(Int_t iLocal = 0; iLocal < nLocal; iLocal++) {

	   localStruct = regHeader->GetLocalStruct(iLocal);

	   Int_t iLocCard = crate->GetLocalBoardId(localStruct->GetId());

	   if ( !iLocCard ) continue; // empty slot
	 	
	   // check if trigger 
 	   if (localStruct->GetTriggerX() 
	       || localStruct->GetTriggerY()) { // no empty data

	     printf("LocalId %d\n", localStruct->GetId());

	     Int_t loStripX  = (Int_t)localStruct->GetXPos();
	     Int_t loStripY  = (Int_t)localStruct->GetYPos();
	     Int_t loDev     = (Int_t)localStruct->GetXDev();

	     printf("iLocCard: %d, XPos: %d, YPos: %d Dev: %d\n", iLocCard, loStripX, loStripY, loDev);

	   }
	 } // iLocal
       } // iReg
     } // NextDDL
   }// NextEvent

   delete rawReader;
   delete rawStream;

   timer.Print();

}


void MUONRawStreamTriggerHPExpert3(Int_t maxEvent = 1, Int_t minDDL = 0, Int_t maxDDL = 1, TString fileName = "./")
{
   /// Decodes raw MUON trigger data using the fast decoder.
   /// This method shows a jet another method of iteration over the
   /// data using the AliMUONRawStreamTriggerHP interface.
   
   TStopwatch timer;
   timer.Start(kTRUE);

   AliRawReader* rawReader = AliRawReader::Create(fileName.Data());

   // Load mapping
   if ( ! AliMpCDB::LoadDDLStore() ) {
     printf("Could not access mapping from OCDB !\n");
   }

   // raw stream
   AliMUONRawStreamTriggerHP* rawStream = new AliMUONRawStreamTriggerHP(rawReader);

   // Light weight interfaces to the raw data.
   const AliMUONRawStreamTriggerHP::AliHeader*          darcHeader  = 0x0;
   const AliMUONRawStreamTriggerHP::AliRegionalHeader*  regHeader   = 0x0;
   const AliMUONRawStreamTriggerHP::AliLocalStruct*     localStruct = 0x0;

   // Loop over events.
   Int_t iEvent = 0;

   while (rawReader->NextEvent()) {

     if (iEvent == maxEvent)
       break;

     printf("Event %d\n",iEvent++);

     // read DDL while < 2 DDL
     while(rawStream->NextDDL()) {

      if (rawStream->GetDDL() < minDDL || rawStream->GetDDL() > maxDDL)
	 continue;

       printf("\niDDL %d\n", rawStream->GetDDL());

       darcHeader = rawStream->GetHeaders();

       printf("Global output %x\n", (Int_t)darcHeader->GetGlobalOutput());

       // loop over regional structures
       Int_t iReg = 0;
       regHeader = rawStream->GetFirstRegionalHeader();
       while (regHeader != NULL)
       {
//	 printf("RegionalId %d\n", iReg);

	 regHeader =  rawStream->GetRegionalHeader(iReg);

	 // crate info
	 AliMpTriggerCrate* crate = AliMpDDLStore::Instance()->
	                            GetTriggerCrate(rawStream->GetDDL(), iReg);

	 // loop over local structures
	 Int_t iLocal = 0;
	 localStruct = regHeader->GetFirstLocalStruct();
	 while (localStruct != NULL)
	 {
	   Int_t iLocCard = crate->GetLocalBoardId(localStruct->GetId());
	   if ( !iLocCard ) continue; // empty slot
	 	
	   // check if trigger 
 	   if (localStruct->GetTriggerX() 
	       || localStruct->GetTriggerY()) { // no empty data

	     printf("LocalId %d\n", localStruct->GetId());

	     Int_t loStripX  = (Int_t)localStruct->GetXPos();
	     Int_t loStripY  = (Int_t)localStruct->GetYPos();
	     Int_t loDev     = (Int_t)localStruct->GetXDev();

	     printf("iLocCard: %d, XPos: %d, YPos: %d Dev: %d\n", iLocCard, loStripX, loStripY, loDev);

	   }
	   iLocal++;
	   localStruct = localStruct->Next();
	 } // iLocal
	 iReg++;
	 regHeader = regHeader->Next();
       } // iReg
     } // NextDDL
   }// NextEvent

   delete rawReader;
   delete rawStream;

   timer.Print();

}


void MUONRawStreamTriggerSimple(Int_t maxEvent = 1, TString fileName = "./")
{
  /// Reads the raw data in fileName, using a simplified interface (iterator
  /// over local structure response).

  TStopwatch timer;
  timer.Start(kTRUE);

   AliRawReader* rawReader = 0x0;

   if (fileName.EndsWith("/")) {
     rawReader = new AliRawReaderFile(fileName);// DDL files
   } else if (fileName.EndsWith(".root")) {
     rawReader = new AliRawReaderRoot(fileName);
   } 

   // raw stream
   AliMUONRawStreamTrigger* rawStream   = new AliMUONRawStreamTrigger(rawReader);

   // set the number of reg & local that are PRESENT in the rawdata file
   // it's NOT the number to be read.
   // default wise set to 8, 16 respectively.
   //    rawStream->SetMaxReg(2);
   //    rawStream->SetMaxLoc(xx);

   UChar_t id;   
   UChar_t dec;
   Bool_t trigY; 
   UChar_t yPos; 
   UChar_t sXDev; 
   UChar_t xDev;
   UChar_t xPos;

   Bool_t triggerX; 
   Bool_t triggerY; 

 
   TArrayS xPattern; 
   TArrayS yPattern;

   // Loop over events  
   Int_t iEvent = 0;

   while (rawReader->NextEvent()) {

     if (iEvent == maxEvent)
	 break;

     printf("Event %d\n",iEvent++);

     rawStream->First();

     // read while there are digits
     while( rawStream->Next(id, dec, trigY, yPos, sXDev, xDev, xPos,
			    triggerX, triggerY, xPattern, yPattern) ) 
     {
       if ( triggerX || triggerY )  // no empty data
	   printf("iLocCard: %d, XPos: %d, YPos: %d Dev: %d\n", id, xPos, yPos, xDev);

     }// Next
  
   }// NextEvent

   delete rawReader;
   delete rawStream;

   timer.Print();

}


void MUONRawStreamTriggerHPSimple(Int_t maxEvent = 1, TString fileName = "./")
{
  /// Reads the raw data in fileName, using the simplified interface of the
  /// high performance decoder.

  TStopwatch timer;
  timer.Start(kTRUE);

  AliRawReader* rawReader = AliRawReader::Create(fileName.Data());
  AliMUONRawStreamTriggerHP* rawStream   = new AliMUONRawStreamTriggerHP(rawReader);

  UChar_t id;
  UChar_t dec;
  Bool_t trigY;
  UChar_t yPos;
  UChar_t sXDev;
  UChar_t xDev;
  UChar_t xPos;
  Bool_t triggerX;
  Bool_t triggerY;
  TArrayS xPattern;
  TArrayS yPattern;

  // Loop over events
  Int_t iEvent = 0;

  while (rawReader->NextEvent())
  {

    if (iEvent == maxEvent)
       break;

     printf("Event %d\n", iEvent++);

     rawStream->First();

     // read while there are digits
     while ( rawStream->Next(id, dec, trigY, yPos, sXDev, xDev, xPos,
                            triggerX, triggerY, xPattern, yPattern) )
     {
       if ( triggerX || triggerY )  // no empty data
          printf("iLocCard: %d, XPos: %d, YPos: %d Dev: %d\n", id, xPos, yPos, xDev);
     }// Next
  }// NextEvent

  delete rawReader;
  delete rawStream;

  timer.Print();
}


void MUONRawStreamTriggerHPSimple2(Int_t maxEvent = 1, TString fileName = "./")
{
  /// Reads the raw data in fileName, using the simplified interface of the
  /// high performance decoder.

  TStopwatch timer;
  timer.Start(kTRUE);

  AliRawReader* rawReader = AliRawReader::Create(fileName.Data());
  AliMUONRawStreamTriggerHP* rawStream   = new AliMUONRawStreamTriggerHP(rawReader);

  const AliMUONRawStreamTriggerHP::AliLocalStruct* localStruct;

  // Loop over events
  Int_t iEvent = 0;

  while (rawReader->NextEvent())
  {

    if (iEvent == maxEvent)
       break;

     printf("Event %d\n", iEvent++);

     rawStream->First();

     // read while there are digits
     while ( (localStruct = rawStream->Next()) != NULL )
     {
       if ( localStruct->GetTriggerX() || localStruct->GetTriggerY() )  // no empty data
          printf("iLocCard: %d, XPos: %d, YPos: %d Dev: %d\n",
          	localStruct->GetId(),
          	localStruct->GetXPos(),
          	localStruct->GetYPos(),
          	localStruct->GetXDev()
          );
     }// Next
  }// NextEvent

  delete rawReader;
  delete rawStream;

  timer.Print();
}

 MUONRawStreamTrigger.C:1
 MUONRawStreamTrigger.C:2
 MUONRawStreamTrigger.C:3
 MUONRawStreamTrigger.C:4
 MUONRawStreamTrigger.C:5
 MUONRawStreamTrigger.C:6
 MUONRawStreamTrigger.C:7
 MUONRawStreamTrigger.C:8
 MUONRawStreamTrigger.C:9
 MUONRawStreamTrigger.C:10
 MUONRawStreamTrigger.C:11
 MUONRawStreamTrigger.C:12
 MUONRawStreamTrigger.C:13
 MUONRawStreamTrigger.C:14
 MUONRawStreamTrigger.C:15
 MUONRawStreamTrigger.C:16
 MUONRawStreamTrigger.C:17
 MUONRawStreamTrigger.C:18
 MUONRawStreamTrigger.C:19
 MUONRawStreamTrigger.C:20
 MUONRawStreamTrigger.C:21
 MUONRawStreamTrigger.C:22
 MUONRawStreamTrigger.C:23
 MUONRawStreamTrigger.C:24
 MUONRawStreamTrigger.C:25
 MUONRawStreamTrigger.C:26
 MUONRawStreamTrigger.C:27
 MUONRawStreamTrigger.C:28
 MUONRawStreamTrigger.C:29
 MUONRawStreamTrigger.C:30
 MUONRawStreamTrigger.C:31
 MUONRawStreamTrigger.C:32
 MUONRawStreamTrigger.C:33
 MUONRawStreamTrigger.C:34
 MUONRawStreamTrigger.C:35
 MUONRawStreamTrigger.C:36
 MUONRawStreamTrigger.C:37
 MUONRawStreamTrigger.C:38
 MUONRawStreamTrigger.C:39
 MUONRawStreamTrigger.C:40
 MUONRawStreamTrigger.C:41
 MUONRawStreamTrigger.C:42
 MUONRawStreamTrigger.C:43
 MUONRawStreamTrigger.C:44
 MUONRawStreamTrigger.C:45
 MUONRawStreamTrigger.C:46
 MUONRawStreamTrigger.C:47
 MUONRawStreamTrigger.C:48
 MUONRawStreamTrigger.C:49
 MUONRawStreamTrigger.C:50
 MUONRawStreamTrigger.C:51
 MUONRawStreamTrigger.C:52
 MUONRawStreamTrigger.C:53
 MUONRawStreamTrigger.C:54
 MUONRawStreamTrigger.C:55
 MUONRawStreamTrigger.C:56
 MUONRawStreamTrigger.C:57
 MUONRawStreamTrigger.C:58
 MUONRawStreamTrigger.C:59
 MUONRawStreamTrigger.C:60
 MUONRawStreamTrigger.C:61
 MUONRawStreamTrigger.C:62
 MUONRawStreamTrigger.C:63
 MUONRawStreamTrigger.C:64
 MUONRawStreamTrigger.C:65
 MUONRawStreamTrigger.C:66
 MUONRawStreamTrigger.C:67
 MUONRawStreamTrigger.C:68
 MUONRawStreamTrigger.C:69
 MUONRawStreamTrigger.C:70
 MUONRawStreamTrigger.C:71
 MUONRawStreamTrigger.C:72
 MUONRawStreamTrigger.C:73
 MUONRawStreamTrigger.C:74
 MUONRawStreamTrigger.C:75
 MUONRawStreamTrigger.C:76
 MUONRawStreamTrigger.C:77
 MUONRawStreamTrigger.C:78
 MUONRawStreamTrigger.C:79
 MUONRawStreamTrigger.C:80
 MUONRawStreamTrigger.C:81
 MUONRawStreamTrigger.C:82
 MUONRawStreamTrigger.C:83
 MUONRawStreamTrigger.C:84
 MUONRawStreamTrigger.C:85
 MUONRawStreamTrigger.C:86
 MUONRawStreamTrigger.C:87
 MUONRawStreamTrigger.C:88
 MUONRawStreamTrigger.C:89
 MUONRawStreamTrigger.C:90
 MUONRawStreamTrigger.C:91
 MUONRawStreamTrigger.C:92
 MUONRawStreamTrigger.C:93
 MUONRawStreamTrigger.C:94
 MUONRawStreamTrigger.C:95
 MUONRawStreamTrigger.C:96
 MUONRawStreamTrigger.C:97
 MUONRawStreamTrigger.C:98
 MUONRawStreamTrigger.C:99
 MUONRawStreamTrigger.C:100
 MUONRawStreamTrigger.C:101
 MUONRawStreamTrigger.C:102
 MUONRawStreamTrigger.C:103
 MUONRawStreamTrigger.C:104
 MUONRawStreamTrigger.C:105
 MUONRawStreamTrigger.C:106
 MUONRawStreamTrigger.C:107
 MUONRawStreamTrigger.C:108
 MUONRawStreamTrigger.C:109
 MUONRawStreamTrigger.C:110
 MUONRawStreamTrigger.C:111
 MUONRawStreamTrigger.C:112
 MUONRawStreamTrigger.C:113
 MUONRawStreamTrigger.C:114
 MUONRawStreamTrigger.C:115
 MUONRawStreamTrigger.C:116
 MUONRawStreamTrigger.C:117
 MUONRawStreamTrigger.C:118
 MUONRawStreamTrigger.C:119
 MUONRawStreamTrigger.C:120
 MUONRawStreamTrigger.C:121
 MUONRawStreamTrigger.C:122
 MUONRawStreamTrigger.C:123
 MUONRawStreamTrigger.C:124
 MUONRawStreamTrigger.C:125
 MUONRawStreamTrigger.C:126
 MUONRawStreamTrigger.C:127
 MUONRawStreamTrigger.C:128
 MUONRawStreamTrigger.C:129
 MUONRawStreamTrigger.C:130
 MUONRawStreamTrigger.C:131
 MUONRawStreamTrigger.C:132
 MUONRawStreamTrigger.C:133
 MUONRawStreamTrigger.C:134
 MUONRawStreamTrigger.C:135
 MUONRawStreamTrigger.C:136
 MUONRawStreamTrigger.C:137
 MUONRawStreamTrigger.C:138
 MUONRawStreamTrigger.C:139
 MUONRawStreamTrigger.C:140
 MUONRawStreamTrigger.C:141
 MUONRawStreamTrigger.C:142
 MUONRawStreamTrigger.C:143
 MUONRawStreamTrigger.C:144
 MUONRawStreamTrigger.C:145
 MUONRawStreamTrigger.C:146
 MUONRawStreamTrigger.C:147
 MUONRawStreamTrigger.C:148
 MUONRawStreamTrigger.C:149
 MUONRawStreamTrigger.C:150
 MUONRawStreamTrigger.C:151
 MUONRawStreamTrigger.C:152
 MUONRawStreamTrigger.C:153
 MUONRawStreamTrigger.C:154
 MUONRawStreamTrigger.C:155
 MUONRawStreamTrigger.C:156
 MUONRawStreamTrigger.C:157
 MUONRawStreamTrigger.C:158
 MUONRawStreamTrigger.C:159
 MUONRawStreamTrigger.C:160
 MUONRawStreamTrigger.C:161
 MUONRawStreamTrigger.C:162
 MUONRawStreamTrigger.C:163
 MUONRawStreamTrigger.C:164
 MUONRawStreamTrigger.C:165
 MUONRawStreamTrigger.C:166
 MUONRawStreamTrigger.C:167
 MUONRawStreamTrigger.C:168
 MUONRawStreamTrigger.C:169
 MUONRawStreamTrigger.C:170
 MUONRawStreamTrigger.C:171
 MUONRawStreamTrigger.C:172
 MUONRawStreamTrigger.C:173
 MUONRawStreamTrigger.C:174
 MUONRawStreamTrigger.C:175
 MUONRawStreamTrigger.C:176
 MUONRawStreamTrigger.C:177
 MUONRawStreamTrigger.C:178
 MUONRawStreamTrigger.C:179
 MUONRawStreamTrigger.C:180
 MUONRawStreamTrigger.C:181
 MUONRawStreamTrigger.C:182
 MUONRawStreamTrigger.C:183
 MUONRawStreamTrigger.C:184
 MUONRawStreamTrigger.C:185
 MUONRawStreamTrigger.C:186
 MUONRawStreamTrigger.C:187
 MUONRawStreamTrigger.C:188
 MUONRawStreamTrigger.C:189
 MUONRawStreamTrigger.C:190
 MUONRawStreamTrigger.C:191
 MUONRawStreamTrigger.C:192
 MUONRawStreamTrigger.C:193
 MUONRawStreamTrigger.C:194
 MUONRawStreamTrigger.C:195
 MUONRawStreamTrigger.C:196
 MUONRawStreamTrigger.C:197
 MUONRawStreamTrigger.C:198
 MUONRawStreamTrigger.C:199
 MUONRawStreamTrigger.C:200
 MUONRawStreamTrigger.C:201
 MUONRawStreamTrigger.C:202
 MUONRawStreamTrigger.C:203
 MUONRawStreamTrigger.C:204
 MUONRawStreamTrigger.C:205
 MUONRawStreamTrigger.C:206
 MUONRawStreamTrigger.C:207
 MUONRawStreamTrigger.C:208
 MUONRawStreamTrigger.C:209
 MUONRawStreamTrigger.C:210
 MUONRawStreamTrigger.C:211
 MUONRawStreamTrigger.C:212
 MUONRawStreamTrigger.C:213
 MUONRawStreamTrigger.C:214
 MUONRawStreamTrigger.C:215
 MUONRawStreamTrigger.C:216
 MUONRawStreamTrigger.C:217
 MUONRawStreamTrigger.C:218
 MUONRawStreamTrigger.C:219
 MUONRawStreamTrigger.C:220
 MUONRawStreamTrigger.C:221
 MUONRawStreamTrigger.C:222
 MUONRawStreamTrigger.C:223
 MUONRawStreamTrigger.C:224
 MUONRawStreamTrigger.C:225
 MUONRawStreamTrigger.C:226
 MUONRawStreamTrigger.C:227
 MUONRawStreamTrigger.C:228
 MUONRawStreamTrigger.C:229
 MUONRawStreamTrigger.C:230
 MUONRawStreamTrigger.C:231
 MUONRawStreamTrigger.C:232
 MUONRawStreamTrigger.C:233
 MUONRawStreamTrigger.C:234
 MUONRawStreamTrigger.C:235
 MUONRawStreamTrigger.C:236
 MUONRawStreamTrigger.C:237
 MUONRawStreamTrigger.C:238
 MUONRawStreamTrigger.C:239
 MUONRawStreamTrigger.C:240
 MUONRawStreamTrigger.C:241
 MUONRawStreamTrigger.C:242
 MUONRawStreamTrigger.C:243
 MUONRawStreamTrigger.C:244
 MUONRawStreamTrigger.C:245
 MUONRawStreamTrigger.C:246
 MUONRawStreamTrigger.C:247
 MUONRawStreamTrigger.C:248
 MUONRawStreamTrigger.C:249
 MUONRawStreamTrigger.C:250
 MUONRawStreamTrigger.C:251
 MUONRawStreamTrigger.C:252
 MUONRawStreamTrigger.C:253
 MUONRawStreamTrigger.C:254
 MUONRawStreamTrigger.C:255
 MUONRawStreamTrigger.C:256
 MUONRawStreamTrigger.C:257
 MUONRawStreamTrigger.C:258
 MUONRawStreamTrigger.C:259
 MUONRawStreamTrigger.C:260
 MUONRawStreamTrigger.C:261
 MUONRawStreamTrigger.C:262
 MUONRawStreamTrigger.C:263
 MUONRawStreamTrigger.C:264
 MUONRawStreamTrigger.C:265
 MUONRawStreamTrigger.C:266
 MUONRawStreamTrigger.C:267
 MUONRawStreamTrigger.C:268
 MUONRawStreamTrigger.C:269
 MUONRawStreamTrigger.C:270
 MUONRawStreamTrigger.C:271
 MUONRawStreamTrigger.C:272
 MUONRawStreamTrigger.C:273
 MUONRawStreamTrigger.C:274
 MUONRawStreamTrigger.C:275
 MUONRawStreamTrigger.C:276
 MUONRawStreamTrigger.C:277
 MUONRawStreamTrigger.C:278
 MUONRawStreamTrigger.C:279
 MUONRawStreamTrigger.C:280
 MUONRawStreamTrigger.C:281
 MUONRawStreamTrigger.C:282
 MUONRawStreamTrigger.C:283
 MUONRawStreamTrigger.C:284
 MUONRawStreamTrigger.C:285
 MUONRawStreamTrigger.C:286
 MUONRawStreamTrigger.C:287
 MUONRawStreamTrigger.C:288
 MUONRawStreamTrigger.C:289
 MUONRawStreamTrigger.C:290
 MUONRawStreamTrigger.C:291
 MUONRawStreamTrigger.C:292
 MUONRawStreamTrigger.C:293
 MUONRawStreamTrigger.C:294
 MUONRawStreamTrigger.C:295
 MUONRawStreamTrigger.C:296
 MUONRawStreamTrigger.C:297
 MUONRawStreamTrigger.C:298
 MUONRawStreamTrigger.C:299
 MUONRawStreamTrigger.C:300
 MUONRawStreamTrigger.C:301
 MUONRawStreamTrigger.C:302
 MUONRawStreamTrigger.C:303
 MUONRawStreamTrigger.C:304
 MUONRawStreamTrigger.C:305
 MUONRawStreamTrigger.C:306
 MUONRawStreamTrigger.C:307
 MUONRawStreamTrigger.C:308
 MUONRawStreamTrigger.C:309
 MUONRawStreamTrigger.C:310
 MUONRawStreamTrigger.C:311
 MUONRawStreamTrigger.C:312
 MUONRawStreamTrigger.C:313
 MUONRawStreamTrigger.C:314
 MUONRawStreamTrigger.C:315
 MUONRawStreamTrigger.C:316
 MUONRawStreamTrigger.C:317
 MUONRawStreamTrigger.C:318
 MUONRawStreamTrigger.C:319
 MUONRawStreamTrigger.C:320
 MUONRawStreamTrigger.C:321
 MUONRawStreamTrigger.C:322
 MUONRawStreamTrigger.C:323
 MUONRawStreamTrigger.C:324
 MUONRawStreamTrigger.C:325
 MUONRawStreamTrigger.C:326
 MUONRawStreamTrigger.C:327
 MUONRawStreamTrigger.C:328
 MUONRawStreamTrigger.C:329
 MUONRawStreamTrigger.C:330
 MUONRawStreamTrigger.C:331
 MUONRawStreamTrigger.C:332
 MUONRawStreamTrigger.C:333
 MUONRawStreamTrigger.C:334
 MUONRawStreamTrigger.C:335
 MUONRawStreamTrigger.C:336
 MUONRawStreamTrigger.C:337
 MUONRawStreamTrigger.C:338
 MUONRawStreamTrigger.C:339
 MUONRawStreamTrigger.C:340
 MUONRawStreamTrigger.C:341
 MUONRawStreamTrigger.C:342
 MUONRawStreamTrigger.C:343
 MUONRawStreamTrigger.C:344
 MUONRawStreamTrigger.C:345
 MUONRawStreamTrigger.C:346
 MUONRawStreamTrigger.C:347
 MUONRawStreamTrigger.C:348
 MUONRawStreamTrigger.C:349
 MUONRawStreamTrigger.C:350
 MUONRawStreamTrigger.C:351
 MUONRawStreamTrigger.C:352
 MUONRawStreamTrigger.C:353
 MUONRawStreamTrigger.C:354
 MUONRawStreamTrigger.C:355
 MUONRawStreamTrigger.C:356
 MUONRawStreamTrigger.C:357
 MUONRawStreamTrigger.C:358
 MUONRawStreamTrigger.C:359
 MUONRawStreamTrigger.C:360
 MUONRawStreamTrigger.C:361
 MUONRawStreamTrigger.C:362
 MUONRawStreamTrigger.C:363
 MUONRawStreamTrigger.C:364
 MUONRawStreamTrigger.C:365
 MUONRawStreamTrigger.C:366
 MUONRawStreamTrigger.C:367
 MUONRawStreamTrigger.C:368
 MUONRawStreamTrigger.C:369
 MUONRawStreamTrigger.C:370
 MUONRawStreamTrigger.C:371
 MUONRawStreamTrigger.C:372
 MUONRawStreamTrigger.C:373
 MUONRawStreamTrigger.C:374
 MUONRawStreamTrigger.C:375
 MUONRawStreamTrigger.C:376
 MUONRawStreamTrigger.C:377
 MUONRawStreamTrigger.C:378
 MUONRawStreamTrigger.C:379
 MUONRawStreamTrigger.C:380
 MUONRawStreamTrigger.C:381
 MUONRawStreamTrigger.C:382
 MUONRawStreamTrigger.C:383
 MUONRawStreamTrigger.C:384
 MUONRawStreamTrigger.C:385
 MUONRawStreamTrigger.C:386
 MUONRawStreamTrigger.C:387
 MUONRawStreamTrigger.C:388
 MUONRawStreamTrigger.C:389
 MUONRawStreamTrigger.C:390
 MUONRawStreamTrigger.C:391
 MUONRawStreamTrigger.C:392
 MUONRawStreamTrigger.C:393
 MUONRawStreamTrigger.C:394
 MUONRawStreamTrigger.C:395
 MUONRawStreamTrigger.C:396
 MUONRawStreamTrigger.C:397
 MUONRawStreamTrigger.C:398
 MUONRawStreamTrigger.C:399
 MUONRawStreamTrigger.C:400
 MUONRawStreamTrigger.C:401
 MUONRawStreamTrigger.C:402
 MUONRawStreamTrigger.C:403
 MUONRawStreamTrigger.C:404
 MUONRawStreamTrigger.C:405
 MUONRawStreamTrigger.C:406
 MUONRawStreamTrigger.C:407
 MUONRawStreamTrigger.C:408
 MUONRawStreamTrigger.C:409
 MUONRawStreamTrigger.C:410
 MUONRawStreamTrigger.C:411
 MUONRawStreamTrigger.C:412
 MUONRawStreamTrigger.C:413
 MUONRawStreamTrigger.C:414
 MUONRawStreamTrigger.C:415
 MUONRawStreamTrigger.C:416
 MUONRawStreamTrigger.C:417
 MUONRawStreamTrigger.C:418
 MUONRawStreamTrigger.C:419
 MUONRawStreamTrigger.C:420
 MUONRawStreamTrigger.C:421
 MUONRawStreamTrigger.C:422
 MUONRawStreamTrigger.C:423
 MUONRawStreamTrigger.C:424
 MUONRawStreamTrigger.C:425
 MUONRawStreamTrigger.C:426
 MUONRawStreamTrigger.C:427
 MUONRawStreamTrigger.C:428
 MUONRawStreamTrigger.C:429
 MUONRawStreamTrigger.C:430
 MUONRawStreamTrigger.C:431
 MUONRawStreamTrigger.C:432
 MUONRawStreamTrigger.C:433
 MUONRawStreamTrigger.C:434
 MUONRawStreamTrigger.C:435
 MUONRawStreamTrigger.C:436
 MUONRawStreamTrigger.C:437
 MUONRawStreamTrigger.C:438
 MUONRawStreamTrigger.C:439
 MUONRawStreamTrigger.C:440
 MUONRawStreamTrigger.C:441
 MUONRawStreamTrigger.C:442
 MUONRawStreamTrigger.C:443
 MUONRawStreamTrigger.C:444
 MUONRawStreamTrigger.C:445
 MUONRawStreamTrigger.C:446
 MUONRawStreamTrigger.C:447
 MUONRawStreamTrigger.C:448
 MUONRawStreamTrigger.C:449
 MUONRawStreamTrigger.C:450
 MUONRawStreamTrigger.C:451
 MUONRawStreamTrigger.C:452
 MUONRawStreamTrigger.C:453
 MUONRawStreamTrigger.C:454
 MUONRawStreamTrigger.C:455
 MUONRawStreamTrigger.C:456
 MUONRawStreamTrigger.C:457
 MUONRawStreamTrigger.C:458
 MUONRawStreamTrigger.C:459
 MUONRawStreamTrigger.C:460
 MUONRawStreamTrigger.C:461
 MUONRawStreamTrigger.C:462
 MUONRawStreamTrigger.C:463
 MUONRawStreamTrigger.C:464
 MUONRawStreamTrigger.C:465
 MUONRawStreamTrigger.C:466
 MUONRawStreamTrigger.C:467
 MUONRawStreamTrigger.C:468
 MUONRawStreamTrigger.C:469
 MUONRawStreamTrigger.C:470
 MUONRawStreamTrigger.C:471
 MUONRawStreamTrigger.C:472
 MUONRawStreamTrigger.C:473
 MUONRawStreamTrigger.C:474
 MUONRawStreamTrigger.C:475
 MUONRawStreamTrigger.C:476
 MUONRawStreamTrigger.C:477
 MUONRawStreamTrigger.C:478
 MUONRawStreamTrigger.C:479
 MUONRawStreamTrigger.C:480
 MUONRawStreamTrigger.C:481
 MUONRawStreamTrigger.C:482
 MUONRawStreamTrigger.C:483
 MUONRawStreamTrigger.C:484
 MUONRawStreamTrigger.C:485
 MUONRawStreamTrigger.C:486
 MUONRawStreamTrigger.C:487
 MUONRawStreamTrigger.C:488
 MUONRawStreamTrigger.C:489
 MUONRawStreamTrigger.C:490
 MUONRawStreamTrigger.C:491
 MUONRawStreamTrigger.C:492
 MUONRawStreamTrigger.C:493
 MUONRawStreamTrigger.C:494
 MUONRawStreamTrigger.C:495
 MUONRawStreamTrigger.C:496
 MUONRawStreamTrigger.C:497
 MUONRawStreamTrigger.C:498
 MUONRawStreamTrigger.C:499
 MUONRawStreamTrigger.C:500
 MUONRawStreamTrigger.C:501
 MUONRawStreamTrigger.C:502
 MUONRawStreamTrigger.C:503
 MUONRawStreamTrigger.C:504
 MUONRawStreamTrigger.C:505
 MUONRawStreamTrigger.C:506
 MUONRawStreamTrigger.C:507
 MUONRawStreamTrigger.C:508
 MUONRawStreamTrigger.C:509
 MUONRawStreamTrigger.C:510
 MUONRawStreamTrigger.C:511
 MUONRawStreamTrigger.C:512
 MUONRawStreamTrigger.C:513
 MUONRawStreamTrigger.C:514
 MUONRawStreamTrigger.C:515
 MUONRawStreamTrigger.C:516
 MUONRawStreamTrigger.C:517
 MUONRawStreamTrigger.C:518
 MUONRawStreamTrigger.C:519
 MUONRawStreamTrigger.C:520
 MUONRawStreamTrigger.C:521
 MUONRawStreamTrigger.C:522
 MUONRawStreamTrigger.C:523
 MUONRawStreamTrigger.C:524
 MUONRawStreamTrigger.C:525
 MUONRawStreamTrigger.C:526
 MUONRawStreamTrigger.C:527
 MUONRawStreamTrigger.C:528
 MUONRawStreamTrigger.C:529
 MUONRawStreamTrigger.C:530
 MUONRawStreamTrigger.C:531
 MUONRawStreamTrigger.C:532
 MUONRawStreamTrigger.C:533
 MUONRawStreamTrigger.C:534
 MUONRawStreamTrigger.C:535
 MUONRawStreamTrigger.C:536
 MUONRawStreamTrigger.C:537
 MUONRawStreamTrigger.C:538
 MUONRawStreamTrigger.C:539
 MUONRawStreamTrigger.C:540
 MUONRawStreamTrigger.C:541
 MUONRawStreamTrigger.C:542
 MUONRawStreamTrigger.C:543
 MUONRawStreamTrigger.C:544
 MUONRawStreamTrigger.C:545
 MUONRawStreamTrigger.C:546
 MUONRawStreamTrigger.C:547
 MUONRawStreamTrigger.C:548
 MUONRawStreamTrigger.C:549
 MUONRawStreamTrigger.C:550
 MUONRawStreamTrigger.C:551
 MUONRawStreamTrigger.C:552
 MUONRawStreamTrigger.C:553
 MUONRawStreamTrigger.C:554
 MUONRawStreamTrigger.C:555
 MUONRawStreamTrigger.C:556
 MUONRawStreamTrigger.C:557
 MUONRawStreamTrigger.C:558
 MUONRawStreamTrigger.C:559
 MUONRawStreamTrigger.C:560
 MUONRawStreamTrigger.C:561
 MUONRawStreamTrigger.C:562
 MUONRawStreamTrigger.C:563
 MUONRawStreamTrigger.C:564
 MUONRawStreamTrigger.C:565
 MUONRawStreamTrigger.C:566
 MUONRawStreamTrigger.C:567
 MUONRawStreamTrigger.C:568
 MUONRawStreamTrigger.C:569
 MUONRawStreamTrigger.C:570
 MUONRawStreamTrigger.C:571
 MUONRawStreamTrigger.C:572
 MUONRawStreamTrigger.C:573
 MUONRawStreamTrigger.C:574
 MUONRawStreamTrigger.C:575
 MUONRawStreamTrigger.C:576
 MUONRawStreamTrigger.C:577
 MUONRawStreamTrigger.C:578
 MUONRawStreamTrigger.C:579
 MUONRawStreamTrigger.C:580
 MUONRawStreamTrigger.C:581
 MUONRawStreamTrigger.C:582
 MUONRawStreamTrigger.C:583
 MUONRawStreamTrigger.C:584
 MUONRawStreamTrigger.C:585
 MUONRawStreamTrigger.C:586
 MUONRawStreamTrigger.C:587
 MUONRawStreamTrigger.C:588
 MUONRawStreamTrigger.C:589
 MUONRawStreamTrigger.C:590
 MUONRawStreamTrigger.C:591
 MUONRawStreamTrigger.C:592
 MUONRawStreamTrigger.C:593
 MUONRawStreamTrigger.C:594
 MUONRawStreamTrigger.C:595
 MUONRawStreamTrigger.C:596
 MUONRawStreamTrigger.C:597
 MUONRawStreamTrigger.C:598
 MUONRawStreamTrigger.C:599
 MUONRawStreamTrigger.C:600
 MUONRawStreamTrigger.C:601
 MUONRawStreamTrigger.C:602
 MUONRawStreamTrigger.C:603
 MUONRawStreamTrigger.C:604
 MUONRawStreamTrigger.C:605
 MUONRawStreamTrigger.C:606
 MUONRawStreamTrigger.C:607
 MUONRawStreamTrigger.C:608
 MUONRawStreamTrigger.C:609
 MUONRawStreamTrigger.C:610
 MUONRawStreamTrigger.C:611
 MUONRawStreamTrigger.C:612
 MUONRawStreamTrigger.C:613
 MUONRawStreamTrigger.C:614
 MUONRawStreamTrigger.C:615