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$
//
/// \ingroup macros
/// \file MUONGenerateGeometryData.C
/// \brief Macro for generating the geometry data files:
///  transform.dat, svmap.dat.
///
/// To be run from aliroot:
///
/// .x MUONGenerateGeometryData.C
///
/// The generated files do not replace the existing ones
/// but have different names (with extension ".out").
///
/// \author: I. Hrivnacova, IPN Orsay

#if !defined(__CINT__) || defined(__MAKECINT__)

#include "AliMUON.h"
#include "AliMUONGeometryBuilder.h"
#include "AliMUONGeometryTransformer.h"

#include "AliRun.h"
#include "AliCDBManager.h"
#include "AliMC.h"

#include <Riostream.h>
#include <TROOT.h>
#include <TInterpreter.h>

#endif

void MUONGenerateGeometryData(Bool_t transforms = true, 
                              Bool_t svmaps = true,
                              Bool_t writeEnvelopes = true)
{
/// \param transforms      option to generete transform.dat
/// \param svmaps          option to generete svmap.dat
/// \param writeEnvelope   option to include virtual envelopes
///                        in the volume paths

  // Default CDB and run number
  AliCDBManager* man = AliCDBManager::Instance();
  man->SetDefaultStorage("local://$ALICE_ROOT/OCDB");
  man->SetRun(0);

  // Initialize
  TString configFileName = "$ALICE_ROOT/MUON/Config.C";
  gROOT->LoadMacro(configFileName.Data());
  gInterpreter->ProcessLine(gAlice->GetConfigFunction());
  gAlice->GetMCApp()->Init();
  cout << "Init done " << endl;

  // Get MUON detector
  AliMUON* muon = (AliMUON*)gAlice->GetModule("MUON");
  if (!muon) {
    cerr << "MUON detector not defined." << endl;
    return;
  }  

  // Get geometry builder
  AliMUONGeometryBuilder* builder = muon ->GetGeometryBuilder();

  if (transforms) {
    cout << "Generating transformation file ..." << endl;
    builder->GetTransformer()->WriteTransformations("transform.dat.out");
  }  

  if (svmaps) {
    cout << "Generating svmaps file ..." << endl;
    builder->WriteSVMaps("svmap.dat.out", true, writeEnvelopes);
  }  
}  
 MUONGenerateGeometryData.C:1
 MUONGenerateGeometryData.C:2
 MUONGenerateGeometryData.C:3
 MUONGenerateGeometryData.C:4
 MUONGenerateGeometryData.C:5
 MUONGenerateGeometryData.C:6
 MUONGenerateGeometryData.C:7
 MUONGenerateGeometryData.C:8
 MUONGenerateGeometryData.C:9
 MUONGenerateGeometryData.C:10
 MUONGenerateGeometryData.C:11
 MUONGenerateGeometryData.C:12
 MUONGenerateGeometryData.C:13
 MUONGenerateGeometryData.C:14
 MUONGenerateGeometryData.C:15
 MUONGenerateGeometryData.C:16
 MUONGenerateGeometryData.C:17
 MUONGenerateGeometryData.C:18
 MUONGenerateGeometryData.C:19
 MUONGenerateGeometryData.C:20
 MUONGenerateGeometryData.C:21
 MUONGenerateGeometryData.C:22
 MUONGenerateGeometryData.C:23
 MUONGenerateGeometryData.C:24
 MUONGenerateGeometryData.C:25
 MUONGenerateGeometryData.C:26
 MUONGenerateGeometryData.C:27
 MUONGenerateGeometryData.C:28
 MUONGenerateGeometryData.C:29
 MUONGenerateGeometryData.C:30
 MUONGenerateGeometryData.C:31
 MUONGenerateGeometryData.C:32
 MUONGenerateGeometryData.C:33
 MUONGenerateGeometryData.C:34
 MUONGenerateGeometryData.C:35
 MUONGenerateGeometryData.C:36
 MUONGenerateGeometryData.C:37
 MUONGenerateGeometryData.C:38
 MUONGenerateGeometryData.C:39
 MUONGenerateGeometryData.C:40
 MUONGenerateGeometryData.C:41
 MUONGenerateGeometryData.C:42
 MUONGenerateGeometryData.C:43
 MUONGenerateGeometryData.C:44
 MUONGenerateGeometryData.C:45
 MUONGenerateGeometryData.C:46
 MUONGenerateGeometryData.C:47
 MUONGenerateGeometryData.C:48
 MUONGenerateGeometryData.C:49
 MUONGenerateGeometryData.C:50
 MUONGenerateGeometryData.C:51
 MUONGenerateGeometryData.C:52
 MUONGenerateGeometryData.C:53
 MUONGenerateGeometryData.C:54
 MUONGenerateGeometryData.C:55
 MUONGenerateGeometryData.C:56
 MUONGenerateGeometryData.C:57
 MUONGenerateGeometryData.C:58
 MUONGenerateGeometryData.C:59
 MUONGenerateGeometryData.C:60
 MUONGenerateGeometryData.C:61
 MUONGenerateGeometryData.C:62
 MUONGenerateGeometryData.C:63
 MUONGenerateGeometryData.C:64
 MUONGenerateGeometryData.C:65
 MUONGenerateGeometryData.C:66
 MUONGenerateGeometryData.C:67
 MUONGenerateGeometryData.C:68
 MUONGenerateGeometryData.C:69
 MUONGenerateGeometryData.C:70
 MUONGenerateGeometryData.C:71
 MUONGenerateGeometryData.C:72
 MUONGenerateGeometryData.C:73
 MUONGenerateGeometryData.C:74
 MUONGenerateGeometryData.C:75
 MUONGenerateGeometryData.C:76
 MUONGenerateGeometryData.C:77
 MUONGenerateGeometryData.C:78
 MUONGenerateGeometryData.C:79
 MUONGenerateGeometryData.C:80
 MUONGenerateGeometryData.C:81
 MUONGenerateGeometryData.C:82
 MUONGenerateGeometryData.C:83
 MUONGenerateGeometryData.C:84
 MUONGenerateGeometryData.C:85
 MUONGenerateGeometryData.C:86
 MUONGenerateGeometryData.C:87
 MUONGenerateGeometryData.C:88
 MUONGenerateGeometryData.C:89