ROOT logo
void AliITSPrintGeom(TString hfn="galice.root",Int_t mod=-1){
    // Macro to print out the information kept in the AliITSgeom class, for 
    // all or a specific module.
    // Inputs:
    //   TString hfn    input file name
    //   Int_t   mod    The specific module to print out transformations for.
    //                  if mod<0, does all modules.
    // Output:
    //    none.
    // Return:
    //    none.

    // Dynamically link some shared libs
    if (gClassTable->GetID("AliRun") < 0) {
        gROOT->LoadMacro("loadlibs.C");
        loadlibs();
    }else {
	if(gAlice){
	    delete AliRunLoader::Instance();
	    delete gAlice;
	    gAlice=0;
	} // end if gAlice
    } // end if aliroot or not.

    AliRunLoader* rl = AliRunLoader::Open(hfn.Data());
    if (rl == 0x0){
	cerr<<"AliITSPrintGeom.C : Can not open session RL=NULL"<< endl;
	return;
    } // end if no loader

    Int_t retval = rl->LoadgAlice();
    if (retval){
	cerr<<"AliITSHits2SDigits.C : LoadgAlice returned error"<< endl;
	return 3;
    } // end if loader error
    if(!gAlice){
	cerr<<"AliITSPrintGeom.C. AliRun object not found\n";
	return;
    } // end if no gAlice error

    AliITS *ITS = (AliITS*)gAlice->GetDetector("ITS");
    if(!ITS){
        cout << "Error: no ITS found. Aborting"<<endl;
        return;
    } // end if !ITS

    AliITSgeom *gm = ITS->GetITSgeom();
    Int_t mod1 = 0;
    Int_t mod2 = gm->GetIndexMax();
    if(mod>=0){
        mod1 = mod;
        mod2 = mod+1;
    } // end if mod>=0
    AliITSgeomMatrix *gmm = gm->GetGeomMatrix(0);
    Int_t m,lay,lad,det;
    Double_t xyz[3],rcyl;
    cout<<endl<<endl<<"====================================\n";
    if(mod<-1){ gmm->PrintComment(&cout); cout << endl;}
    cout<<endl<<endl<<"====================================\n";
    for(m=mod1;m<mod2;m++){
	gm->GetModuleId(m,lay,lad,det);
	gmm = gm->GetGeomMatrix(m);
	gmm->GetTranslation(xyz);
	rcyl = TMath::Sqrt(xyz[0]*xyz[0]+xyz[1]*xyz[1]);
	if(mod<-1){
	    gmm->Print(&cout);
	    cout << endl;
	}else{
	    cout << "module="<<m<<" "<<lay<<" "<<lad<<" "<<det;
	    cout << " Rcyl="<<rcyl<<" cm"<<endl;
	} // end if
    } // end for m
}
 AliITSPrintGeom.C:1
 AliITSPrintGeom.C:2
 AliITSPrintGeom.C:3
 AliITSPrintGeom.C:4
 AliITSPrintGeom.C:5
 AliITSPrintGeom.C:6
 AliITSPrintGeom.C:7
 AliITSPrintGeom.C:8
 AliITSPrintGeom.C:9
 AliITSPrintGeom.C:10
 AliITSPrintGeom.C:11
 AliITSPrintGeom.C:12
 AliITSPrintGeom.C:13
 AliITSPrintGeom.C:14
 AliITSPrintGeom.C:15
 AliITSPrintGeom.C:16
 AliITSPrintGeom.C:17
 AliITSPrintGeom.C:18
 AliITSPrintGeom.C:19
 AliITSPrintGeom.C:20
 AliITSPrintGeom.C:21
 AliITSPrintGeom.C:22
 AliITSPrintGeom.C:23
 AliITSPrintGeom.C:24
 AliITSPrintGeom.C:25
 AliITSPrintGeom.C:26
 AliITSPrintGeom.C:27
 AliITSPrintGeom.C:28
 AliITSPrintGeom.C:29
 AliITSPrintGeom.C:30
 AliITSPrintGeom.C:31
 AliITSPrintGeom.C:32
 AliITSPrintGeom.C:33
 AliITSPrintGeom.C:34
 AliITSPrintGeom.C:35
 AliITSPrintGeom.C:36
 AliITSPrintGeom.C:37
 AliITSPrintGeom.C:38
 AliITSPrintGeom.C:39
 AliITSPrintGeom.C:40
 AliITSPrintGeom.C:41
 AliITSPrintGeom.C:42
 AliITSPrintGeom.C:43
 AliITSPrintGeom.C:44
 AliITSPrintGeom.C:45
 AliITSPrintGeom.C:46
 AliITSPrintGeom.C:47
 AliITSPrintGeom.C:48
 AliITSPrintGeom.C:49
 AliITSPrintGeom.C:50
 AliITSPrintGeom.C:51
 AliITSPrintGeom.C:52
 AliITSPrintGeom.C:53
 AliITSPrintGeom.C:54
 AliITSPrintGeom.C:55
 AliITSPrintGeom.C:56
 AliITSPrintGeom.C:57
 AliITSPrintGeom.C:58
 AliITSPrintGeom.C:59
 AliITSPrintGeom.C:60
 AliITSPrintGeom.C:61
 AliITSPrintGeom.C:62
 AliITSPrintGeom.C:63
 AliITSPrintGeom.C:64
 AliITSPrintGeom.C:65
 AliITSPrintGeom.C:66
 AliITSPrintGeom.C:67
 AliITSPrintGeom.C:68
 AliITSPrintGeom.C:69
 AliITSPrintGeom.C:70
 AliITSPrintGeom.C:71
 AliITSPrintGeom.C:72
 AliITSPrintGeom.C:73
 AliITSPrintGeom.C:74