]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/AliITSAlignMille2Constraint.cxx
Add class to access simulation parameters, AliEMCALSimParam, to be set in configurati...
[u/mrichter/AliRoot.git] / ITS / AliITSAlignMille2Constraint.cxx
1 /*-----------------------------------------------------------------------------------------
2 Simple constraint on the subunits of the module ID (if ID>=0) or all modules w/o 
3 parents (ID=-1): the mean or median of the GLOBAL corrections of each parameter requested
4 in the pattern must be = 0. When added explicitly to the fit it requires addition of 
5 Lagrange multipliers which may require more powerfull matrix preconditioners. For this 
6 reason we usually ommit the constrain from explicit fit and apply it afterwards to obtained
7 parameters (with median constraint this is the only method possible) 
8
9 Author: ruben.shahoyan@cern.ch
10 ------------------------------------------------------------------------------------------*/
11 #include "AliITSAlignMille2Constraint.h"
12 #include "AliITSAlignMille2Module.h"
13
14
15
16 ClassImp(AliITSAlignMille2Constraint)
17
18 //________________________________________________________________________________________________________
19 AliITSAlignMille2Constraint::AliITSAlignMille2Constraint() :
20 TNamed(),
21 fType(kTypeMean),
22 fVal(0),
23 fModuleID(0),
24 fApplied(0)
25 {}
26
27 //________________________________________________________________________________________________________
28 AliITSAlignMille2Constraint::AliITSAlignMille2Constraint(const Char_t* name,Int_t t,Int_t mdID,Double_t val,UInt_t pattern) :
29 TNamed(name,""),
30 fType(t),
31 fVal(val),
32 fModuleID(mdID),
33 fApplied(0)
34 {
35   SetPattern(pattern);
36 }
37
38 //________________________________________________________________________________________________________
39 AliITSAlignMille2Constraint::AliITSAlignMille2Constraint(const AliITSAlignMille2Constraint& src) :
40 TNamed(src),
41 fType(src.fType),
42 fVal(src.fVal),
43 fModuleID(src.fModuleID),
44 fApplied(src.fApplied)
45 {/* DUMMY */} 
46
47 //________________________________________________________________________________________________________
48 Bool_t AliITSAlignMille2Constraint::IncludesModPar(const AliITSAlignMille2Module* mod, Int_t par) const
49 {
50   // is this module/parameter mentioned in the list?
51   if (!IncludesParam(par)) return kFALSE;
52   if (fModuleID==-1 && !mod->GetParent()) return kTRUE;
53   return IncludesModule( mod->GetUniqueID() );
54 }
55
56
57 //________________________________________________________________________________________________________
58 void AliITSAlignMille2Constraint::Print(Option_t* ) const
59 {
60   printf("#%3d Constraint %s of type %d on module %d to value %+e\n",GetConstraintID(),GetName(),GetType(),GetModuleID(),GetValue());
61   printf("Paremeters: ");
62   for (int i=0;i<=8;i++) if (TestBit(0x1<<i)) printf("%d ",i); printf("\n");
63   //
64 }
65