Line data Source code
1 : /**************************************************************************
2 : * Copyright(c) 2007-2010, ALICE Experiment at CERN, All rights reserved. *
3 : * *
4 : * Author: The ALICE Off-line Project. *
5 : * Contributors are mentioned in the code where appropriate. *
6 : * *
7 : * Permission to use, copy, modify and distribute this software and its *
8 : * documentation strictly for non-commercial purposes is hereby granted *
9 : * without fee, provided that the above copyright notice appears in all *
10 : * copies and that both the copyright notice and this permission notice *
11 : * appear in the supporting documentation. The authors make no claims *
12 : * about the suitability of this software for any purpose. It is *
13 : * provided "as is" without express or implied warranty. *
14 : **************************************************************************/
15 :
16 : //========================================================================
17 : //
18 : // This class generates misalignment for ZDC. In particular it defines
19 : // the misalignment in the three canonical scenarios: "ideal", "residual"
20 : // and "full".
21 : // It is meant to be run standalone or from the steering macro
22 : // $ALICE_ROOT/macros/MakeAlignmentObjs.C
23 : // looping on the detectors.
24 : //
25 : //========================================================================
26 :
27 : #include "AliZDCMisAligner.h"
28 : #include "AliGeomManager.h"
29 : #include "TClonesArray.h"
30 : #include "AliAlignObjParams.h"
31 : #include "AliLog.h"
32 :
33 12 : ClassImp(AliZDCMisAligner)
34 :
35 : //_______________________________________________________________________________________
36 0 : AliZDCMisAligner::AliZDCMisAligner() : AliMisAligner()
37 0 : {
38 : //
39 : // dummy constructor
40 : //
41 0 : }
42 :
43 : //_______________________________________________________________________________________
44 : TClonesArray* AliZDCMisAligner::MakeAlObjsArray() {
45 : // builds and returns the array of alignment objects
46 : // according to the spcified misalignment scenario
47 : // ("ideal", "residual" or "full").
48 : //
49 0 : TClonesArray *array = new TClonesArray("AliAlignObjParams",10);
50 : TClonesArray &alobj = *array;
51 :
52 : Double_t dx,dy,dz,dpsi,dtheta,dphi;
53 0 : if(TString(GetMisalType())=="ideal")
54 : {
55 : dx=0., dy=0., dz=0.;
56 : dpsi=0., dtheta=0., dphi=0.;
57 0 : }else if(TString(GetMisalType())=="residual" || TString(GetMisalType())=="full")
58 : {
59 : dx=0., dy=0.05, dz=0.;
60 : dpsi=0., dtheta=0., dphi=0.;
61 : }else{
62 0 : AliError(Form("\"%s\" is not a valid identifier for misalignment types. Exiting ...",GetMisalType()));
63 0 : return 0;
64 : }
65 :
66 : const char *zdcCn="ZDC/NeutronZDC_C";
67 : const char *zdcCp="ZDC/ProtonZDC_C";
68 : const char *zdcAn="ZDC/NeutronZDC_A";
69 : const char *zdcAp="ZDC/ProtonZDC_A";
70 :
71 : UShort_t iIndex=0;
72 : AliGeomManager::ELayerID iLayer = AliGeomManager::kInvalidLayer;
73 0 : UShort_t volid = AliGeomManager::LayerToVolUID(iLayer,iIndex);
74 :
75 0 : new(alobj[0]) AliAlignObjParams(zdcCn, volid, dx, dy, dz, dpsi, dtheta, dphi, kTRUE);
76 0 : new(alobj[1]) AliAlignObjParams(zdcCp, volid, dx, dy, dz, dpsi, dtheta, dphi, kTRUE);
77 0 : new(alobj[2]) AliAlignObjParams(zdcAn, volid, dx, dy, dz, dpsi, dtheta, dphi, kTRUE);
78 0 : new(alobj[3]) AliAlignObjParams(zdcAp, volid, dx, dy, dz, dpsi, dtheta, dphi, kTRUE);
79 :
80 : return array;
81 0 : }
82 :
83 : //_______________________________________________________________________________________
84 : AliCDBMetaData* AliZDCMisAligner::GetCDBMetaData() const {
85 : // Returns the comment and responsible for the
86 : // AliCDBMetaData to be associated with the OCDB entry
87 : // containing the ZDC array of misalignment objects
88 : //
89 0 : AliCDBMetaData* md = new AliCDBMetaData();
90 0 : md->SetResponsible("Chiara Oppedisano");
91 :
92 0 : if(TString(GetMisalType())=="ideal")
93 0 : md->SetComment("Alignment objects for ZDC ideal misalignment");
94 0 : if(TString(GetMisalType())=="residual")
95 0 : md->SetComment("Alignment objects for ZDC residual misalignment");
96 0 : if(TString(GetMisalType())=="full")
97 0 : md->SetComment("Alignment objects for ZDC full misalignment");
98 :
99 0 : return md;
100 0 : }
|