ROOT logo
/**************************************************************************
 * Copyright(c) 1998-2009, 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$ */

//*************************************************************************
// 
// Class for monitoring of information used for open charm normalization
// (triggers, candles, ...)
//
// Origin: davide.caffarri@pd.infn.it
//
//*************************************************************************

#include <TChain.h>
#include <TTree.h>
#include <TBranch.h>
#include <TObjArray.h>
#include <TH1F.h>
#include <TH2F.h>  
#include <TCanvas.h>

#include "AliAnalysisTask.h"
#include "AliAnalysisManager.h"
#include "AliESDEvent.h"
#include "AliESDInputHandler.h"
#include "AliTriggerAnalysis.h"
#include "AliLog.h"
#include "AliCounterCollection.h"
#include "AliAnalysisTaskSEMonitNorm.h"

ClassImp(AliAnalysisTaskSEMonitNorm)

//________________________________________________________________________
AliAnalysisTaskSEMonitNorm::AliAnalysisTaskSEMonitNorm(const char *name): 
  AliAnalysisTaskSE(name), 
  fESD(0), 
  fOutput(0),
  fCounterTrigg(0),
  fCounterNotTrigg(0),
  fCounterCandleTrig(0),
  fCounterCandleNotTrig(0) 

{
  // Constructor

  // Define input and output slots here
  // Output slot #0 writes into a TList container
  DefineOutput(1, TList::Class());  //My private output
  DefineOutput(2, AliCounterCollection::Class());
  DefineOutput(3, AliCounterCollection::Class());
  DefineOutput(4, AliCounterCollection::Class());
  DefineOutput(5, AliCounterCollection::Class());

}
//________________________________________________________________________
AliAnalysisTaskSEMonitNorm::~AliAnalysisTaskSEMonitNorm()
{
  // Destructor

  // histograms are in the output list and deleted when the output
  // list is deleted by the TSelector dtor

  if (fOutput) {
    delete fOutput;
    fOutput = 0;
  }

  if (fCounterTrigg) {
    delete fCounterTrigg;
    fCounterTrigg = 0;
  }

  if (fCounterNotTrigg) {
    delete fCounterNotTrigg;
    fCounterNotTrigg = 0;
 }

  if (fCounterCandleTrig) {
    delete fCounterCandleTrig;
    fCounterCandleTrig = 0;
  }
  
  if (fCounterCandleNotTrig) {
    delete fCounterCandleNotTrig;
    fCounterCandleNotTrig = 0;
    
  }
  
  
}


//________________________________________________________________________
void AliAnalysisTaskSEMonitNorm::UserCreateOutputObjects()
{
  // Create histograms
  // Called once

  // Several histograms are more conveniently managed in a TList
  fOutput = new TList;
  fOutput->SetOwner();


  //Counter for Normalization new line
  fCounterTrigg = new AliCounterCollection("Triggered_Counter");//new line
  fCounterTrigg->AddRubric("Event", "triggered/v0andONLINE/v0andOFFLINE/v0andOFF&ON/v0andON_notOFF/v0andOFF_notON/v0orOFF/V0orON");//new line
  fCounterTrigg->AddRubric("Run", 10000000);//new line
  fCounterTrigg->Init();//new line 
  
  fCounterNotTrigg = new AliCounterCollection("NotTriggered_Counter");//new line
  fCounterNotTrigg->AddRubric("Event", "!triggered/v0andONLINE/v0andOFFLINE/v0andOFF&ON/v0andON_notOFF/v0andOFF_notON/v0orOFF/v0orON");//new line
  fCounterNotTrigg->AddRubric("Run", 10000000);//new line
  fCounterNotTrigg->Init();//new line 

  fCounterCandleTrig = new AliCounterCollection("Candle_Triggered_Counter");//new line
  fCounterCandleTrig->AddRubric("Event", "triggered/candles02/2xcandles02/primVtx/TPConly");//new line
  fCounterCandleTrig->AddRubric("Run", 10000000);//new line
  fCounterCandleTrig->Init();//new line 


  fCounterCandleNotTrig = new AliCounterCollection("Candle_NotTriggered_Counter");//new line
  fCounterCandleNotTrig->AddRubric("Event", "!triggered/candles02/2xcandles02/primVtx/TPConly");//new line
  fCounterCandleNotTrig->AddRubric("Run", 10000000);//new line
  fCounterCandleNotTrig->Init();//new line 

  
  PostData(1, fOutput);
  PostData(2, fCounterTrigg);
  PostData(3, fCounterNotTrigg);
  PostData(4, fCounterCandleTrig);
  PostData(5, fCounterCandleNotTrig);
  return;
}

//________________________________________________________________________
void AliAnalysisTaskSEMonitNorm::UserExec(Option_t *) 
{
  // Main loop
  // Called for each event
  
  if (!InputEvent()) {
    Printf("ERROR: fESD not available");
    return;
  }
  AliESDEvent* esdE = (AliESDEvent*) InputEvent();
  if (!esdE) {
    Printf("ERROR: fESD not available");
    return;
  }

  // Select PHYSICS events (type=7, for data) and MC events (type=0)
  // fCheckEventType is kFALSE if fReadMC is kTRUE, hence check is skipped
  if(esdE->GetEventType()!=7 ) return;
  
  Int_t runNumber = (Int_t)esdE->GetRunNumber();
  
  //static AliTriggerAnalysis* triggerAnalysis = new AliTriggerAnalysis();
  Bool_t eventTriggered = 0;
  
  Bool_t flag02 = kFALSE;
  Bool_t flagPVT = kFALSE;
  Bool_t flagTPCOnly70 = kFALSE;

  // use response of AliPhysicsSelection
  eventTriggered = ((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected();
  
  
  AliTriggerAnalysis *trigAnalys = new AliTriggerAnalysis();
  Bool_t v0A; 
  Bool_t v0C; 
  Bool_t v0andOFF = kFALSE;
  Bool_t v0orOFF = kFALSE;
  if(esdE){
    v0C = trigAnalys->IsOfflineTriggerFired(esdE , AliTriggerAnalysis::kV0C);
    v0A = trigAnalys->IsOfflineTriggerFired(esdE , AliTriggerAnalysis::kV0A);
    if(v0A&&v0C)v0andOFF=kTRUE;   
    if (v0A||v0C)v0orOFF=kTRUE; 
  }  

  Int_t v0Con = trigAnalys->V0Trigger(esdE, AliTriggerAnalysis::kCSide, kTRUE, kFALSE);
  Int_t v0Aon = trigAnalys->V0Trigger(esdE, AliTriggerAnalysis::kASide, kTRUE, kFALSE);

  Bool_t v0andON=kFALSE;
  if((v0Aon==AliTriggerAnalysis::kV0BB)&&(v0Con==AliTriggerAnalysis::kV0BB))v0andON=kTRUE;   

  Bool_t v0orON =((v0Aon==AliTriggerAnalysis::kV0BB)||(v0Con==AliTriggerAnalysis::kV0BB));

  Int_t trkEntries = (Int_t)esdE->GetNumberOfTracks();

  for(Int_t i=0;i<trkEntries;i++){
    AliESDtrack *track=(AliESDtrack*)esdE->GetTrack(i);
    UShort_t nClusTPC=track->GetTPCNcls();
    
    //TPConly 
    if((track->GetStatus()&AliESDtrack::kTPCin)&&TMath::Abs(track->Eta()<0.9)&&nClusTPC>=70){
      if (!flagTPCOnly70){
	flagTPCOnly70=kTRUE;
      }
    }

    //candles02
    if((nClusTPC>=70)&&(track->GetStatus()&AliESDtrack::kITSrefit)&&(track->GetStatus()&AliESDtrack::kTPCrefit)){
      if((track->Pt()>0.2)){
	if(!flag02) flag02=kTRUE;
      }
    }
  }
  
  //prim Vtx
  if(esdE){
    const AliESDVertex *vtrc1 =  esdE->GetPrimaryVertex();
    if(vtrc1 && vtrc1->GetNContributors()>0)  flagPVT=kTRUE;
  }
  
  if (eventTriggered){

    fCounterTrigg->Count(Form("Event:triggered/Run:%d", runNumber));
    if (v0andON) fCounterTrigg->Count(Form("Event:v0andONLINE/Run:%d", runNumber));
    if (v0andOFF) fCounterTrigg->Count(Form("Event:v0andOFFLINE/Run:%d", runNumber));
    if (v0andON&&v0andOFF) fCounterTrigg->Count(Form("Event:v0andOFF&ON/Run:%d", runNumber));
    if (v0andON&&!v0andOFF) fCounterTrigg->Count(Form("Event:v0andON_notOFF/Run:%d", runNumber));
    if (!v0andON&&v0andOFF) fCounterTrigg->Count(Form("Event:v0andOFF_notON/Run:%d", runNumber));
    if (v0orON)  fCounterTrigg->Count(Form("Event:v0orON/Run:%d", runNumber));
    if (v0orOFF)  fCounterTrigg->Count(Form("Event:v0orOFF/Run:%d", runNumber));

    fCounterCandleTrig->Count(Form("Event:triggered/Run:%d", runNumber));
    if (flagTPCOnly70) fCounterCandleTrig->Count(Form("Event:TPConly/Run:%d", runNumber));
    if (flag02) fCounterCandleTrig->Count(Form("Event:candles02/Run:%d", runNumber));
    if (flagPVT) fCounterCandleTrig->Count(Form("Event:primVtx/Run:%d", runNumber));

  }
  else {
    fCounterNotTrigg->Count(Form("Event:!triggered/Run:%d", runNumber));
    if (v0andON) fCounterNotTrigg->Count(Form("Event:v0andONLINE/Run:%d", runNumber));
    if (v0andOFF) fCounterNotTrigg->Count(Form("Event:v0andOFFLINE/Run:%d", runNumber));
    if (v0andON&&v0andOFF) fCounterNotTrigg->Count(Form("Event:v0andOFF&ON/Run:%d", runNumber));
    if (v0andON&&!v0andOFF) fCounterNotTrigg->Count(Form("Event:v0andON_notOFF/Run:%d", runNumber));
    if (!v0andON&&v0andOFF) fCounterNotTrigg->Count(Form("Event:v0andOFF_notON/Run:%d", runNumber));
    if (v0orON)  fCounterNotTrigg->Count(Form("Event:v0orON/Run:%d", runNumber));
    if (v0orOFF)  fCounterNotTrigg->Count(Form("Event:v0orOFF/Run:%d", runNumber));

    fCounterCandleNotTrig->Count(Form("Event:!triggered/Run:%d", runNumber));
    if (flagTPCOnly70) fCounterCandleNotTrig->Count(Form("Event:TPConly/Run:%d", runNumber));
    if (flag02) fCounterCandleNotTrig->Count(Form("Event:candles02/Run:%d", runNumber));
    if (flagPVT) fCounterCandleNotTrig->Count(Form("Event:primVtx/Run:%d", runNumber));


  }
  
  
  // Post the data already here
  PostData(1, fOutput);
  PostData(2, fCounterTrigg);
  PostData(3, fCounterNotTrigg);
  PostData(4, fCounterCandleTrig);
  PostData(5, fCounterCandleNotTrig);
  
  return;
}      

//________________________________________________________________________
void AliAnalysisTaskSEMonitNorm::Terminate(Option_t *) 
{
  // Draw result to the screen
  // Called once at the end of the query
  fOutput = dynamic_cast<TList*> (GetOutputData(1));
  if (!fOutput) {     
    Printf("ERROR: fOutput not available");
    return;
  }
  
  fCounterTrigg = dynamic_cast<AliCounterCollection*> (GetOutputData(2));
  if (!fCounterTrigg) {     
    Printf("ERROR: fCounterTrigg not available");
    return;
  }
  
  fCounterNotTrigg = dynamic_cast<AliCounterCollection*> (GetOutputData(3));
  if (!fCounterNotTrigg) {     
    Printf("ERROR: fCounterNotTrigg not available");
    return;
  }
  
  fCounterCandleTrig = dynamic_cast<AliCounterCollection*> (GetOutputData(4));
  if (!fCounterCandleTrig) {     
    Printf("ERROR: fCounterCandleTrig not available");
  return;
  }

  fCounterCandleNotTrig = dynamic_cast<AliCounterCollection*> (GetOutputData(5));
  if (!fCounterCandleNotTrig) {     
    Printf("ERROR: fCounterCandleNotTrig not available");
    return;
  }
  
  return;
}

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