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

//_________________________________________________________________________
// Gerenate a random trigger, input for other analysis
// Set flat energy distribution over acceptance of EMCAL, PHOS or CTS
// Be careful, correlate only with Min Bias events this trigger
//
//
//-- Author: Gustavo Conesa (LPSC-Grenoble)
//_________________________________________________________________________


// --- ROOT system ---
#include <TH2F.h>
#include <TClonesArray.h>

//---- AliRoot system ----
#include "AliAnaRandomTrigger.h"
#include "AliAODPWG4ParticleCorrelation.h"
#include "AliEMCALGeometry.h"

ClassImp(AliAnaRandomTrigger)
  
//__________________________________________
AliAnaRandomTrigger::AliAnaRandomTrigger() : 
    AliAnaCaloTrackCorrBaseClass(),
    fTriggerDetector(kEMCAL),
    fTriggerDetectorString("EMCAL"),
    fRandom(0),         fNRandom(0),
    fMomentum(),
    fhE(0),             fhPt(0),
    fhPhi(0),           fhEta(0), 
    fhEtaPhi(0) 
{
  //Default Ctor

  //Initialize parameters
  InitParameters();

}

//_________________________________________________________________________
Bool_t AliAnaRandomTrigger::ExcludeDeadBadRegions(Float_t eta, Float_t phi)
{
  // Check if there is a dead or bad region in a detector
  // Now only EMCAL

  if(fTriggerDetector!=kEMCAL) return kFALSE;
  
  //-------------------------------------
  // Get the corresponding cell in EMCAL, check if it exists in acceptance (phi gaps, borders)
  //-------------------------------------

  Int_t absId = -1;
  if(!GetEMCALGeometry()->GetAbsCellIdFromEtaPhi(eta,phi, absId)) return kTRUE; // remove if out of EMCAL acceptance, phi gaps
  
  Int_t icol = -1, irow = -1, iRCU = -1;
  Int_t sm = GetCaloUtils()->GetModuleNumberCellIndexes(absId,kEMCAL, icol, irow, iRCU);
  
  //printf("eta %f, phi %f, ieta %d, iphi %d, sm %d\n",eta,phi,icol,irow,sm);
  
  //-------------------------------------
  // Remove in case of close to border, by default always 1 but check what was set in reco utils
  //-------------------------------------

  Bool_t okrow = kFALSE;
	Bool_t okcol = kFALSE;
  Int_t nborder = GetCaloUtils()->GetEMCALRecoUtils()->GetNumberOfCellsFromEMCALBorder();
  if (nborder<1) nborder = 1;
  
  // Rows
  if(sm < 10)
  {
    if(irow >= nborder && irow < 24-nborder) okrow =kTRUE; 
  }
  else
  {
    if((GetCaloUtils()->EMCALGeometryName()).Contains("12SM")) // 1/3 SM
    {
      if(irow >= nborder && irow < 8-nborder) okrow =kTRUE; 
    }
    else // 1/2 SM
    {
      if(irow >= nborder && irow <12-nborder) okrow =kTRUE; 
    }
  }
  
  // Columns
  if(sm%2==0)
  {
    if(icol >= nborder)     okcol = kTRUE;	
  }
  else 
  {
    if(icol <  48-nborder)  okcol = kTRUE;	
  }
  
  //printf("okcol %d, okrow %d\n",okcol,okrow);
  if (!okcol || !okrow) return kTRUE; 
  
  //-------------------------------------
  // Check if the cell or those around are bad
  //-------------------------------------

  if(GetCaloUtils()->GetEMCALChannelStatus(sm,icol, irow) > 0) return kTRUE ; // trigger falls into a bad channel

  // Check if close there was a bad channel
//  for(Int_t i = -1; i <= 1; i++)
//  {
//    for(Int_t j = -1; j <= 1; j++)
//    {
//      //printf("\t check icol %d, irow %d \n",icol+i, irow+j);
//      if(GetCaloUtils()->GetEMCALChannelStatus(sm,icol+i, irow+j) > 0) return kTRUE ; // trigger falls into a bad channel
//      //printf("\t ok\n");
//    }
//  }

   //printf("\t OK\n");
  
  return kFALSE;
  
}


//__________________________________________________
TObjString *  AliAnaRandomTrigger::GetAnalysisCuts()
{  	
  //Save parameters used for analysis
  TString parList ; //this will be list of parameters used for this analysis.
  const Int_t buffersize = 255;
  char onePar[buffersize] ;
  
  snprintf(onePar,buffersize,"--- AliAnaRandomTrigger ---:") ;
  parList+=onePar ;	
  snprintf(onePar,buffersize,"Detector: %s;"    , fTriggerDetectorString.Data()) ;
  parList+=onePar ;
  snprintf(onePar,buffersize,"N per event = %d;", fNRandom       ) ;
  parList+=onePar ;
  snprintf(onePar,buffersize,"Min E   = %3.2f - Max E   = %3.2f;", GetMinPt(), GetMaxPt()) ;
  parList+=onePar ;
  snprintf(onePar,buffersize,"Min Eta = %3.2f - Max Eta = %3.2f;", fEtaCut[0], fEtaCut[1]) ;
  parList+=onePar ;
  snprintf(onePar,buffersize,"Min Phi = %3.2f - Max Phi = %3.2f;", fPhiCut[0], fPhiCut[1]) ;
  parList+=onePar ;
   
  return new TObjString(parList) ;
}

//_______________________________________________________
TList *  AliAnaRandomTrigger::GetCreateOutputObjects()
{  
  // Create histograms to be saved in output file and 
  // store them in fOutputContainer
  
  TList * outputContainer = new TList() ; 
  outputContainer->SetName("RandomTrigger") ; 
  
  Int_t nptbins  = GetHistogramRanges()->GetHistoPtBins(); Int_t nphibins = GetHistogramRanges()->GetHistoPhiBins(); Int_t netabins = GetHistogramRanges()->GetHistoEtaBins();
  Float_t ptmax  = GetHistogramRanges()->GetHistoPtMax();  Float_t phimax = GetHistogramRanges()->GetHistoPhiMax();  Float_t etamax = GetHistogramRanges()->GetHistoEtaMax();
  Float_t ptmin  = GetHistogramRanges()->GetHistoPtMin();  Float_t phimin = GetHistogramRanges()->GetHistoPhiMin();  Float_t etamin = GetHistogramRanges()->GetHistoEtaMin();	

  fhE  = new TH1F ("hE","Random E distribution", nptbins,ptmin,ptmax); 
  fhE->SetXTitle("E (GeV)");
  outputContainer->Add(fhE);
  
  fhPt  = new TH1F ("hPt","Random p_{T} distribution", nptbins,ptmin,ptmax); 
  fhPt->SetXTitle("p_{T} (GeV/c)");
  outputContainer->Add(fhPt);
  
  fhPhi  = new TH2F ("hPhi","Random #phi distribution",
                        nptbins,ptmin,ptmax, nphibins,phimin,phimax); 
  fhPhi->SetYTitle("#phi (rad)");
  fhPhi->SetXTitle("p_{T} (GeV/c)");
  outputContainer->Add(fhPhi);
  
  fhEta  = new TH2F ("hEta","Random #eta distribution",
                        nptbins,ptmin,ptmax, netabins,etamin,etamax); 
  fhEta->SetYTitle("#eta ");
  fhEta->SetXTitle("p_{T} (GeV/c)");
  outputContainer->Add(fhEta);
  
  fhEtaPhi  = new TH2F ("hEtaPhi","Random #eta vs #phi ",netabins,etamin,etamax, nphibins,phimin,phimax); 
  fhEtaPhi->SetXTitle("#eta ");
  fhEtaPhi->SetYTitle("#phi (rad)");  
  outputContainer->Add(fhEtaPhi);
    
  return outputContainer;

}

//___________________________________________
void AliAnaRandomTrigger::InitParameters()
{ 
  //Initialize the parameters of the analysis.
  SetOutputAODClassName("AliAODPWG4ParticleCorrelation");
  SetOutputAODName("RandomTrigger");

  AddToHistogramsName("AnaRandomTrigger_");
  
  fNRandom   = 1    ;
  fPhiCut[0] = 0.   ;
  fPhiCut[1] = TMath::TwoPi() ;
  fEtaCut[0] =-1.   ;
  fEtaCut[1] = 1.   ;
  
}

//____________________________________________________________
void AliAnaRandomTrigger::Print(const Option_t * opt) const
{
  //Print some relevant parameters set for the analysis
  if(! opt)
    return;
  
  printf("**** Print %s %s ****\n", GetName(), GetTitle() ) ;
  AliAnaCaloTrackCorrBaseClass::Print(" ");	

  printf("Detector = %s\n",  fTriggerDetectorString.Data());
  printf("Min E   = %3.2f - Max E   = %3.2f\n", GetMinPt(), GetMaxPt());
  printf("Min Eta = %3.2f - Max Eta = %3.2f\n", fEtaCut[0], fEtaCut[1]);
  printf("Min Phi = %3.2f - Max Phi = %3.2f\n", fPhiCut[0], fPhiCut[1]);

} 

//______________________________________________
void  AliAnaRandomTrigger::MakeAnalysisFillAOD() 
{
  // Do analysis and fill aods
  // Generate particle randomly
  // fNRandom particles per event
  
  for(Int_t irandom = 0; irandom < fNRandom; irandom++)
  {
    // Get the random variables of the trigger
    Float_t pt  = fRandom.Uniform(GetMinPt(), GetMaxPt());
    Float_t eta = fRandom.Uniform(fEtaCut[0], fEtaCut[1]);
    Float_t phi = fRandom.Uniform(fPhiCut[0], fPhiCut[1]);
    
    // Check if particle falls into a dead region, if inside, get new
    Bool_t excluded =  ExcludeDeadBadRegions(eta,phi);
    
    // if excluded, generate a new trigger until accepted
    while (excluded)
    {
      pt  = fRandom.Uniform(GetMinPt(), GetMaxPt());
      eta = fRandom.Uniform(fEtaCut[0], fEtaCut[1]);
      phi = fRandom.Uniform(fPhiCut[0], fPhiCut[1]);
      
      excluded = ExcludeDeadBadRegions(eta,phi);
    }
    
    // Create the AOD trigger object
    fMomentum.SetPtEtaPhiM(pt,eta,phi,0);
    
    AliAODPWG4Particle trigger = AliAODPWG4Particle(fMomentum);
    trigger.SetDetectorTag(fTriggerDetector);
    trigger.SetSModNumber(GetModuleNumber(&trigger));
    
    AliDebug(1,Form("iRandom %d, Trigger e %2.2f pt %2.2f, phi %2.2f, eta %2.2f, SM %d",
                    irandom, trigger.E(), trigger.Pt(), trigger.Phi(), trigger.Eta(), trigger.GetSModNumber()));
    
    AddAODParticle(trigger);
  }
  
  AliDebug(1,Form("Final aod branch entries %d", GetOutputAODBranch()->GetEntriesFast()));
} 

//_____________________________________________________
void  AliAnaRandomTrigger::MakeAnalysisFillHistograms() 
{
  // Fill histograms
  
  //Loop on stored AODParticles
  Int_t naod = GetOutputAODBranch()->GetEntriesFast();
  
  AliDebug(1,Form("AOD branch entries %d, fNRandom %d", naod, fNRandom));
  
  for(Int_t iaod = 0; iaod < naod ; iaod++)
  {
    AliAODPWG4Particle* trigger =  (AliAODPWG4Particle*) (GetOutputAODBranch()->At(iaod));
    
    fhPt    ->Fill(trigger->Pt());
    fhE     ->Fill(trigger->E());
    fhPhi   ->Fill(trigger->Pt(), trigger->Phi());
    fhEta   ->Fill(trigger->Pt(), trigger->Eta());
    fhEtaPhi->Fill(trigger->Eta(),trigger->Phi());
    
  }// aod branch loop
  
}


//_________________________________________________________
void AliAnaRandomTrigger::SetTriggerDetector(TString & det)
{
  // Set the detrimeter for the analysis
  
  fTriggerDetectorString = det;
  
  if     (det=="EMCAL") fTriggerDetector = kEMCAL;
  else if(det=="PHOS" ) fTriggerDetector = kPHOS;
  else if(det=="CTS")   fTriggerDetector = kCTS;
  else if(det=="DCAL")  fTriggerDetector = kDCAL;
  else if(det.Contains("DCAL") && det.Contains("PHOS")) fTriggerDetector = kDCALPHOS;
  else AliFatal(Form("Detector < %s > not known!", det.Data()));
  
}

//______________________________________________________
void AliAnaRandomTrigger::SetTriggerDetector(Int_t det)
{
  // Set the detrimeter for the analysis
  
  fTriggerDetector = det;
  
  if     (det==kEMCAL)    fTriggerDetectorString = "EMCAL";
  else if(det==kPHOS )    fTriggerDetectorString = "PHOS";
  else if(det==kCTS)      fTriggerDetectorString = "CTS";
  else if(det==kDCAL)     fTriggerDetectorString = "DCAL";
  else if(det==kDCALPHOS) fTriggerDetectorString = "DCAL_PHOS";
  else AliFatal(Form("Detector < %d > not known!", det));
  
}


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