1 #ifndef ALIEMCALSHISHKEBABMODULE_H
2 #define ALIEMCALSHISHKEBABMODULE_H
4 /* Copyright(c) 1998-2004, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
12 class AliEMCALGeometry;
14 class AliEMCALShishKebabModule : public TNamed {
16 AliEMCALShishKebabModule(const double theta=TMath::Pi()/2.);
17 AliEMCALShishKebabModule(AliEMCALShishKebabModule &leftNeighbor);
18 void Init(const double A,const double B);
20 virtual ~AliEMCALShishKebabModule(void) {}
21 Bool_t GetParameters();
22 void DefineName(const double theta);
23 void DefineFirstModule();
24 void DefineSecondModuleFirstAssumption(); // need for testing
26 Double_t Solve(Double_t (*fcn)(Double_t*, Double_t*), Double_t xmin=0., Double_t xmax=1.,
27 Int_t npar=0, Double_t *par=0, Double_t eps=1.0e-8, Int_t maxIter=1000);
29 static Double_t Y2(double *x, double *par);
30 static Double_t YALL(double *x, double *par);
32 Double_t GetTheta() const {return fTheta;}
33 Double_t GetThetaInDegree() const {return fTheta*180./TMath::Pi();}
35 Double_t GetPosX() {return fOK.Y();}
36 Double_t GetPosZ() {return fOK.X();}
37 Double_t GetPosXfromR() {return fOK.Y() - fgr;}
38 Double_t GetA() {return fA;}
39 Double_t GetB() {return fB;}
42 static AliEMCALGeometry *fgGeometry; //!
43 static Double_t fga; // default 11.2cm
44 static Double_t fgb; //
48 TVector2 fOK; // position the module center x->y; z->x;
49 Double_t fA; // parameters of line = y = A*z + B
52 void Print(const int pri=1) const; // *MENU*
55 Double_t fTheta; // theta for SK module
57 ClassDef(AliEMCALShishKebabModule,0) // Turned Shish-Kebab module
62 1. Insert position the center of towers - 2 additional TVector2