CMS 3D CMS Logo

EntryLengthAffCentre.cc
Go to the documentation of this file.
1 // COCOA class implementation file
2 //Id: EntryLengthAffCentre.C
3 //CAT: Model
4 //
5 // History: v1.0
6 // Pedro Arce
7 
11 
12 
13 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
15  : EntryLength( type )
16 {
17 }
18 
19 
20 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
22 {
23  ALIstring nn = "Centre ";
24  nn += name;
25  setName( nn );
26 }
27 
28 
29 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
30 //@@
31 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
33 {
34  if(ALIUtils::debug>=9) std::cout << "EntryLengthAffCentre::Displace" << disp <<std::endl;
35  ALIint namelength = name().length()-1;
36  XYZcoor axisNo = XCoor;
37  if ( name_[namelength] == 'X' ) {
38  axisNo = XCoor;
39  } else if ( name_[namelength] == 'Y' ) {
40  axisNo = YCoor;
41  } else if ( name_[namelength] == 'Z' ) {
42  axisNo = ZCoor;
43  }
44  OptOCurrent()->displaceCentreGlob( axisNo, disp );
45 
46 }
47 
48 
49 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
51 {
52  if(ALIUtils::debug>=9) std::cout << "EntryLengthAffCentre::DisplaceOriginal" << disp <<std::endl;
53  ALIint namelength = name().length()-1;
54  if ( name_[namelength] == 'X' ) {
56  } else if ( name_[namelength] == 'Y' ) {
58  } else if ( name_[namelength] == 'Z' ) {
60  }
61 
62 }
63 
64 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
66 {
67  if(ALIUtils::debug>=9) std::cout << "EntryLengthAffCentre::DisplaceOriginalOriginal" << disp <<std::endl;
68  ALIint namelength = name().length()-1;
69  if ( name_[namelength] == 'X' ) {
71  } else if ( name_[namelength] == 'Y' ) {
73  } else if ( name_[namelength] == 'Z' ) {
75  }
76 
77 }
78 
79 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
81 {
82  ALIdouble a=2.;
83 
84  return a;
85 }
86 
87 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
89 {
90  ALIdouble vdisp = 0.;
91 
92  CLHEP::Hep3Vector cdisp = OptOCurrent()->centreGlob() - OptOCurrent()->centreGlobOriginal();
93  CLHEP::HepRotation rmParentInv = inverseOf( OptOCurrent()->parent()->rmGlob() );
94  cdisp = rmParentInv * cdisp;
95 
96  if( name() == "centre_X" ) {
97  return cdisp.x();
98  }else if( name() == "centre_Y" ) {
99  return cdisp.y();
100  //- return OptOCurrent()->centreLocal().y() - value();
101  }else if( name() == "centre_Z" ) {
102  return cdisp.z();
103  }
104 
105  if ( ALIUtils::debug >= 5 ) std::cout << name() << " in OptO " << OptOCurrent()->name() << " valueDisplaced: " << vdisp << std::endl;
106 
107  return 0.; // to avoid warning
108 }
type
Definition: HCALResponse.h:21
long double ALIdouble
Definition: CocoaGlobals.h:11
virtual void FillName(const ALIstring &name)
void displaceOriginalOriginal(ALIdouble disp) override
void displaceOriginal(ALIdouble disp) override
void displaceCentreGlobOriginal(const XYZcoor coor, const ALIdouble disp)
int ALIint
Definition: CocoaGlobals.h:15
void setName(const ALIstring &name)
Definition: Entry.h:75
static ALIint debug
Definition: ALIUtils.h:36
void displaceCentreGlobOriginalOriginal(const XYZcoor coor, const ALIdouble disp)
XYZcoor
Definition: OpticalObject.h:33
ALIdouble valueDisplaced() const override
void displaceCentreGlob(const XYZcoor coor, const ALIdouble disp)
const CLHEP::Hep3Vector & centreGlobOriginal() const
Definition: OpticalObject.h:95
ALIdouble valueInGlobalReferenceFrame() const override
const ALIstring & name() const
Definition: Entry.h:52
ALIstring name_
Definition: Entry.h:101
const CLHEP::Hep3Vector & centreGlob() const
Definition: OpticalObject.h:85
EntryLengthAffCentre(const ALIstring &type)
double a
Definition: hdecay.h:121
void displace(ALIdouble disp) override
std::string ALIstring
Definition: CocoaGlobals.h:9
const ALIstring & name() const
Definition: OpticalObject.h:60
OpticalObject * OptOCurrent() const
Definition: Entry.h:61