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

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

    virtual ~AliITSLoader();

    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 module and a specific digit in that
    // module. Array of digits stored in AliITS (must use 
    // SetupDigits(AliITS *its)).
    // virtual AliITSdigit* GetDigit(AliITS *its,Int_t module,Int_t digit);
    // Gets the AliITSdigit for a given module and a specific digit in that
    // module. Array of digits stored in a user defined TObjArray digPerDet
    virtual AliITSdigit* GetDigit(TObjArray *digPerDet,Int_t module,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
    AliITSgeom* GetITSgeom(Bool_t force=kFALSE); 
    void SetITSgeom(AliITSgeom* g);
    //
    static const TString& GetDefaultRawClustersContainerName();
    static const TString& GetDefaultBackTracksContainerName();
    static const TString& GetDefaultVerticesContainerName();
    static const TString& GetDefaultV0ContainerName();
    static const TString& GetDefaultCascadeContainerName();
    //
  protected:

    AliITSLoader(const AliITSLoader &ob); // copy constructor
    AliITSLoader& operator=(const AliITSLoader & /* 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();}

    AliITSgeom *fGeom;     //! pointer to the ITS geometry class


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