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.                  *
 **************************************************************************/
//
// Class AliHFEV0taginfo
// Creates list of tracks with V0 information
//
// Author:
//   Jan Wagner <J.Wagner@gsi.de>
//




#include <iostream>
#include <TClass.h>
#include <TList.h>
#include <TMath.h>


#include "AliLog.h"
#include "AliAODEvent.h"
#include "AliAODv0.h"
#include "AliESDEvent.h"
#include "AliESDv0.h"

#include "AliHFEV0taginfo.h"


ClassImp(AliHFEV0taginfo)
ClassImp(AliHFEV0taginfo::AliHFEV0tag)

//___________________________________________________________________
AliHFEV0taginfo::AliHFEV0taginfo():
    TNamed(), 
    fIsAODana(NULL),
    fTaggedTracks(NULL),
    fV0finder(NULL),
    fAODV0finder(NULL)
{
    //
    // default constructor
    //
}
//___________________________________________________________________
AliHFEV0taginfo::AliHFEV0taginfo(const char* name):
    TNamed(name, ""), 
    fIsAODana(kFALSE),
    fTaggedTracks(NULL),
    fV0finder(NULL),
    fAODV0finder(NULL)
{
    //
    // constructor
    //

    fTaggedTracks = new TList();
    if(fTaggedTracks){
        fTaggedTracks->SetOwner();
    }
    fV0finder = new AliESDv0KineCuts();
    fAODV0finder = new AliAODv0KineCuts();
}

//__________________________________________________________________
AliHFEV0taginfo::AliHFEV0taginfo(const AliHFEV0taginfo &ref):
  TNamed(ref),
    fIsAODana(ref.fIsAODana),
    fTaggedTracks(NULL),
    fV0finder(ref.fV0finder),
    fAODV0finder(ref.fAODV0finder)
{
  //
  // Copy constructor
  // creates a new object with new (empty) containers
  //
    fTaggedTracks = new TList();
    if(fTaggedTracks){
        fTaggedTracks->SetOwner();
    }


    AliHFEV0tag *tmp = NULL;
    for(Int_t ien = 0; ien < ref.fTaggedTracks->GetEntries(); ien++){
        tmp = static_cast<AliHFEV0tag *>(ref.fTaggedTracks->At(ien));
        fTaggedTracks->Add(new AliHFEV0tag(tmp->GetTrackID(),tmp->GetPinfo(),tmp->GetProdR()));
    }
}

//__________________________________________________________________
AliHFEV0taginfo &AliHFEV0taginfo::operator=(const AliHFEV0taginfo &ref){
    //
    // Assignment operator
    // Cleanup old object, create a new one with new containers inside
    //
    if(this == &ref) return *this;
    this->~AliHFEV0taginfo(); 
    TNamed::operator=(ref);
    fIsAODana = ref.fIsAODana;
    fTaggedTracks = new TList();
    AliHFEV0tag *tmp = NULL;
    for(Int_t ien = 0; ien < ref.fTaggedTracks->GetEntries(); ien++){
        tmp = static_cast<AliHFEV0tag *>(ref.fTaggedTracks->At(ien));
        fTaggedTracks->Add(new AliHFEV0tag(tmp->GetTrackID(),tmp->GetPinfo(),tmp->GetProdR()));
    }
    fV0finder=ref.fV0finder;
    fAODV0finder=ref.fAODV0finder;
    return *this;
}
//___________________________________________________________________
AliHFEV0taginfo::~AliHFEV0taginfo(){

    //
    // Destructor
    //
    delete fTaggedTracks;
    delete fV0finder;
    delete fAODV0finder;
    AliDebug(6, "DESTRUCTOR");
}

//________________________________________________________________________________
// loops over V0s in event and fills fTaggedTracks with V0 tracks
void AliHFEV0taginfo::TagV0Tracks(AliVEvent *fEvent){

    if (!fEvent) return;

    const Int_t nTracks = fEvent->GetNumberOfTracks();
    if(nTracks < 2) return;

    const Int_t nV0s = fEvent->GetNumberOfV0s();
    if(nV0s < 1) return;
    AliDebug(3,Form("%d V0s found!",nV0s));
  
    if(fEvent->IsA() == AliESDEvent::Class()){
        AliDebug(4, "ESD part");
        AliESDEvent *esdevent = static_cast<AliESDEvent *>(fEvent);
        fV0finder->SetEvent(esdevent);

        for(Int_t i=0; i<nV0s; ++i){
            Int_t pdgP = 0;
            Int_t pdgN = 0;
            AliESDv0 *fV0 = esdevent->GetV0(i);
            if(!fV0) continue;
            if(fV0finder->ProcessV0(fV0,pdgP,pdgN)){
                AliDebug(5,Form("V0 has: pos pdg: %d, neg pdg: %d",pdgP,pdgN));
                AddTrack(fV0->GetPindex(),pdgP,TMath::Sqrt(fV0->Xv()*fV0->Xv()+fV0->Yv()*fV0->Yv()));
                AddTrack(fV0->GetNindex(),pdgN,TMath::Sqrt(fV0->Xv()*fV0->Xv()+fV0->Yv()*fV0->Yv()));
            }
        }
    } else if(fEvent->IsA() == AliAODEvent::Class()){
        AliDebug(4,"AOD part");
        AliAODEvent *aodevent = static_cast<AliAODEvent *>(fEvent);
        fAODV0finder->SetEvent(aodevent);

        for(Int_t i=0; i<nV0s; ++i){
            Int_t pdgP = 0;
            Int_t pdgN = 0;
            AliAODv0 *fV0 = aodevent->GetV0(i);
            if(!fV0) continue;
            if(fAODV0finder->ProcessV0(fV0,pdgP,pdgN)){
                AliDebug(5,Form("V0 has: pos pdg: %d, neg pdg: %d",pdgP,pdgN));
                AddTrack(fV0->GetPosID(),pdgP,fV0->RadiusV0());
                AddTrack(fV0->GetNegID(),pdgN,fV0->RadiusV0());
            }
        }
    }
}

//________________________________________________________________________________
//Translates the pdg code to AliPID enum and adds track to tagged list
void AliHFEV0taginfo::AddTrack(Int_t TrackID, Int_t pdgCode, Double_t prodR){

    if(TrackID<0) return;
    AliPID::EParticleType Pinfo;
    switch (TMath::Abs(pdgCode)){
        case  11:
            Pinfo = AliPID::kElectron;
            break;
        case  211:
            Pinfo = AliPID::kPion;
            break;
        case  2212:
            Pinfo = AliPID::kProton;
            break;
        default:
            return;
    }
    fTaggedTracks->Add(new AliHFEV0tag(TrackID, Pinfo, prodR));
    AliDebug(4,Form("Added new Track ID: %d with PID: %d, #entry: %d",TrackID, Pinfo, fTaggedTracks->GetEntries()));
}


//________________________________________________________________________________
//check for V0 information from track ID 
//returns AliPID::kUnknown if track ID not found
AliPID::EParticleType AliHFEV0taginfo::GetV0Info(Int_t trackID){

    AliHFEV0tag test(trackID, AliPID::kUnknown,0);
    AliHFEV0tag *result = dynamic_cast<AliHFEV0tag *>(fTaggedTracks->FindObject(&test));
    if(!result){ 
        AliDebug(6, Form("Could not find track ID %d", trackID));
        return AliPID::kUnknown;
    }
    return result->GetPinfo();
}

//________________________________________________________________________________
//check for V0 daughter production vertex from track ID
//returns -0.1 if track ID not found
Float_t AliHFEV0taginfo::GetV0ProdR(Int_t trackID){

    AliHFEV0tag test(trackID, AliPID::kUnknown, 0);
    AliHFEV0tag *result = dynamic_cast<AliHFEV0tag *>(fTaggedTracks->FindObject(&test));
    if(!result){
        AliDebug(6, Form("Could not find track ID %d", trackID));
        return -0.1;
    }
    return result->GetProdR();
}

//________________________________________________________________________________
//resets the fTaggedTracks TList
void AliHFEV0taginfo::Reset(){
    fTaggedTracks->Delete();
}


//___________________________________________________________________
AliHFEV0taginfo::AliHFEV0tag::AliHFEV0tag():
    TObject(), 
    fTrackID(0),
    fPinfo(AliPID::kUnknown),
    fProdR(0)
{
    // default constructor
}
//___________________________________________________________________
AliHFEV0taginfo::AliHFEV0tag::AliHFEV0tag(Int_t TrackID, AliPID::EParticleType Pinfo, Double_t ProdR):
    TObject(), 
    fTrackID(TrackID),
    fPinfo(Pinfo),
    fProdR(ProdR)
{
}

//____________________________________________________________
AliHFEV0taginfo::AliHFEV0tag::AliHFEV0tag(const AliHFEV0tag &ref):
    TObject(ref),
    fTrackID(ref.fTrackID),
    fPinfo(ref.fPinfo),
    fProdR(ref.fProdR)
{
    // Copy constructor
}

//____________________________________________________________
AliHFEV0taginfo::AliHFEV0tag &AliHFEV0taginfo::AliHFEV0tag::operator=(const AliHFEV0tag &ref){
    // Assignment operator
    if(this != &ref){
        TObject::operator=(ref);

        fTrackID = ref.fTrackID;
        fPinfo = ref.fPinfo;
        fProdR = ref.fProdR;
    }
    return *this;
}

//___________________________________________________________________
AliHFEV0taginfo::AliHFEV0tag::~AliHFEV0tag(){
    //
    // Destructor
    //
    AliDebug(6, "DESTRUCTOR");
}

//Set track ID and particle info 
//___________________________________________________________________
void AliHFEV0taginfo::AliHFEV0tag::SetTrack(Int_t trackID, AliPID::EParticleType Pinfo){
    fTrackID = trackID;
    fPinfo = Pinfo;
}

//Set track ID and production verxtex
//___________________________________________________________________
void AliHFEV0taginfo::AliHFEV0tag::SetProdR(Int_t trackID, Double_t prodR){
    fTrackID = trackID;
    fProdR = prodR;
}

//____________________________________________________________
Bool_t AliHFEV0taginfo::AliHFEV0tag::IsEqual(const TObject *ref) const {
    //
    // Check for equality  of track ID
    //
    const AliHFEV0tag *refObj = dynamic_cast<const AliHFEV0tag *>(ref);
    if(!refObj) return kFALSE;
    return (fTrackID == refObj->GetTrackID());
}
//____________________________________________________________
Int_t AliHFEV0taginfo::AliHFEV0tag::Compare(const TObject *ref) const{
    //
    // Compares two objects
    // Order:
    //   First compare track ID then particle info
    //
    const AliHFEV0tag *refObj = static_cast<const AliHFEV0tag *>(ref);
    if(fTrackID < refObj->GetTrackID()) return -1;
    else if(fTrackID > refObj->GetTrackID()) return 1;
    else{
        if(fPinfo < refObj->GetPinfo()) return -1;
        else if(fPinfo > refObj->GetPinfo()) return 1;
        else return 0;
    }
}


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