ROOT logo
#ifndef ALIITSULOADER_H
#define ALIITSULOADER_H
//////////////////////////////////////////////////////////
// Loader class for ITS Upgrade                         //
//////////////////////////////////////////////////////////
#include <AliLoader.h>
#include <AliESDVertex.h>
class AliITSpidESD;
class AliITSdigit;
class TObjArray;

class AliITSULoader: public AliLoader{
  public:
    AliITSULoader();
    AliITSULoader(const Char_t *name,const Char_t *topfoldername);
    AliITSULoader(const Char_t *name,TFolder *topfolder);

    virtual ~AliITSULoader();

    void           MakeTree(Option_t* opt);
    virtual void   SetupDigits(TObjArray *digPerDet,Int_t n,
                                const Char_t **digclass); // Sets up digits
    // Gets the AliITSdigit for a given chip and a specific digit in that
    // chip. Array of digits stored in AliITS (must use 
    // SetupDigits(AliITS *its)).
    // virtual AliITSdigit* GetDigit(AliITS *its,Int_t chip,Int_t digit);
    // Gets the AliITSdigit for a given chip and a specific digit in that
    // chip. Array of digits stored in a user defined TObjArray digPerDet
    virtual AliITSdigit* GetDigit(TObjArray *digPerDet,Int_t chip,Int_t digit);

    //Raw Clusters
    AliDataLoader* GetRawClLoader() {return GetDataLoader("Raw Clusters");}
    virtual void   CleanRawClusters() {
        GetRawClLoader()->GetBaseLoader(0)->Clean();}
    Int_t          LoadRawClusters(Option_t* opt=""){
        return GetRawClLoader()->GetBaseLoader(0)->Load(opt);}
    void           SetRawClustersFileName(const TString& fname){
        GetRawClLoader()->SetFileName(fname);}
    // returns a pointer to the tree of  RawClusters
    TTree*         TreeC(){ return GetRawClLoader()->Tree();} 
    void           UnloadRawClusters(){
        GetRawClLoader()->GetBaseLoader(0)->Unload();}
    virtual Int_t  WriteRawClusters(Option_t* opt=""){
        return GetRawClLoader()->GetBaseLoader(0)->WriteData(opt);}

    //Vertices
    AliDataLoader* GetVertexDataLoader() {
        return GetDataLoader("Primary Vertices");}
    virtual void   CleanVertices() {
        GetVertexDataLoader()->GetBaseLoader(0)->Clean();}
    Int_t          LoadVertices(Option_t* opt=""){
        return GetVertexDataLoader()->GetBaseLoader(0)->Load(opt);}
    void           SetVerticesFileName(const TString& fname){
        GetVertexDataLoader()->SetFileName(fname);}
    void           UnloadVertices(){
        GetVertexDataLoader()->GetBaseLoader(0)->Unload();}
    virtual Int_t  WriteVertices(Option_t* opt=""){
        return GetVertexDataLoader()->GetBaseLoader(0)->WriteData(opt);}
    virtual Int_t PostVertex(AliESDVertex *ptr){
        return GetVertexDataLoader()->GetBaseLoader(0)->Post(ptr);}
    //    virtual void SetVerticesContName(const char *name){
    //       GetVertexDataLoader()->GetBaseLoader(0)->SetName(name);}
    AliESDVertex *GetVertex(){
        return static_cast <AliESDVertex*>(GetVertexDataLoader()->
                                           GetBaseLoader(0)->Get());}
    //V0s
    AliDataLoader* GetV0DataLoader() {return GetDataLoader("V0 Vertices");}
    virtual void   CleanV0s() {GetV0DataLoader()->GetBaseLoader(0)->Clean();}
    Int_t          LoadV0s(Option_t* opt=""){
        return GetV0DataLoader()->GetBaseLoader(0)->Load(opt);}
    void           SetV0FileName(const TString& fname){
        GetV0DataLoader()->SetFileName(fname);}
    void           UnloadV0s(){GetV0DataLoader()->GetBaseLoader(0)->Unload();}
    virtual Int_t  WriteV0s(Option_t* opt=""){
        return GetV0DataLoader()->GetBaseLoader(0)->WriteData(opt);}
    TTree*         TreeV0(){ return GetV0DataLoader()->Tree();}

    //Cascades
    AliDataLoader* GetCascadeDataLoader() {return GetDataLoader("Cascades");}
    virtual void   CleanCascades() {
        GetCascadeDataLoader()->GetBaseLoader(0)->Clean();}
    Int_t          LoadCascades(Option_t* opt=""){
        return GetCascadeDataLoader()->GetBaseLoader(0)->Load(opt);}
    void           SetCascadeFileName(const TString& fname){
        GetCascadeDataLoader()->SetFileName(fname);}
    void           UnloadCascades(){
        GetCascadeDataLoader()->GetBaseLoader(0)->Unload();}
    virtual Int_t  WriteCascades(Option_t* opt=""){
        return GetCascadeDataLoader()->GetBaseLoader(0)->WriteData(opt);}
    TTree*         TreeX(){ return GetCascadeDataLoader()->Tree();}

    //Back Propagated Tracks
    AliDataLoader* GetBackTracksDataLoader() {
        return GetDataLoader("Back Propagated Tracks");}
    virtual void   CleanBackTracks() {
        GetBackTracksDataLoader()->GetBaseLoader(0)->Clean();}
    Int_t          LoadBackTracks(Option_t* opt=""){
        return GetBackTracksDataLoader()->GetBaseLoader(0)->Load(opt);}
    void           SetBackTracksFileName(const TString& fname){
        GetBackTracksDataLoader()->SetFileName(fname);}
     // returns a pointer to the tree of  BackTracks
    TTree*         TreeB(){ return GetBackTracksDataLoader()->Tree();}
    void           UnloadBackTracks(){
        GetBackTracksDataLoader()->GetBaseLoader(0)->Unload();}
    virtual Int_t  WriteBackTracks(Option_t* opt=""){
        return GetBackTracksDataLoader()->GetBaseLoader(0)->WriteData(opt);}

    // Geometry. Geom is read from file, unless already loaded
    // readout from file can be forced if force=kTRUE
  protected:

    AliITSULoader(const AliITSULoader &ob); // copy constructor
    AliITSULoader& operator=(const AliITSULoader & /* source */); // ass.

    // METHODS
    virtual void   MakeRawClustersContainer() {GetRawClLoader()->MakeTree();}
    Int_t          PostRawClusters(){
        return GetRawClLoader()->GetBaseLoader(0)->Post();}

    virtual void   MakeBackTracksContainer() {
        GetBackTracksDataLoader()->MakeTree();}
    Int_t          PostBackTracks(){
        return GetBackTracksDataLoader()->GetBaseLoader(0)->Post();}
    virtual void   MakeV0Container() {GetV0DataLoader()->MakeTree();}
    Int_t          PostV0s(){
        return GetV0DataLoader()->GetBaseLoader(0)->Post();}

    virtual void   MakeCascadeContainer() {GetCascadeDataLoader()->MakeTree();}
    Int_t          PostCascades(){
        return GetCascadeDataLoader()->GetBaseLoader(0)->Post();}


    ClassDef(AliITSULoader,1) // Loader for additional ITS specific trees.
};
 
#endif
 AliITSULoader.h:1
 AliITSULoader.h:2
 AliITSULoader.h:3
 AliITSULoader.h:4
 AliITSULoader.h:5
 AliITSULoader.h:6
 AliITSULoader.h:7
 AliITSULoader.h:8
 AliITSULoader.h:9
 AliITSULoader.h:10
 AliITSULoader.h:11
 AliITSULoader.h:12
 AliITSULoader.h:13
 AliITSULoader.h:14
 AliITSULoader.h:15
 AliITSULoader.h:16
 AliITSULoader.h:17
 AliITSULoader.h:18
 AliITSULoader.h:19
 AliITSULoader.h:20
 AliITSULoader.h:21
 AliITSULoader.h:22
 AliITSULoader.h:23
 AliITSULoader.h:24
 AliITSULoader.h:25
 AliITSULoader.h:26
 AliITSULoader.h:27
 AliITSULoader.h:28
 AliITSULoader.h:29
 AliITSULoader.h:30
 AliITSULoader.h:31
 AliITSULoader.h:32
 AliITSULoader.h:33
 AliITSULoader.h:34
 AliITSULoader.h:35
 AliITSULoader.h:36
 AliITSULoader.h:37
 AliITSULoader.h:38
 AliITSULoader.h:39
 AliITSULoader.h:40
 AliITSULoader.h:41
 AliITSULoader.h:42
 AliITSULoader.h:43
 AliITSULoader.h:44
 AliITSULoader.h:45
 AliITSULoader.h:46
 AliITSULoader.h:47
 AliITSULoader.h:48
 AliITSULoader.h:49
 AliITSULoader.h:50
 AliITSULoader.h:51
 AliITSULoader.h:52
 AliITSULoader.h:53
 AliITSULoader.h:54
 AliITSULoader.h:55
 AliITSULoader.h:56
 AliITSULoader.h:57
 AliITSULoader.h:58
 AliITSULoader.h:59
 AliITSULoader.h:60
 AliITSULoader.h:61
 AliITSULoader.h:62
 AliITSULoader.h:63
 AliITSULoader.h:64
 AliITSULoader.h:65
 AliITSULoader.h:66
 AliITSULoader.h:67
 AliITSULoader.h:68
 AliITSULoader.h:69
 AliITSULoader.h:70
 AliITSULoader.h:71
 AliITSULoader.h:72
 AliITSULoader.h:73
 AliITSULoader.h:74
 AliITSULoader.h:75
 AliITSULoader.h:76
 AliITSULoader.h:77
 AliITSULoader.h:78
 AliITSULoader.h:79
 AliITSULoader.h:80
 AliITSULoader.h:81
 AliITSULoader.h:82
 AliITSULoader.h:83
 AliITSULoader.h:84
 AliITSULoader.h:85
 AliITSULoader.h:86
 AliITSULoader.h:87
 AliITSULoader.h:88
 AliITSULoader.h:89
 AliITSULoader.h:90
 AliITSULoader.h:91
 AliITSULoader.h:92
 AliITSULoader.h:93
 AliITSULoader.h:94
 AliITSULoader.h:95
 AliITSULoader.h:96
 AliITSULoader.h:97
 AliITSULoader.h:98
 AliITSULoader.h:99
 AliITSULoader.h:100
 AliITSULoader.h:101
 AliITSULoader.h:102
 AliITSULoader.h:103
 AliITSULoader.h:104
 AliITSULoader.h:105
 AliITSULoader.h:106
 AliITSULoader.h:107
 AliITSULoader.h:108
 AliITSULoader.h:109
 AliITSULoader.h:110
 AliITSULoader.h:111
 AliITSULoader.h:112
 AliITSULoader.h:113
 AliITSULoader.h:114
 AliITSULoader.h:115
 AliITSULoader.h:116
 AliITSULoader.h:117
 AliITSULoader.h:118
 AliITSULoader.h:119
 AliITSULoader.h:120
 AliITSULoader.h:121
 AliITSULoader.h:122
 AliITSULoader.h:123
 AliITSULoader.h:124
 AliITSULoader.h:125
 AliITSULoader.h:126
 AliITSULoader.h:127
 AliITSULoader.h:128
 AliITSULoader.h:129
 AliITSULoader.h:130
 AliITSULoader.h:131
 AliITSULoader.h:132
 AliITSULoader.h:133
 AliITSULoader.h:134
 AliITSULoader.h:135
 AliITSULoader.h:136