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 AnalysisTaskAliPtMothFromPtDaugh                   //
//   AnalysisTaskSE used for the reconstruction of mothers particles    //
//   spectra (pT and pTMin) starting from the pT-spectra of             //
//   daughters particles.                                               //
//                                                                      //
//             Authors: Giuseppe Bruno & Fiorella Fionda                //
//                                                                      //
//////////////////////////////////////////////////////////////////////////

#include <TChain.h>

#include "AliAnalysisManager.h"
#include "AliMCEventHandler.h"
#include "AliMCEvent.h"
#include "AliStack.h"
#include "TNtuple.h"
#include "TH1F.h"
#include "TFile.h"
#include "AliLog.h"
#include "AliAnalysisTaskPtMothFromPtDaugh.h"
#include "AliPtMothFromPtDaugh.h"
#include "AliAnalysisTaskSE.h"

ClassImp(AliAnalysisTaskPtMothFromPtDaugh)

//_________________________________________________________________________________
AliAnalysisTaskPtMothFromPtDaugh::AliAnalysisTaskPtMothFromPtDaugh() :
  AliAnalysisTaskSE(),
  fPtMothDaugh(0),
  fDecayKine(0),
  fReadKineFromNtupla(0),
  fFileNtuplaName(0),
  fList(0)
{
  //
  // Default Constructor
  //
  AliInfo("Default Constructor!\n");  
}

//_________________________________________________________________________________
AliAnalysisTaskPtMothFromPtDaugh::AliAnalysisTaskPtMothFromPtDaugh(Bool_t IsNtuplaCreated) :
  AliAnalysisTaskSE("TaskAliPtMothFromDaugh"),
  fPtMothDaugh(0),
  fDecayKine(0),
  fReadKineFromNtupla(IsNtuplaCreated),
  fFileNtuplaName(0),
  fList(0)
{
    //
    // Basic AnalysisTaskSE Constructor  
    // Basic input of the analysis: TChain of galice.root files (optional)
    // Basic ouput: TList of mothers histograms (pT and pTMin) (standard)
    //              TNtupla with kinematics informations of mothers 
    //              and daughters (optional)
    // If Ntupla already exists loop on kinematics is not needed
    // therefore input is not defined
    //
    if(!IsNtuplaCreated){
           DefineInput(0,TChain::Class()); DefineOutput(2,TNtuple::Class());}
    else {AliInfo("Ntupla is already created! Loop on events is skipped!\n");}
    DefineOutput(1,TList::Class());
}

//___________________________________________________________________________________
AliAnalysisTaskPtMothFromPtDaugh::~AliAnalysisTaskPtMothFromPtDaugh()
   {
    //
    // Destructor
    //
    if(fPtMothDaugh)
     { delete fPtMothDaugh; fPtMothDaugh=0;}
    if(fDecayKine)
     { delete fDecayKine; fDecayKine=0;}
    if(fFileNtuplaName)
     { delete fFileNtuplaName; fFileNtuplaName=0;}
    if (fList)
     { delete fList; fList = 0; }
   }



//_________________________________________________________________________________
void AliAnalysisTaskPtMothFromPtDaugh::UserCreateOutputObjects()
{
  //
  // Initialise the framework objects
  //
   //
    // Initialise the framework objects. OutPut objects created are:
    // 1) TList with mothers histograms
    // 2) TNtuple with kinematics informations of mothers and daughters (optional)  
    //
    fList = new TList();
    fList->SetOwner();
    if(fReadKineFromNtupla) return;

    if(!AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()) {
     Fatal("UserCreateOutputObjects", "This task needs a MC handler");
     return;
     }
    fDecayKine=new TNtuple("DecayKine","Decay kinematics","pdgM:pxM:pyM:pzM:yM:etaM:pdgD:pxD:pyD:pzD:yD:etaD");
    return;
}

//_________________________________________________________________________________
void AliAnalysisTaskPtMothFromPtDaugh::UserExec(Option_t */*option*/)
{
    //
    // Main loop. Called for every event
    // This loop fill a TNtuple with kinematics informations for 
    // mother and daughter particles. TNtupla contains:  
    //                   pdg of Mothers
    //                    px      "
    //                    py      "
    //                    pz      "
    //                  rapidity  "
    //                   eta      "
    //                   pdg of Daughter
    //                    px      "
    //                    py      "
    //                    pz      "
    //                  rapidity  "
    //                   eta      "         
    //
    AliMCEventHandler* mcHandler = dynamic_cast<AliMCEventHandler*>(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler());
    if(!mcHandler) {AliError("Could not get MC event handler!"); return; }
    mcHandler->SetReadTR(kFALSE);
    AliMCEvent* mcEvent = mcHandler->MCEvent();
    if(!mcEvent){ AliError("Could not get MC event!"); return; }
    AliStack* stack = mcEvent->Stack();
    if(!stack){ AliError("Could not get stack!"); return; }
    Int_t nPrims = stack->GetNprimary();
    float *inf = new float[12];
    for (Int_t iTrack = 0; iTrack < nPrims; ++iTrack) {
    TParticle *part = stack->Particle(iTrack);
    Int_t pdg=TMath::Abs(part->GetPdgCode());
    Double_t y,y2;
    //check if particle is in mothers list
    Int_t labelDaugh;
    if(fPtMothDaugh->IsMothers(pdg))
           {
           //check if mother particle has a selected daugh
           if(!fPtMothDaugh->IsSelectedDaugh(part,labelDaugh,stack)) continue;
           TParticle *pDaugh=stack->Particle(labelDaugh);
           fPtMothDaugh->Rapidity(part,y);
           fPtMothDaugh->Rapidity(pDaugh,y2);

           inf[0]=part->GetPdgCode();
           inf[1]=part->Px();
           inf[2]=part->Py();
           inf[3]=part->Pz();
           inf[4]=y;
           inf[5]=part->Eta();
           inf[6]=pDaugh->GetPdgCode();
           inf[7]=pDaugh->Px();
           inf[8]=pDaugh->Py();
           inf[9]=pDaugh->Pz();
           inf[10]=y2;
           inf[11]=pDaugh->Eta();
           fDecayKine->Fill(inf);
         } //close if statement for mothers particles
        } //end of tracks loop
    PostData(2,fDecayKine);
    PostData(1,fList);
    delete [] inf;
    return;
}

//___________________________________________________________________________________
void AliAnalysisTaskPtMothFromPtDaugh::Terminate(Option_t */*option*/)
   {
    //
    // Terminate method called at the end of the events loop.
    // Get the Ntupla with kineamtics informations after the
    // events loop or read it from the file fFileNtuplaName
    // if the Ntupla is already created. Then use it to
    // evaluate pT and pTMin spectra for mothers by means
    // of the method implemented in AliPtMothFromPtDaugh
    //
    if(fReadKineFromNtupla) fDecayKine = ReadNtuplaFromFile(fFileNtuplaName);
    else{ 
         fDecayKine = dynamic_cast<TNtuple*>(GetOutputData(2));
         fList = dynamic_cast<TList*>(GetOutputData(1));
        }
    if(!fDecayKine) { AliInfo("TNtupla not available!\n"); return; }
    if(!fList) { AliInfo("TList not availble!\n"); return; }
    fPtMothDaugh->SetDecayNtupla(fDecayKine);
    fPtMothDaugh->EvaluatePtMoth();
    TH1F *fHistoPt = (TH1F*)fPtMothDaugh->GetHistoPtMother()->Clone();
    TH1F *fHistoPtMin = (TH1F*)fPtMothDaugh->GetHistoPtMinMother()->Clone();
    fList->Add(fHistoPt);
    fList->Add(fHistoPtMin);
    PostData(1,fList);
    return;
   }

//___________________________________________________________________________________
TNtuple *AliAnalysisTaskPtMothFromPtDaugh::ReadNtuplaFromFile(char *inFileName)
   {
    // 
    // Get Ntupla from the file inFileName
    // after the it is created. 
    // Input: name of the file - Output: TNtupla
    //
    TFile *f = new TFile(inFileName,"READ");
    if(!f) {AliError(Form("File %s with TNtupla doesn't exist!",inFileName)); return 0x0;}
    TNtuple *DecayKine=(TNtuple*)f->Get("DecayKine");
    if(!DecayKine) { AliError("The TNtupla doesn't exist!\n"); return 0x0;}
    return DecayKine;
   }
 AliAnalysisTaskPtMothFromPtDaugh.cxx:1
 AliAnalysisTaskPtMothFromPtDaugh.cxx:2
 AliAnalysisTaskPtMothFromPtDaugh.cxx:3
 AliAnalysisTaskPtMothFromPtDaugh.cxx:4
 AliAnalysisTaskPtMothFromPtDaugh.cxx:5
 AliAnalysisTaskPtMothFromPtDaugh.cxx:6
 AliAnalysisTaskPtMothFromPtDaugh.cxx:7
 AliAnalysisTaskPtMothFromPtDaugh.cxx:8
 AliAnalysisTaskPtMothFromPtDaugh.cxx:9
 AliAnalysisTaskPtMothFromPtDaugh.cxx:10
 AliAnalysisTaskPtMothFromPtDaugh.cxx:11
 AliAnalysisTaskPtMothFromPtDaugh.cxx:12
 AliAnalysisTaskPtMothFromPtDaugh.cxx:13
 AliAnalysisTaskPtMothFromPtDaugh.cxx:14
 AliAnalysisTaskPtMothFromPtDaugh.cxx:15
 AliAnalysisTaskPtMothFromPtDaugh.cxx:16
 AliAnalysisTaskPtMothFromPtDaugh.cxx:17
 AliAnalysisTaskPtMothFromPtDaugh.cxx:18
 AliAnalysisTaskPtMothFromPtDaugh.cxx:19
 AliAnalysisTaskPtMothFromPtDaugh.cxx:20
 AliAnalysisTaskPtMothFromPtDaugh.cxx:21
 AliAnalysisTaskPtMothFromPtDaugh.cxx:22
 AliAnalysisTaskPtMothFromPtDaugh.cxx:23
 AliAnalysisTaskPtMothFromPtDaugh.cxx:24
 AliAnalysisTaskPtMothFromPtDaugh.cxx:25
 AliAnalysisTaskPtMothFromPtDaugh.cxx:26
 AliAnalysisTaskPtMothFromPtDaugh.cxx:27
 AliAnalysisTaskPtMothFromPtDaugh.cxx:28
 AliAnalysisTaskPtMothFromPtDaugh.cxx:29
 AliAnalysisTaskPtMothFromPtDaugh.cxx:30
 AliAnalysisTaskPtMothFromPtDaugh.cxx:31
 AliAnalysisTaskPtMothFromPtDaugh.cxx:32
 AliAnalysisTaskPtMothFromPtDaugh.cxx:33
 AliAnalysisTaskPtMothFromPtDaugh.cxx:34
 AliAnalysisTaskPtMothFromPtDaugh.cxx:35
 AliAnalysisTaskPtMothFromPtDaugh.cxx:36
 AliAnalysisTaskPtMothFromPtDaugh.cxx:37
 AliAnalysisTaskPtMothFromPtDaugh.cxx:38
 AliAnalysisTaskPtMothFromPtDaugh.cxx:39
 AliAnalysisTaskPtMothFromPtDaugh.cxx:40
 AliAnalysisTaskPtMothFromPtDaugh.cxx:41
 AliAnalysisTaskPtMothFromPtDaugh.cxx:42
 AliAnalysisTaskPtMothFromPtDaugh.cxx:43
 AliAnalysisTaskPtMothFromPtDaugh.cxx:44
 AliAnalysisTaskPtMothFromPtDaugh.cxx:45
 AliAnalysisTaskPtMothFromPtDaugh.cxx:46
 AliAnalysisTaskPtMothFromPtDaugh.cxx:47
 AliAnalysisTaskPtMothFromPtDaugh.cxx:48
 AliAnalysisTaskPtMothFromPtDaugh.cxx:49
 AliAnalysisTaskPtMothFromPtDaugh.cxx:50
 AliAnalysisTaskPtMothFromPtDaugh.cxx:51
 AliAnalysisTaskPtMothFromPtDaugh.cxx:52
 AliAnalysisTaskPtMothFromPtDaugh.cxx:53
 AliAnalysisTaskPtMothFromPtDaugh.cxx:54
 AliAnalysisTaskPtMothFromPtDaugh.cxx:55
 AliAnalysisTaskPtMothFromPtDaugh.cxx:56
 AliAnalysisTaskPtMothFromPtDaugh.cxx:57
 AliAnalysisTaskPtMothFromPtDaugh.cxx:58
 AliAnalysisTaskPtMothFromPtDaugh.cxx:59
 AliAnalysisTaskPtMothFromPtDaugh.cxx:60
 AliAnalysisTaskPtMothFromPtDaugh.cxx:61
 AliAnalysisTaskPtMothFromPtDaugh.cxx:62
 AliAnalysisTaskPtMothFromPtDaugh.cxx:63
 AliAnalysisTaskPtMothFromPtDaugh.cxx:64
 AliAnalysisTaskPtMothFromPtDaugh.cxx:65
 AliAnalysisTaskPtMothFromPtDaugh.cxx:66
 AliAnalysisTaskPtMothFromPtDaugh.cxx:67
 AliAnalysisTaskPtMothFromPtDaugh.cxx:68
 AliAnalysisTaskPtMothFromPtDaugh.cxx:69
 AliAnalysisTaskPtMothFromPtDaugh.cxx:70
 AliAnalysisTaskPtMothFromPtDaugh.cxx:71
 AliAnalysisTaskPtMothFromPtDaugh.cxx:72
 AliAnalysisTaskPtMothFromPtDaugh.cxx:73
 AliAnalysisTaskPtMothFromPtDaugh.cxx:74
 AliAnalysisTaskPtMothFromPtDaugh.cxx:75
 AliAnalysisTaskPtMothFromPtDaugh.cxx:76
 AliAnalysisTaskPtMothFromPtDaugh.cxx:77
 AliAnalysisTaskPtMothFromPtDaugh.cxx:78
 AliAnalysisTaskPtMothFromPtDaugh.cxx:79
 AliAnalysisTaskPtMothFromPtDaugh.cxx:80
 AliAnalysisTaskPtMothFromPtDaugh.cxx:81
 AliAnalysisTaskPtMothFromPtDaugh.cxx:82
 AliAnalysisTaskPtMothFromPtDaugh.cxx:83
 AliAnalysisTaskPtMothFromPtDaugh.cxx:84
 AliAnalysisTaskPtMothFromPtDaugh.cxx:85
 AliAnalysisTaskPtMothFromPtDaugh.cxx:86
 AliAnalysisTaskPtMothFromPtDaugh.cxx:87
 AliAnalysisTaskPtMothFromPtDaugh.cxx:88
 AliAnalysisTaskPtMothFromPtDaugh.cxx:89
 AliAnalysisTaskPtMothFromPtDaugh.cxx:90
 AliAnalysisTaskPtMothFromPtDaugh.cxx:91
 AliAnalysisTaskPtMothFromPtDaugh.cxx:92
 AliAnalysisTaskPtMothFromPtDaugh.cxx:93
 AliAnalysisTaskPtMothFromPtDaugh.cxx:94
 AliAnalysisTaskPtMothFromPtDaugh.cxx:95
 AliAnalysisTaskPtMothFromPtDaugh.cxx:96
 AliAnalysisTaskPtMothFromPtDaugh.cxx:97
 AliAnalysisTaskPtMothFromPtDaugh.cxx:98
 AliAnalysisTaskPtMothFromPtDaugh.cxx:99
 AliAnalysisTaskPtMothFromPtDaugh.cxx:100
 AliAnalysisTaskPtMothFromPtDaugh.cxx:101
 AliAnalysisTaskPtMothFromPtDaugh.cxx:102
 AliAnalysisTaskPtMothFromPtDaugh.cxx:103
 AliAnalysisTaskPtMothFromPtDaugh.cxx:104
 AliAnalysisTaskPtMothFromPtDaugh.cxx:105
 AliAnalysisTaskPtMothFromPtDaugh.cxx:106
 AliAnalysisTaskPtMothFromPtDaugh.cxx:107
 AliAnalysisTaskPtMothFromPtDaugh.cxx:108
 AliAnalysisTaskPtMothFromPtDaugh.cxx:109
 AliAnalysisTaskPtMothFromPtDaugh.cxx:110
 AliAnalysisTaskPtMothFromPtDaugh.cxx:111
 AliAnalysisTaskPtMothFromPtDaugh.cxx:112
 AliAnalysisTaskPtMothFromPtDaugh.cxx:113
 AliAnalysisTaskPtMothFromPtDaugh.cxx:114
 AliAnalysisTaskPtMothFromPtDaugh.cxx:115
 AliAnalysisTaskPtMothFromPtDaugh.cxx:116
 AliAnalysisTaskPtMothFromPtDaugh.cxx:117
 AliAnalysisTaskPtMothFromPtDaugh.cxx:118
 AliAnalysisTaskPtMothFromPtDaugh.cxx:119
 AliAnalysisTaskPtMothFromPtDaugh.cxx:120
 AliAnalysisTaskPtMothFromPtDaugh.cxx:121
 AliAnalysisTaskPtMothFromPtDaugh.cxx:122
 AliAnalysisTaskPtMothFromPtDaugh.cxx:123
 AliAnalysisTaskPtMothFromPtDaugh.cxx:124
 AliAnalysisTaskPtMothFromPtDaugh.cxx:125
 AliAnalysisTaskPtMothFromPtDaugh.cxx:126
 AliAnalysisTaskPtMothFromPtDaugh.cxx:127
 AliAnalysisTaskPtMothFromPtDaugh.cxx:128
 AliAnalysisTaskPtMothFromPtDaugh.cxx:129
 AliAnalysisTaskPtMothFromPtDaugh.cxx:130
 AliAnalysisTaskPtMothFromPtDaugh.cxx:131
 AliAnalysisTaskPtMothFromPtDaugh.cxx:132
 AliAnalysisTaskPtMothFromPtDaugh.cxx:133
 AliAnalysisTaskPtMothFromPtDaugh.cxx:134
 AliAnalysisTaskPtMothFromPtDaugh.cxx:135
 AliAnalysisTaskPtMothFromPtDaugh.cxx:136
 AliAnalysisTaskPtMothFromPtDaugh.cxx:137
 AliAnalysisTaskPtMothFromPtDaugh.cxx:138
 AliAnalysisTaskPtMothFromPtDaugh.cxx:139
 AliAnalysisTaskPtMothFromPtDaugh.cxx:140
 AliAnalysisTaskPtMothFromPtDaugh.cxx:141
 AliAnalysisTaskPtMothFromPtDaugh.cxx:142
 AliAnalysisTaskPtMothFromPtDaugh.cxx:143
 AliAnalysisTaskPtMothFromPtDaugh.cxx:144
 AliAnalysisTaskPtMothFromPtDaugh.cxx:145
 AliAnalysisTaskPtMothFromPtDaugh.cxx:146
 AliAnalysisTaskPtMothFromPtDaugh.cxx:147
 AliAnalysisTaskPtMothFromPtDaugh.cxx:148
 AliAnalysisTaskPtMothFromPtDaugh.cxx:149
 AliAnalysisTaskPtMothFromPtDaugh.cxx:150
 AliAnalysisTaskPtMothFromPtDaugh.cxx:151
 AliAnalysisTaskPtMothFromPtDaugh.cxx:152
 AliAnalysisTaskPtMothFromPtDaugh.cxx:153
 AliAnalysisTaskPtMothFromPtDaugh.cxx:154
 AliAnalysisTaskPtMothFromPtDaugh.cxx:155
 AliAnalysisTaskPtMothFromPtDaugh.cxx:156
 AliAnalysisTaskPtMothFromPtDaugh.cxx:157
 AliAnalysisTaskPtMothFromPtDaugh.cxx:158
 AliAnalysisTaskPtMothFromPtDaugh.cxx:159
 AliAnalysisTaskPtMothFromPtDaugh.cxx:160
 AliAnalysisTaskPtMothFromPtDaugh.cxx:161
 AliAnalysisTaskPtMothFromPtDaugh.cxx:162
 AliAnalysisTaskPtMothFromPtDaugh.cxx:163
 AliAnalysisTaskPtMothFromPtDaugh.cxx:164
 AliAnalysisTaskPtMothFromPtDaugh.cxx:165
 AliAnalysisTaskPtMothFromPtDaugh.cxx:166
 AliAnalysisTaskPtMothFromPtDaugh.cxx:167
 AliAnalysisTaskPtMothFromPtDaugh.cxx:168
 AliAnalysisTaskPtMothFromPtDaugh.cxx:169
 AliAnalysisTaskPtMothFromPtDaugh.cxx:170
 AliAnalysisTaskPtMothFromPtDaugh.cxx:171
 AliAnalysisTaskPtMothFromPtDaugh.cxx:172
 AliAnalysisTaskPtMothFromPtDaugh.cxx:173
 AliAnalysisTaskPtMothFromPtDaugh.cxx:174
 AliAnalysisTaskPtMothFromPtDaugh.cxx:175
 AliAnalysisTaskPtMothFromPtDaugh.cxx:176
 AliAnalysisTaskPtMothFromPtDaugh.cxx:177
 AliAnalysisTaskPtMothFromPtDaugh.cxx:178
 AliAnalysisTaskPtMothFromPtDaugh.cxx:179
 AliAnalysisTaskPtMothFromPtDaugh.cxx:180
 AliAnalysisTaskPtMothFromPtDaugh.cxx:181
 AliAnalysisTaskPtMothFromPtDaugh.cxx:182
 AliAnalysisTaskPtMothFromPtDaugh.cxx:183
 AliAnalysisTaskPtMothFromPtDaugh.cxx:184
 AliAnalysisTaskPtMothFromPtDaugh.cxx:185
 AliAnalysisTaskPtMothFromPtDaugh.cxx:186
 AliAnalysisTaskPtMothFromPtDaugh.cxx:187
 AliAnalysisTaskPtMothFromPtDaugh.cxx:188
 AliAnalysisTaskPtMothFromPtDaugh.cxx:189
 AliAnalysisTaskPtMothFromPtDaugh.cxx:190
 AliAnalysisTaskPtMothFromPtDaugh.cxx:191
 AliAnalysisTaskPtMothFromPtDaugh.cxx:192
 AliAnalysisTaskPtMothFromPtDaugh.cxx:193
 AliAnalysisTaskPtMothFromPtDaugh.cxx:194
 AliAnalysisTaskPtMothFromPtDaugh.cxx:195
 AliAnalysisTaskPtMothFromPtDaugh.cxx:196
 AliAnalysisTaskPtMothFromPtDaugh.cxx:197
 AliAnalysisTaskPtMothFromPtDaugh.cxx:198
 AliAnalysisTaskPtMothFromPtDaugh.cxx:199
 AliAnalysisTaskPtMothFromPtDaugh.cxx:200
 AliAnalysisTaskPtMothFromPtDaugh.cxx:201
 AliAnalysisTaskPtMothFromPtDaugh.cxx:202
 AliAnalysisTaskPtMothFromPtDaugh.cxx:203
 AliAnalysisTaskPtMothFromPtDaugh.cxx:204
 AliAnalysisTaskPtMothFromPtDaugh.cxx:205
 AliAnalysisTaskPtMothFromPtDaugh.cxx:206
 AliAnalysisTaskPtMothFromPtDaugh.cxx:207
 AliAnalysisTaskPtMothFromPtDaugh.cxx:208
 AliAnalysisTaskPtMothFromPtDaugh.cxx:209
 AliAnalysisTaskPtMothFromPtDaugh.cxx:210
 AliAnalysisTaskPtMothFromPtDaugh.cxx:211
 AliAnalysisTaskPtMothFromPtDaugh.cxx:212
 AliAnalysisTaskPtMothFromPtDaugh.cxx:213
 AliAnalysisTaskPtMothFromPtDaugh.cxx:214
 AliAnalysisTaskPtMothFromPtDaugh.cxx:215
 AliAnalysisTaskPtMothFromPtDaugh.cxx:216
 AliAnalysisTaskPtMothFromPtDaugh.cxx:217
 AliAnalysisTaskPtMothFromPtDaugh.cxx:218
 AliAnalysisTaskPtMothFromPtDaugh.cxx:219
 AliAnalysisTaskPtMothFromPtDaugh.cxx:220
 AliAnalysisTaskPtMothFromPtDaugh.cxx:221
 AliAnalysisTaskPtMothFromPtDaugh.cxx:222
 AliAnalysisTaskPtMothFromPtDaugh.cxx:223
 AliAnalysisTaskPtMothFromPtDaugh.cxx:224
 AliAnalysisTaskPtMothFromPtDaugh.cxx:225
 AliAnalysisTaskPtMothFromPtDaugh.cxx:226
 AliAnalysisTaskPtMothFromPtDaugh.cxx:227
 AliAnalysisTaskPtMothFromPtDaugh.cxx:228
 AliAnalysisTaskPtMothFromPtDaugh.cxx:229
 AliAnalysisTaskPtMothFromPtDaugh.cxx:230