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 MUONGenerateTestGMS.C
/// \brief Macro to generate ad hoc GMS alignment matrices in the agreed format
///
/// TClonesArray is saved in the Root file with a key "GMSarray"
/// containing TGeoHMatrix objects with TObject::fUniqueID equal to the geometry
/// module Ids
///
/// \author I. Hrivnacova, IPN Orsay

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

#include "AliMpConstants.h"

#include <TFile.h>
#include <TGeoMatrix.h>
#include <TClonesArray.h>

#endif

void MUONGenerateTestGMS(Bool_t print = kFALSE)
{
/// \param print option to switch on printing the processed matrices

  TFile f("data/GMS.root", "RECREATE");
  TClonesArray* array = new TClonesArray("TGeoHMatrix",100);
  
  for (Int_t i=0; i<AliMpConstants::NofGeomModules(); i++) {
    TGeoHMatrix* m = new((*array)[i]) TGeoHMatrix(); 
    m->SetUniqueID(i);
    /// rotate by small angle
    m->RotateX(i*0.01);
    
    if (print) m->Print();
  }
  
  f.WriteObject(array,"GMSarray");
  f.Close();
}  
 MUONGenerateTestGMS.C:1
 MUONGenerateTestGMS.C:2
 MUONGenerateTestGMS.C:3
 MUONGenerateTestGMS.C:4
 MUONGenerateTestGMS.C:5
 MUONGenerateTestGMS.C:6
 MUONGenerateTestGMS.C:7
 MUONGenerateTestGMS.C:8
 MUONGenerateTestGMS.C:9
 MUONGenerateTestGMS.C:10
 MUONGenerateTestGMS.C:11
 MUONGenerateTestGMS.C:12
 MUONGenerateTestGMS.C:13
 MUONGenerateTestGMS.C:14
 MUONGenerateTestGMS.C:15
 MUONGenerateTestGMS.C:16
 MUONGenerateTestGMS.C:17
 MUONGenerateTestGMS.C:18
 MUONGenerateTestGMS.C:19
 MUONGenerateTestGMS.C:20
 MUONGenerateTestGMS.C:21
 MUONGenerateTestGMS.C:22
 MUONGenerateTestGMS.C:23
 MUONGenerateTestGMS.C:24
 MUONGenerateTestGMS.C:25
 MUONGenerateTestGMS.C:26
 MUONGenerateTestGMS.C:27
 MUONGenerateTestGMS.C:28
 MUONGenerateTestGMS.C:29
 MUONGenerateTestGMS.C:30
 MUONGenerateTestGMS.C:31
 MUONGenerateTestGMS.C:32
 MUONGenerateTestGMS.C:33
 MUONGenerateTestGMS.C:34
 MUONGenerateTestGMS.C:35
 MUONGenerateTestGMS.C:36
 MUONGenerateTestGMS.C:37
 MUONGenerateTestGMS.C:38
 MUONGenerateTestGMS.C:39
 MUONGenerateTestGMS.C:40
 MUONGenerateTestGMS.C:41
 MUONGenerateTestGMS.C:42
 MUONGenerateTestGMS.C:43
 MUONGenerateTestGMS.C:44
 MUONGenerateTestGMS.C:45
 MUONGenerateTestGMS.C:46
 MUONGenerateTestGMS.C:47
 MUONGenerateTestGMS.C:48
 MUONGenerateTestGMS.C:49
 MUONGenerateTestGMS.C:50
 MUONGenerateTestGMS.C:51
 MUONGenerateTestGMS.C:52
 MUONGenerateTestGMS.C:53
 MUONGenerateTestGMS.C:54
 MUONGenerateTestGMS.C:55
 MUONGenerateTestGMS.C:56
 MUONGenerateTestGMS.C:57