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.                  *
 **************************************************************************/
//
#ifndef ALIHFEV0TAGINFO_H
#define ALIHFEV0TAGINFO_H

#ifndef ROOT_TNamed
#include <TNamed.h>
#endif


#include "AliPID.h"
#include "AliESDv0KineCuts.h"
#include "AliAODv0KineCuts.h"

class AliVEvent;

class AliHFEV0taginfo: public TNamed{

    public:

        AliHFEV0taginfo();
        AliHFEV0taginfo(const char* name);
        AliHFEV0taginfo(const AliHFEV0taginfo &ref);
        AliHFEV0taginfo& operator=(const AliHFEV0taginfo &ref);
        virtual ~AliHFEV0taginfo();

        void Reset(); //resets the fTaggedTracks TList
        void TagV0Tracks(AliVEvent *event); // loops over V0s in event and fills fTaggedTracks with V0 tracks
        AliPID::EParticleType GetV0Info(Int_t trackID); //check for V0 information from track ID 
        Float_t GetV0ProdR(Int_t trackID); //check for V0 information from track ID 
        void SetIsAODana() { fIsAODana = kTRUE; } // Setter AOD analysis
        void SetIsESDana() { fIsAODana = kFALSE; } // Setter ESD analysis
        void AddTrack(Int_t TrackID, Int_t pdgCode, Double_t prodR); //Translates the pdg code to AliPID enum and adds track to tagged list (currently only e, pion and proton tracks)

        class AliHFEV0tag: public TObject{
            public:
                AliHFEV0tag();
                AliHFEV0tag(Int_t TrackID, AliPID::EParticleType Pinfo, Double_t ProdR);
                AliHFEV0tag(const AliHFEV0tag &ref);
                AliHFEV0tag &operator=(const AliHFEV0tag &ref);
                virtual ~AliHFEV0tag();

                //TObject virtual functions
                virtual Bool_t IsSortable() const { return kTRUE; };
                virtual Bool_t IsEqual(const TObject *ref) const;
                virtual Int_t Compare(const TObject *ref) const;

                //Setter
                void SetTrack(Int_t trackID, AliPID::EParticleType Pinfo); //Set track ID
                void SetProdR(Int_t trackID, Double_t prodR); //Set V0 daughter production vertex radius
                //Getter
                Int_t GetTrackID() const { return fTrackID; };
                AliPID::EParticleType GetPinfo() const { return fPinfo; };
                Double_t GetProdR() const { return fProdR; };
            private:
                Int_t fTrackID;
                AliPID::EParticleType fPinfo;  
                Double_t fProdR; // V0 daughter production vertex radius in x-y plane

                ClassDef(AliHFEV0taginfo::AliHFEV0tag,1);
        };
    private:
        Bool_t fIsAODana;
        TList *fTaggedTracks;
        AliESDv0KineCuts *fV0finder;
        AliAODv0KineCuts *fAODV0finder;

        ClassDef(AliHFEV0taginfo,1)
};
#endif
 AliHFEV0taginfo.h:1
 AliHFEV0taginfo.h:2
 AliHFEV0taginfo.h:3
 AliHFEV0taginfo.h:4
 AliHFEV0taginfo.h:5
 AliHFEV0taginfo.h:6
 AliHFEV0taginfo.h:7
 AliHFEV0taginfo.h:8
 AliHFEV0taginfo.h:9
 AliHFEV0taginfo.h:10
 AliHFEV0taginfo.h:11
 AliHFEV0taginfo.h:12
 AliHFEV0taginfo.h:13
 AliHFEV0taginfo.h:14
 AliHFEV0taginfo.h:15
 AliHFEV0taginfo.h:16
 AliHFEV0taginfo.h:17
 AliHFEV0taginfo.h:18
 AliHFEV0taginfo.h:19
 AliHFEV0taginfo.h:20
 AliHFEV0taginfo.h:21
 AliHFEV0taginfo.h:22
 AliHFEV0taginfo.h:23
 AliHFEV0taginfo.h:24
 AliHFEV0taginfo.h:25
 AliHFEV0taginfo.h:26
 AliHFEV0taginfo.h:27
 AliHFEV0taginfo.h:28
 AliHFEV0taginfo.h:29
 AliHFEV0taginfo.h:30
 AliHFEV0taginfo.h:31
 AliHFEV0taginfo.h:32
 AliHFEV0taginfo.h:33
 AliHFEV0taginfo.h:34
 AliHFEV0taginfo.h:35
 AliHFEV0taginfo.h:36
 AliHFEV0taginfo.h:37
 AliHFEV0taginfo.h:38
 AliHFEV0taginfo.h:39
 AliHFEV0taginfo.h:40
 AliHFEV0taginfo.h:41
 AliHFEV0taginfo.h:42
 AliHFEV0taginfo.h:43
 AliHFEV0taginfo.h:44
 AliHFEV0taginfo.h:45
 AliHFEV0taginfo.h:46
 AliHFEV0taginfo.h:47
 AliHFEV0taginfo.h:48
 AliHFEV0taginfo.h:49
 AliHFEV0taginfo.h:50
 AliHFEV0taginfo.h:51
 AliHFEV0taginfo.h:52
 AliHFEV0taginfo.h:53
 AliHFEV0taginfo.h:54
 AliHFEV0taginfo.h:55
 AliHFEV0taginfo.h:56
 AliHFEV0taginfo.h:57
 AliHFEV0taginfo.h:58
 AliHFEV0taginfo.h:59
 AliHFEV0taginfo.h:60
 AliHFEV0taginfo.h:61
 AliHFEV0taginfo.h:62
 AliHFEV0taginfo.h:63
 AliHFEV0taginfo.h:64
 AliHFEV0taginfo.h:65
 AliHFEV0taginfo.h:66
 AliHFEV0taginfo.h:67
 AliHFEV0taginfo.h:68
 AliHFEV0taginfo.h:69
 AliHFEV0taginfo.h:70
 AliHFEV0taginfo.h:71
 AliHFEV0taginfo.h:72
 AliHFEV0taginfo.h:73
 AliHFEV0taginfo.h:74
 AliHFEV0taginfo.h:75
 AliHFEV0taginfo.h:76
 AliHFEV0taginfo.h:77
 AliHFEV0taginfo.h:78
 AliHFEV0taginfo.h:79
 AliHFEV0taginfo.h:80
 AliHFEV0taginfo.h:81
 AliHFEV0taginfo.h:82
 AliHFEV0taginfo.h:83