ROOT logo
//-*- Mode: C++ -*-

#include "TMath.h"
#include "TAxis.h"
#include "TSystem.h" 
#include "TProfile.h" 
#include "TH2F.h" 
#include "TH3F.h" 
#include "TFile.h" 
#include "TPRegexp.h"

#include "AliStack.h"
#include "AliMCEvent.h"
#include "AliMCParticle.h"
#include "AliESDtrackCuts.h"
#include "AliESDInputHandler.h"
#include "AliESDpid.h"
#include "AliCentrality.h"
#include "AliTracker.h"
#include "AliAODInputHandler.h"
#include "AliAODEvent.h"
#include "AliAODTrack.h"
#include "AliAODMCParticle.h"

#include "AliAnalysisNetParticleQA.h"

using namespace std;

/**
 * Class for for NetParticle QA
 * -- Create input for QA
 * Authors: Jochen Thaeder <jochen@thaeder.de>
 *          Michael Weber <m.weber@cern.ch>
 */

ClassImp(AliAnalysisNetParticleQA)

/*
 * ---------------------------------------------------------------------------------
 *                            Constructor / Destructor
 * ---------------------------------------------------------------------------------
 */

//________________________________________________________________________
AliAnalysisNetParticleQA::AliAnalysisNetParticleQA() :
  AliAnalysisNetParticleBase("QA", "QA"),

  fHnQA(NULL) {
  // Constructor   
  
  AliLog::SetClassDebugLevel("AliAnalysisNetParticleQA",10);
}

//________________________________________________________________________
AliAnalysisNetParticleQA::~AliAnalysisNetParticleQA() {
  // Destructor

  return;
}

/*
 * ---------------------------------------------------------------------------------
 *                                 Public Methods
 * ---------------------------------------------------------------------------------
 */


//________________________________________________________________________
void AliAnalysisNetParticleQA::CreateHistograms() {
  // -- Add histograms to outlist

  // ------------------------------------------------------------------
  // -- Create THnSparseF - QA
  // ------------------------------------------------------------------

  Int_t    binHnQA[16] = {AliAnalysisNetParticleHelper::fgkfHistNBinsCent, AliAnalysisNetParticleHelper::fgkfHistNBinsEta,  //       cent |       eta
			  AliAnalysisNetParticleHelper::fgkfHistNBinsRap,  AliAnalysisNetParticleHelper::fgkfHistNBinsPhi,  //          y |       phi
			  AliAnalysisNetParticleHelper::fgkfHistNBinsPt,   AliAnalysisNetParticleHelper::fgkfHistNBinsPt,   //         pt |    pInner
			  AliAnalysisNetParticleHelper::fgkfHistNBinsSign, 500,                                             //       sign | TPCsignal |  
			  50, 50, 50,                                                                                       //  nSigmaITS | nSigmaTPC |  nSigmaTOF
			  50, 50, 50, 50,                                                                                   //  DCAr      |      DCAz | nSigmaDCAr | nSigmaDCAz 
			  3};                                                                                               //  MCisProbe  
  
  Double_t minHnQA[16] = {AliAnalysisNetParticleHelper::fgkfHistRangeCent[0], AliAnalysisNetParticleHelper::fgkfHistRangeEta[0], 
			  AliAnalysisNetParticleHelper::fgkfHistRangeRap[0],  AliAnalysisNetParticleHelper::fgkfHistRangePhi[0], 
			  AliAnalysisNetParticleHelper::fgkfHistRangePt[0],   AliAnalysisNetParticleHelper::fgkfHistRangePt[0],   
			  AliAnalysisNetParticleHelper::fgkfHistRangeSign[0], 30, 
			  -10., -10., -10.,
			  -10., -10., -10., -10., 
			  -0.5};
  
  Double_t maxHnQA[16] = {AliAnalysisNetParticleHelper::fgkfHistRangeCent[1], AliAnalysisNetParticleHelper::fgkfHistRangeEta[1], 
			  AliAnalysisNetParticleHelper::fgkfHistRangeRap[1],  AliAnalysisNetParticleHelper::fgkfHistRangePhi[1], 
			  AliAnalysisNetParticleHelper::fgkfHistRangePt[1],   AliAnalysisNetParticleHelper::fgkfHistRangePt[1],
			  AliAnalysisNetParticleHelper::fgkfHistRangeSign[1], 500,
			  10., 10., 10.,
			  10.,  10., 10., 10., 
			  2.5};
  

  fHnQA = new THnSparseF("hnQA", "cent:eta:y:phi:pt:pInner:sign:TPCsignal:nSigmaITS:nSigmaTPC:nSigmaTOF:DCAr:DCAz:nSigmaDCAr:nSigmaDCAz:MCisProbe",
				 16, binHnQA, minHnQA, maxHnQA);
  
  fHnQA->Sumw2();
  
  fHnQA->GetAxis(0)->SetTitle("centrality");                   //  0-5|5-10|10-20|20-30|30-40|40-50|50-60|60-70|70-80|80-90 --> 10 bins
  fHnQA->GetAxis(1)->SetTitle("#eta");                         //  eta  [-0.9, 0.9]
  fHnQA->GetAxis(2)->SetTitle("#it{y}");                       //  rapidity [-0.5, 0.5]
  fHnQA->GetAxis(3)->SetTitle("#varphi");                      //  phi  [ 0. , 2Pi]
  fHnQA->GetAxis(4)->SetTitle("#it{p}_{T} (GeV/#it{c})");      //  pt   [ 0.46, 2.22]
  fHnQA->GetAxis(5)->SetTitle("#it{p}_{Inner} (GeV/#it{c})");  //  pInner [ 0.1, 3.0]
  fHnQA->GetAxis(6)->SetTitle("sign");                         //  -1 | 0 | +1 
  
  fHnQA->GetAxis(7)->SetTitle("TPC signal");                   //  TPCsignal [30, 500]
  fHnQA->GetAxis(8)->SetTitle("n #sigma ITS");                 //  nSigma ITS [-10, 10]
  fHnQA->GetAxis(9)->SetTitle("n #sigma TPC");                 //  nSigma TPC [-10, 10]
  fHnQA->GetAxis(10)->SetTitle("n #sigma TOF");                //  nSigma TOF [-10, 10]
  
  fHnQA->GetAxis(11)->SetTitle("DCAr");                        //  DCAr [-10, 10]
  fHnQA->GetAxis(12)->SetTitle("DCAz");                        //  DCAz [-10, 10]
  fHnQA->GetAxis(13)->SetTitle("n #sigma #sqrt(Cdd)/DCAr");    //  nSigma DCAr [-10, 10]
  fHnQA->GetAxis(14)->SetTitle("n #sigma #sqrt(Czz)/DCAz");    //  nSigma DCAz [-10, 10]
  fHnQA->GetAxis(15)->SetTitle("MCisProbe");                   //  0 | 1 (isProbeParticle) | 2 (isProbeParticle wrong sign) 
  
  fHelper->BinLogAxis(fHnQA, 4);
  fHelper->BinLogAxis(fHnQA, 5);

  return;
}

//________________________________________________________________________
void AliAnalysisNetParticleQA::Process() {
  // -- Process ESD/AOD tracks and fill QA histogram

  // -- Get ranges for AOD particles
  Float_t etaRange[2];
  fESDTrackCuts->GetEtaRange(etaRange[0],etaRange[1]);

  Float_t ptRange[2];
  fESDTrackCuts->GetPtRange(ptRange[0],ptRange[1]);
  
  // -- Track Loop
  for (Int_t idxTrack = 0; idxTrack < fNTracks; ++idxTrack) {
    
    AliVTrack *track = (fESD) ? static_cast<AliVTrack*>(fESD->GetTrack(idxTrack)) : static_cast<AliVTrack*>(fAOD->GetTrack(idxTrack)); 

    // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    // -- Check track cuts
    // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

    // -- Check if track is accepted for basic parameters
    if (!fHelper->IsTrackAcceptedBasicCharged(track))
      continue;
    
    // -- Check if accepted - ESD
    if (fESD && !fESDTrackCuts->AcceptTrack(dynamic_cast<AliESDtrack*>(track)))
      continue;
    
    // -- Check if accepted - AOD
    if (fAOD){
      AliAODTrack * trackAOD = dynamic_cast<AliAODTrack*>(track);
      
      if (!trackAOD) {
	AliError("Pointer to dynamic_cast<AliAODTrack*>(track) = ZERO");
	continue;
      }
      if (!trackAOD->TestFilterBit(fAODtrackCutBit))
	continue;
      
      // -- Check if in pT and eta range (is done in ESDTrackCuts for ESDs)
      if(!(track->Pt() > ptRange[0] && track->Pt() <= ptRange[1] && TMath::Abs(track->Eta()) <= etaRange[1]))
	continue;
    }

    // -- Check if accepted in rapidity window -- for identified particles
    //    for charged particles -- eta check is done in the trackcuts
    Double_t yP;
    if (fHelper->GetUsePID() && !fHelper->IsTrackAcceptedRapidity(track, yP))
      continue;

    // -- Check if accepted with thighter DCA cuts
    // -- returns kTRUE for AODs for now : MW
    if (!fHelper->IsTrackAcceptedDCA(track))
      continue;

    // -- Check if accepted by PID from TPC or TPC+TOF
    Double_t pid[3];
    if (!fHelper->IsTrackAcceptedPID(track, pid))
      continue;

    // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    // -- Fill Track
    // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    
    // -- Check if probe particle
    Int_t isProbeParticle = 0; 
    if (fIsMC) {
      Int_t label  = TMath::Abs(track->GetLabel());
      
      AliVParticle* particle = (fESD) ? fMCEvent->GetTrack(label) : static_cast<AliVParticle*>(fArrayMC->At(label));
      if (particle) {
	if (TMath::Abs(particle->PdgCode()) == fPdgCode) {
	  ++isProbeParticle;
	  if (particle->PdgCode() != (track->Charge()*fPdgCode))
	    ++isProbeParticle;
	}
      }
    }

    // -- Get dca r/z
    Float_t dca[] = {0.,0.};     // dca_xy, dca_z,
    Float_t cov[] = {0.,0.,0.}; // sigma_xy, sigma_xy_z, sigma_z
    if (fESD)
      (static_cast<AliESDtrack*>(track))->GetImpactParameters(dca,cov);

    Float_t dcaRoverCdd = ( TMath::Sqrt(cov[0]) != 0. )  ? dca[0]/TMath::Sqrt(cov[0]) : -9.99;
    Float_t dcaZoverCzz = ( TMath::Sqrt(cov[2]) != 0. )  ? dca[1]/TMath::Sqrt(cov[2]) : -9.99;

    if (!fHelper->GetUsePID())  
      yP = track->Eta();
    
    Double_t aTrack[16] = {
      Double_t(fCentralityBin),               //  0 centrality 
      track->Eta(),                           //  1 eta
      yP,                                     //  2 rapidity
      track->Phi(),                           //  3 phi
      track->Pt(),                            //  4 pt
      track->GetTPCmomentum(),                //  5 pInner
      static_cast<Double_t>(track->Charge()),                        //  6 sign
      track->GetTPCsignal(),                  //  7 TPC dE/dx
      pid[0],                                 //  8 n Sigma ITS
      pid[1],                                 //  9 n Sigma TPC
      pid[2],                                 // 10 n Sigma TOF
      dca[0],                                 // 11 dca r
      dca[1],                                 // 12 dca z
      dcaRoverCdd,                            // 13 sqrt(cov[dd])
      dcaZoverCzz,                            // 14 sqrt(cov[zz])
      static_cast<Double_t>(isProbeParticle)                         // 15 isProbe
    };

   fHnQA->Fill(aTrack);

  } // for (Int_t idxTrack = 0; idxTrack < fNTracks; ++idxTrack) {

  return;
}
 AliAnalysisNetParticleQA.cxx:1
 AliAnalysisNetParticleQA.cxx:2
 AliAnalysisNetParticleQA.cxx:3
 AliAnalysisNetParticleQA.cxx:4
 AliAnalysisNetParticleQA.cxx:5
 AliAnalysisNetParticleQA.cxx:6
 AliAnalysisNetParticleQA.cxx:7
 AliAnalysisNetParticleQA.cxx:8
 AliAnalysisNetParticleQA.cxx:9
 AliAnalysisNetParticleQA.cxx:10
 AliAnalysisNetParticleQA.cxx:11
 AliAnalysisNetParticleQA.cxx:12
 AliAnalysisNetParticleQA.cxx:13
 AliAnalysisNetParticleQA.cxx:14
 AliAnalysisNetParticleQA.cxx:15
 AliAnalysisNetParticleQA.cxx:16
 AliAnalysisNetParticleQA.cxx:17
 AliAnalysisNetParticleQA.cxx:18
 AliAnalysisNetParticleQA.cxx:19
 AliAnalysisNetParticleQA.cxx:20
 AliAnalysisNetParticleQA.cxx:21
 AliAnalysisNetParticleQA.cxx:22
 AliAnalysisNetParticleQA.cxx:23
 AliAnalysisNetParticleQA.cxx:24
 AliAnalysisNetParticleQA.cxx:25
 AliAnalysisNetParticleQA.cxx:26
 AliAnalysisNetParticleQA.cxx:27
 AliAnalysisNetParticleQA.cxx:28
 AliAnalysisNetParticleQA.cxx:29
 AliAnalysisNetParticleQA.cxx:30
 AliAnalysisNetParticleQA.cxx:31
 AliAnalysisNetParticleQA.cxx:32
 AliAnalysisNetParticleQA.cxx:33
 AliAnalysisNetParticleQA.cxx:34
 AliAnalysisNetParticleQA.cxx:35
 AliAnalysisNetParticleQA.cxx:36
 AliAnalysisNetParticleQA.cxx:37
 AliAnalysisNetParticleQA.cxx:38
 AliAnalysisNetParticleQA.cxx:39
 AliAnalysisNetParticleQA.cxx:40
 AliAnalysisNetParticleQA.cxx:41
 AliAnalysisNetParticleQA.cxx:42
 AliAnalysisNetParticleQA.cxx:43
 AliAnalysisNetParticleQA.cxx:44
 AliAnalysisNetParticleQA.cxx:45
 AliAnalysisNetParticleQA.cxx:46
 AliAnalysisNetParticleQA.cxx:47
 AliAnalysisNetParticleQA.cxx:48
 AliAnalysisNetParticleQA.cxx:49
 AliAnalysisNetParticleQA.cxx:50
 AliAnalysisNetParticleQA.cxx:51
 AliAnalysisNetParticleQA.cxx:52
 AliAnalysisNetParticleQA.cxx:53
 AliAnalysisNetParticleQA.cxx:54
 AliAnalysisNetParticleQA.cxx:55
 AliAnalysisNetParticleQA.cxx:56
 AliAnalysisNetParticleQA.cxx:57
 AliAnalysisNetParticleQA.cxx:58
 AliAnalysisNetParticleQA.cxx:59
 AliAnalysisNetParticleQA.cxx:60
 AliAnalysisNetParticleQA.cxx:61
 AliAnalysisNetParticleQA.cxx:62
 AliAnalysisNetParticleQA.cxx:63
 AliAnalysisNetParticleQA.cxx:64
 AliAnalysisNetParticleQA.cxx:65
 AliAnalysisNetParticleQA.cxx:66
 AliAnalysisNetParticleQA.cxx:67
 AliAnalysisNetParticleQA.cxx:68
 AliAnalysisNetParticleQA.cxx:69
 AliAnalysisNetParticleQA.cxx:70
 AliAnalysisNetParticleQA.cxx:71
 AliAnalysisNetParticleQA.cxx:72
 AliAnalysisNetParticleQA.cxx:73
 AliAnalysisNetParticleQA.cxx:74
 AliAnalysisNetParticleQA.cxx:75
 AliAnalysisNetParticleQA.cxx:76
 AliAnalysisNetParticleQA.cxx:77
 AliAnalysisNetParticleQA.cxx:78
 AliAnalysisNetParticleQA.cxx:79
 AliAnalysisNetParticleQA.cxx:80
 AliAnalysisNetParticleQA.cxx:81
 AliAnalysisNetParticleQA.cxx:82
 AliAnalysisNetParticleQA.cxx:83
 AliAnalysisNetParticleQA.cxx:84
 AliAnalysisNetParticleQA.cxx:85
 AliAnalysisNetParticleQA.cxx:86
 AliAnalysisNetParticleQA.cxx:87
 AliAnalysisNetParticleQA.cxx:88
 AliAnalysisNetParticleQA.cxx:89
 AliAnalysisNetParticleQA.cxx:90
 AliAnalysisNetParticleQA.cxx:91
 AliAnalysisNetParticleQA.cxx:92
 AliAnalysisNetParticleQA.cxx:93
 AliAnalysisNetParticleQA.cxx:94
 AliAnalysisNetParticleQA.cxx:95
 AliAnalysisNetParticleQA.cxx:96
 AliAnalysisNetParticleQA.cxx:97
 AliAnalysisNetParticleQA.cxx:98
 AliAnalysisNetParticleQA.cxx:99
 AliAnalysisNetParticleQA.cxx:100
 AliAnalysisNetParticleQA.cxx:101
 AliAnalysisNetParticleQA.cxx:102
 AliAnalysisNetParticleQA.cxx:103
 AliAnalysisNetParticleQA.cxx:104
 AliAnalysisNetParticleQA.cxx:105
 AliAnalysisNetParticleQA.cxx:106
 AliAnalysisNetParticleQA.cxx:107
 AliAnalysisNetParticleQA.cxx:108
 AliAnalysisNetParticleQA.cxx:109
 AliAnalysisNetParticleQA.cxx:110
 AliAnalysisNetParticleQA.cxx:111
 AliAnalysisNetParticleQA.cxx:112
 AliAnalysisNetParticleQA.cxx:113
 AliAnalysisNetParticleQA.cxx:114
 AliAnalysisNetParticleQA.cxx:115
 AliAnalysisNetParticleQA.cxx:116
 AliAnalysisNetParticleQA.cxx:117
 AliAnalysisNetParticleQA.cxx:118
 AliAnalysisNetParticleQA.cxx:119
 AliAnalysisNetParticleQA.cxx:120
 AliAnalysisNetParticleQA.cxx:121
 AliAnalysisNetParticleQA.cxx:122
 AliAnalysisNetParticleQA.cxx:123
 AliAnalysisNetParticleQA.cxx:124
 AliAnalysisNetParticleQA.cxx:125
 AliAnalysisNetParticleQA.cxx:126
 AliAnalysisNetParticleQA.cxx:127
 AliAnalysisNetParticleQA.cxx:128
 AliAnalysisNetParticleQA.cxx:129
 AliAnalysisNetParticleQA.cxx:130
 AliAnalysisNetParticleQA.cxx:131
 AliAnalysisNetParticleQA.cxx:132
 AliAnalysisNetParticleQA.cxx:133
 AliAnalysisNetParticleQA.cxx:134
 AliAnalysisNetParticleQA.cxx:135
 AliAnalysisNetParticleQA.cxx:136
 AliAnalysisNetParticleQA.cxx:137
 AliAnalysisNetParticleQA.cxx:138
 AliAnalysisNetParticleQA.cxx:139
 AliAnalysisNetParticleQA.cxx:140
 AliAnalysisNetParticleQA.cxx:141
 AliAnalysisNetParticleQA.cxx:142
 AliAnalysisNetParticleQA.cxx:143
 AliAnalysisNetParticleQA.cxx:144
 AliAnalysisNetParticleQA.cxx:145
 AliAnalysisNetParticleQA.cxx:146
 AliAnalysisNetParticleQA.cxx:147
 AliAnalysisNetParticleQA.cxx:148
 AliAnalysisNetParticleQA.cxx:149
 AliAnalysisNetParticleQA.cxx:150
 AliAnalysisNetParticleQA.cxx:151
 AliAnalysisNetParticleQA.cxx:152
 AliAnalysisNetParticleQA.cxx:153
 AliAnalysisNetParticleQA.cxx:154
 AliAnalysisNetParticleQA.cxx:155
 AliAnalysisNetParticleQA.cxx:156
 AliAnalysisNetParticleQA.cxx:157
 AliAnalysisNetParticleQA.cxx:158
 AliAnalysisNetParticleQA.cxx:159
 AliAnalysisNetParticleQA.cxx:160
 AliAnalysisNetParticleQA.cxx:161
 AliAnalysisNetParticleQA.cxx:162
 AliAnalysisNetParticleQA.cxx:163
 AliAnalysisNetParticleQA.cxx:164
 AliAnalysisNetParticleQA.cxx:165
 AliAnalysisNetParticleQA.cxx:166
 AliAnalysisNetParticleQA.cxx:167
 AliAnalysisNetParticleQA.cxx:168
 AliAnalysisNetParticleQA.cxx:169
 AliAnalysisNetParticleQA.cxx:170
 AliAnalysisNetParticleQA.cxx:171
 AliAnalysisNetParticleQA.cxx:172
 AliAnalysisNetParticleQA.cxx:173
 AliAnalysisNetParticleQA.cxx:174
 AliAnalysisNetParticleQA.cxx:175
 AliAnalysisNetParticleQA.cxx:176
 AliAnalysisNetParticleQA.cxx:177
 AliAnalysisNetParticleQA.cxx:178
 AliAnalysisNetParticleQA.cxx:179
 AliAnalysisNetParticleQA.cxx:180
 AliAnalysisNetParticleQA.cxx:181
 AliAnalysisNetParticleQA.cxx:182
 AliAnalysisNetParticleQA.cxx:183
 AliAnalysisNetParticleQA.cxx:184
 AliAnalysisNetParticleQA.cxx:185
 AliAnalysisNetParticleQA.cxx:186
 AliAnalysisNetParticleQA.cxx:187
 AliAnalysisNetParticleQA.cxx:188
 AliAnalysisNetParticleQA.cxx:189
 AliAnalysisNetParticleQA.cxx:190
 AliAnalysisNetParticleQA.cxx:191
 AliAnalysisNetParticleQA.cxx:192
 AliAnalysisNetParticleQA.cxx:193
 AliAnalysisNetParticleQA.cxx:194
 AliAnalysisNetParticleQA.cxx:195
 AliAnalysisNetParticleQA.cxx:196
 AliAnalysisNetParticleQA.cxx:197
 AliAnalysisNetParticleQA.cxx:198
 AliAnalysisNetParticleQA.cxx:199
 AliAnalysisNetParticleQA.cxx:200
 AliAnalysisNetParticleQA.cxx:201
 AliAnalysisNetParticleQA.cxx:202
 AliAnalysisNetParticleQA.cxx:203
 AliAnalysisNetParticleQA.cxx:204
 AliAnalysisNetParticleQA.cxx:205
 AliAnalysisNetParticleQA.cxx:206
 AliAnalysisNetParticleQA.cxx:207
 AliAnalysisNetParticleQA.cxx:208
 AliAnalysisNetParticleQA.cxx:209
 AliAnalysisNetParticleQA.cxx:210
 AliAnalysisNetParticleQA.cxx:211
 AliAnalysisNetParticleQA.cxx:212
 AliAnalysisNetParticleQA.cxx:213
 AliAnalysisNetParticleQA.cxx:214
 AliAnalysisNetParticleQA.cxx:215
 AliAnalysisNetParticleQA.cxx:216
 AliAnalysisNetParticleQA.cxx:217
 AliAnalysisNetParticleQA.cxx:218
 AliAnalysisNetParticleQA.cxx:219
 AliAnalysisNetParticleQA.cxx:220
 AliAnalysisNetParticleQA.cxx:221
 AliAnalysisNetParticleQA.cxx:222
 AliAnalysisNetParticleQA.cxx:223
 AliAnalysisNetParticleQA.cxx:224
 AliAnalysisNetParticleQA.cxx:225
 AliAnalysisNetParticleQA.cxx:226
 AliAnalysisNetParticleQA.cxx:227
 AliAnalysisNetParticleQA.cxx:228
 AliAnalysisNetParticleQA.cxx:229
 AliAnalysisNetParticleQA.cxx:230
 AliAnalysisNetParticleQA.cxx:231
 AliAnalysisNetParticleQA.cxx:232
 AliAnalysisNetParticleQA.cxx:233
 AliAnalysisNetParticleQA.cxx:234
 AliAnalysisNetParticleQA.cxx:235
 AliAnalysisNetParticleQA.cxx:236
 AliAnalysisNetParticleQA.cxx:237
 AliAnalysisNetParticleQA.cxx:238
 AliAnalysisNetParticleQA.cxx:239
 AliAnalysisNetParticleQA.cxx:240
 AliAnalysisNetParticleQA.cxx:241
 AliAnalysisNetParticleQA.cxx:242
 AliAnalysisNetParticleQA.cxx:243
 AliAnalysisNetParticleQA.cxx:244
 AliAnalysisNetParticleQA.cxx:245
 AliAnalysisNetParticleQA.cxx:246