]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/MUONCheckMisAligner.C
New macro for checking new misaligner class.
[u/mrichter/AliRoot.git] / MUON / MUONCheckMisAligner.C
diff --git a/MUON/MUONCheckMisAligner.C b/MUON/MUONCheckMisAligner.C
new file mode 100644 (file)
index 0000000..978d33e
--- /dev/null
@@ -0,0 +1,69 @@
+/**************************************************************************
+ * 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$ */
+
+/*
+  MUONCheckMisAligner: 
+  
+  This macro performs the misalignment on an existing muon arm geometry
+  based on the standard definition of the detector elements in 
+  $ALICE_ROOT/MUON/data
+
+  It uses AliMUONGeometryAligner : 
+  --> creates a new AliMUONGeometryTransformer and AliMUONGeometryAligner
+  --> reads the transformations in from the transform.dat file (make sure that
+  this file is the _standard_ one by comparing it to the one in CVS)
+  --> creates a second AliMUONGeometryTransformer by misaligning the existing 
+  one using AliMUONAligner::MisAlign
+  --> User has to specify the magnitude of the alignments, in the Cartesian 
+  co-ordiantes (which are used to apply translation misalignments) and in the
+  spherical co-ordinates (which are used to apply angular displacements)
+  --> User can also set misalignment ranges by hand using the methods : 
+  SetMaxCartMisAlig, SetMaxAngMisAlig, SetXYAngMisAligFactor
+  (last method takes account of the fact that the misalingment is greatest in 
+  the XY plane, since the detection elements are fixed to a support structure
+  in this plane. Misalignments in the XZ and YZ plane will be very small 
+  compared to those in the XY plane, which are small already - of the order 
+  of microns)
+  Note : If the detection elements are allowed to be misaligned in all
+  directions, this has consequences for the alignment algorithm, which 
+  needs to know the number of free parameters. Eric only allowed 3 : 
+  x,y,theta_xy, but in principle z and the other two angles are alignable
+  as well.  
+
+// Author:Bruce Becker
+
+*/
+
+void MUONCheckMisAligner(Double_t cartmisalig = 1.0, Double_t angmisalig = 10.)
+{
+  
+  AliMUONGeometryTransformer *transform = new AliMUONGeometryTransformer(true);
+  transform->ReadTransformations("transform.dat");
+
+  AliMUONGeometryMisAligner misAligner(cartmisalig,angmisalig);
+
+  AliMUONGeometryTransformer *newTransform = misAligner.MisAlign(transform,true); 
+  newTransform->WriteTransformations("transform2.dat");
+
+  // To run simulation with misaligned geometry, you have to set
+  // the Align option in Config.C:
+  // MUON->SetAlign("transform2.dat");
+}
+
+
+
+