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.                  *
 **************************************************************************/

/* $Id$ */

#include <TClonesArray.h>
#include <TClass.h>
#include <TGeoManager.h>
#include <TTree.h>

#include "AliITSdigit.h"
#include "AliITSLoader.h"
#include "AliRunLoader.h"
#include "AliObjectLoader.h"
#include "AliITSInitGeometry.h"
#include "AliLog.h"

///////////////////////////////////////////////////////////////////////////
// Loader for ITS
// it manages the I/O for:
// raw clusters, primary vertices
// V0 and cascade
// and tracks propagated to the origin
ClassImp(AliITSLoader)

/**********************************************************************/
  AliITSLoader::AliITSLoader():AliLoader(),
fGeom(0){
  // Default constructor
}
/*********************************************************************/
AliITSLoader::AliITSLoader(const Char_t *name,const Char_t *topfoldername):
AliLoader(name,topfoldername),
fGeom(0){
  //Constructor   
    AliDataLoader* rawClustersDataLoader = new AliDataLoader(
        fDetectorName + ".RawCl.root",GetDefaultRawClustersContainerName(),
        "Raw Clusters");
    fDataLoaders->Add(rawClustersDataLoader);
    rawClustersDataLoader->SetEventFolder(fEventFolder);
    rawClustersDataLoader->SetFolder(GetDetectorDataFolder());

    AliDataLoader* backTracksDataLoader =  new AliDataLoader(
        fDetectorName + ".BackTracks.root",GetDefaultBackTracksContainerName(),
        "Back Propagated Tracks");
    fDataLoaders->Add(backTracksDataLoader);
    backTracksDataLoader->SetEventFolder(fEventFolder);
    backTracksDataLoader->SetFolder(GetDetectorDataFolder());

    AliDataLoader* vertexDataLoader = new AliDataLoader(
        fDetectorName + ".Vertex.root",GetDefaultVerticesContainerName(),
        "Primary Vertices","O");
    fDataLoaders->Add(vertexDataLoader);
    vertexDataLoader->SetEventFolder(fEventFolder);
    vertexDataLoader->SetFolder(GetDetectorDataFolder());

    AliDataLoader* v0DataLoader = new AliDataLoader(
        fDetectorName + ".V0s.root",GetDefaultV0ContainerName(),"V0 Vertices");
    fDataLoaders->Add(v0DataLoader);
    v0DataLoader->SetEventFolder(fEventFolder);
    v0DataLoader->SetFolder(GetDetectorDataFolder());

    AliDataLoader* cascadeDataLoader = new AliDataLoader(
        fDetectorName + ".Cascades.root",GetDefaultCascadeContainerName(),
        "Cascades");
    fDataLoaders->Add(cascadeDataLoader);
    cascadeDataLoader->SetEventFolder(fEventFolder);
    cascadeDataLoader->SetFolder(GetDetectorDataFolder());
}
/**********************************************************************/
AliITSLoader::AliITSLoader(const Char_t *name,TFolder *topfolder): 
  AliLoader(name,topfolder),
fGeom(0){
  //ctor  
    AliDataLoader*  rawClustersDataLoader = new AliDataLoader(
        fDetectorName + ".RawCl.root",GetDefaultRawClustersContainerName(),
        "Raw Clusters"); 
    fDataLoaders->Add(rawClustersDataLoader);
    rawClustersDataLoader->SetEventFolder(fEventFolder);
    rawClustersDataLoader->SetFolder(GetDetectorDataFolder());

    AliDataLoader*  backTracksDataLoader =  new AliDataLoader(
        fDetectorName + ".BackTracks.root",GetDefaultBackTracksContainerName(),
        "Back Propagated Tracks");
    fDataLoaders->Add(backTracksDataLoader);
    backTracksDataLoader->SetEventFolder(fEventFolder);
    backTracksDataLoader->SetFolder(GetDetectorDataFolder());

    AliDataLoader* vertexDataLoader = new AliDataLoader(
        fDetectorName + ".Vertex.root",GetDefaultVerticesContainerName(),
        "Primary Vertices","O");
    fDataLoaders->Add(vertexDataLoader);
    vertexDataLoader->SetEventFolder(fEventFolder);
    vertexDataLoader->SetFolder(GetDetectorDataFolder());

    AliDataLoader* v0DataLoader = new AliDataLoader(
        fDetectorName + ".V0.root",GetDefaultV0ContainerName(),"V0 Vertices");
    fDataLoaders->Add(v0DataLoader);
    v0DataLoader->SetEventFolder(fEventFolder);
    v0DataLoader->SetFolder(GetDetectorDataFolder());

    AliDataLoader* cascadeDataLoader = new AliDataLoader(
        fDetectorName + ".Cascade.root",GetDefaultCascadeContainerName(),
        "Cascades");
    fDataLoaders->Add(cascadeDataLoader);
    cascadeDataLoader->SetEventFolder(fEventFolder);
    cascadeDataLoader->SetFolder(GetDetectorDataFolder());
}


/**********************************************************************/
AliITSLoader::~AliITSLoader(){
    //destructor
    AliDataLoader* dl = 0;
    UnloadRawClusters();
    dl = GetRawClLoader();
    fDataLoaders->Remove(dl);

    UnloadBackTracks();
    dl = GetBackTracksDataLoader();
    fDataLoaders->Remove(dl);

    UnloadVertices();
    dl = GetVertexDataLoader();
    fDataLoaders->Remove(dl);

    UnloadV0s();
    dl = GetV0DataLoader();
    fDataLoaders->Remove(dl);

    UnloadCascades();
    dl = GetCascadeDataLoader();
    fDataLoaders->Remove(dl);
  
    if(fGeom)delete fGeom;
    fGeom = 0;
}
/*
//----------------------------------------------------------------------
AliITS* AliITSLoader::GetITS(){
    // Returns the pointer to the ITS, kept on the file. A short cut metthod
    // Inputs:
    //    none.
    // Outputs:
    //    none.
    // Returns:
    //    Returns a pointer to the ITS, if not found returns 0.
    AliITS *its;

    if(gAlice){
        its = dynamic_cast<AliITS*> (gAlice->GetDetector(
            GetDetectorName().Data()));
        if(its) return its;
    } // end if gAlice
    AliRunLoader *rl=0;
    rl = GetRunLoader();
    if(!rl) return 0;
    AliRun *ar=0;
    ar = rl->GetAliRun();
    if(!ar) return 0;
    its = dynamic_cast<AliITS*> (ar->GetDetector(GetDetectorName().Data()));
    return its;
}
//----------------------------------------------------------------------
void AliITSLoader::SetupDigits(AliITS *its){
    // Sets up to store ITS Digits in side AliITS::fDtype TObjArray
    // Inputs:
    //    AliITS *its  Pointer to the ITS
    // Outputs:
    //    none.
    // Return:
    //    none.

    its->SetTreeAddressD(TreeD());
}
*/
//----------------------------------------------------------------------
void AliITSLoader::SetupDigits(TObjArray *digPerDet,Int_t n,
                               const Char_t **digclass){
    // Sets up digPerDet to store ITS Digits.
    // Inputs:
    //    TObjArray *digPerDet   A pointer to a TObject Array size>=3.
    //    Int_t      n           The size of the TObjArray and digclass array
    //    Char_t     **digclass  Array of digit class names
    // Outputs:
    //    TObjArray *digPerDet   Setup and linked to the tree of digits
    // Return:
    //    none.
    Int_t i,m;
    TClonesArray *cl = 0;
    TTree *td = 0;
    TBranch *br = 0;
    Char_t branch[14];
    const Char_t *det[3] = {"SPD","SDD","SSD"};

    if(!digPerDet){
        Error("SetUpDigits","TObject Array digPerDet does not exist");
        return;
    } // end if
    m = digPerDet->GetSize();
    if(m<n){
        Error("SetUpDigits","TObject Array digPerDet=%p must have a size"
              " at least that of n=%d",digPerDet,n);
    } // end if
    if(m<3){
        Error("SetUpDigits","TObject Array digPerDet=%p must have a size >2",
              digPerDet);
        return;
    } // end if
    td = TreeD();
    for(i=0;i<n;i++){
        if(digPerDet->At(i)==0){ // set up TClones Array
            digPerDet->AddAt(new TClonesArray(digclass[i],1000),i);
            if(n==3) snprintf(branch,13,"ITSDigits%s",det[i]);
            else     snprintf(branch,13,"ITSDigits%d",i+1);
            br = td->GetBranch(branch);
            br->SetAddress(&((*digPerDet)[i]));
            continue; // do next one.
        } // end if
        cl =  dynamic_cast<TClonesArray*> (digPerDet->At(i));
        if(!cl && digPerDet->At(i)!=0){  // not a TClonesArray
            Error("SetUpDigits","TObject Array digPerDet-At(%d)=%p must be "
                  "zeroed or filled with TClonesArrays",i,digPerDet);
            return;
        } // end if
        if(!(cl->GetClass()->GetBaseClass(AliITSdigit::Class()))){
            Error("SetUPDigits","TClones array at digPerDet[%d}=%p must be"
                  "derived from AliITSdigit",i,digPerDet->At(i));
        } // end if
        cl->Clear();
        if(n==3) snprintf(branch,13,"ITSDigits%s",det[i]);
        else     snprintf(branch,13,"ITSDigits%d",i+1);
        br = td->GetBranch(branch);
        br->SetAddress(&((*digPerDet)[i]));
        continue;
    } // end for i
}
//---------------------------------------------------------------------
AliITSdigit * AliITSLoader::GetDigit(TObjArray *digPerDet,Int_t module,
                                     Int_t digit){
    // Gets the digit for for a specific detector type and module.
    // To be used in conjustion with Setupdigits(AliITS *its).
    // Inputs:
    //   TObjArray *digPereDet    Pointer to the Array of digits
    //   Int_t      module        Module number
    //   Int_t      digit         Digit number
    // Outputs:
    //   none.
    // Return:
    //   returns the pointer to the digit. if zero then last digit for that
    //   module.

    if(digPerDet==0){
        Error("GetDigit","digPerDet=%p, module=%d, digit=%d",
              digPerDet,module,digit);
        return 0;
    } // end if
    return 0;
}
/*
//---------------------------------------------------------------------
AliITSdigit * AliITSLoader::GetDigit(AliITS *its,Int_t module,Int_t digit){
    // Gets the digit for for a specific detector type and module.
    // To be used in conjustion with Setupdigits(AliITS *its).
    // Inputs:
    //   AliITS *its    Pointer to the ITS
    //   Int_t  module  Module number
    //   Int_t digit    Digit number
    // Outputs:
    //   none.
    // Return:
    //   returns the pointer to the digit. if zero then last digit for that
    //   module.
    //AliITSDetType *idtype;
    AliITSgeom *geom = its->GetITSgeom();
    Int_t idet = geom->GetModuleType(module);
    TClonesArray *digits;
 
    its->ResetDigits();
    TreeD()->GetEvent(module);
    digits = its->DigitsAddress(idet);
    if(digit>-1 && digit<digits->GetEntriesFast()){ // if in range.
        return (AliITSdigit*) digits->At(digit);
    } // end if
    return 0;
}
*/
//----------------------------------------------------------------------
void AliITSLoader::MakeTree(Option_t *opt){
    // invokes AliLoader::MakeTree + specific ITS tree(s)
    // Valid options: H,S,D,R,T and C (C=raw clusters)
    AliLoader::MakeTree(opt);
    const char *oC = strstr(opt,"C");
    if (oC) MakeRawClustersContainer();

    const char *oB = strstr(opt,"B");
    if (oB) MakeBackTracksContainer();

    const char *oV0 = strstr(opt,"V0");
    if (oV0) MakeV0Container();

    const char *oX = strstr(opt,"X");
    if (oX) MakeCascadeContainer();
}

//----------------------------------------------------------------------
AliITSgeom* AliITSLoader::GetITSgeom(Bool_t force) {
  // retrieves the ITS geometry from file
  if(fGeom && !force)return fGeom;
  if(fGeom && force){
    delete fGeom;
    fGeom = 0;
  }
  if(!gGeoManager){
    AliError("gGeoManager is a null pointer - ITS geometry not built");
    return fGeom;
  }
  AliITSInitGeometry initgeom;
  fGeom = initgeom.CreateAliITSgeom();
  AliDebug(1,"AliITSgeom object has been initialized from TGeo\n");
  AliDebug(1,Form("Geometry name: %s",(initgeom.GetGeometryName()).Data()));
  return fGeom;
}
//______________________________________________________________________
void AliITSLoader::SetITSgeom(AliITSgeom *geom){
    // Replaces the AliITSgeom object read from file with the one
    // given.
    // Inputs:
    //   AliITSgeom *geom   The AliITSgeom object to replace the one
    //                      read from the file
    // Outputs:
    //   none.
    // Return:
    //   none.

    if(fGeom==geom) return; // Same do nothing
    if(fGeom) {
	delete fGeom;
	fGeom=0;
    }// end if
    fGeom=geom;
}

const TString& AliITSLoader::GetDefaultRawClustersContainerName() {
  //default for Raw Clusters container name
  static const TString kDefaultRawClustersContainerName = "TreeC";  
  return kDefaultRawClustersContainerName;
}

const TString& AliITSLoader::GetDefaultBackTracksContainerName() {
 //default for Back propag. tracks container name
  static const TString kDefaultBackTracksContainerName = "TreeB";   
  return kDefaultBackTracksContainerName;
}

const TString& AliITSLoader::GetDefaultVerticesContainerName() {
  //default for primary vertices container name
  static const TString kDefaultVerticesContainerName = "Vertex";     
  return kDefaultVerticesContainerName;
}

const TString& AliITSLoader::GetDefaultV0ContainerName() {
  //default for V0 container name
  static const TString kDefaultV0ContainerName = "V0";
  return kDefaultV0ContainerName;
}

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