All Mathieson parameters (Sqrt(K3), K2 and K4) set in one function,
authorgosset <gosset@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 21 Nov 2000 13:47:55 +0000 (13:47 +0000)
committergosset <gosset@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 21 Nov 2000 13:47:55 +0000 (13:47 +0000)
SetSqrtKx3AndDeriveKx2Kx4 or SetSqrtKx3AndDeriveKx2Kx4,
for each cathode plane

MUON/AliMUONResponseV0.cxx
MUON/AliMUONResponseV0.h
MUON/Config_slat.C

index 244901f..98393fd 100644 (file)
@@ -15,6 +15,9 @@
 
 /*
 $Log$
+Revision 1.4  2000/10/25 10:41:52  morsch
+IntPH(..): Protec Log against random numbers equal to 0.
+
 Revision 1.3  2000/07/03 11:54:57  morsch
 AliMUONSegmentation and AliMUONHitMap have been replaced by AliSegmentation and AliHitMap in STEER
 The methods GetPadIxy and GetPadXxy of AliMUONSegmentation have changed name to GetPadI and GetPadC.
@@ -33,7 +36,34 @@ AliMUONResponse code  from  AliMUONSegResV0.cxx
 #include <TRandom.h>
 
 
-ClassImp(AliMUONResponseV0)    
+ClassImp(AliMUONResponseV0)
+       
+  //__________________________________________________________________________
+void AliMUONResponseV0::SetSqrtKx3AndDeriveKx2Kx4(Float_t SqrtKx3)
+{
+  // Set to "SqrtKx3" the Mathieson parameter K3 ("fSqrtKx3")
+  // in the X direction, perpendicular to the wires,
+  // and derive the Mathieson parameters K2 ("fKx2") and K4 ("fKx4")
+  // in the same direction
+  fSqrtKx3 = SqrtKx3;
+  fKx2 = TMath::Pi() / 2. * (1. - 0.5 * fSqrtKx3);
+  Float_t cx1 = fKx2 * fSqrtKx3 / 4. / TMath::ATan(Double_t(fSqrtKx3));
+  fKx4 = cx1 / fKx2 / fSqrtKx3;
+}
+       
+  //__________________________________________________________________________
+void AliMUONResponseV0::SetSqrtKy3AndDeriveKy2Ky4(Float_t SqrtKy3)
+{
+  // Set to "SqrtKy3" the Mathieson parameter K3 ("fSqrtKy3")
+  // in the Y direction, along the wires,
+  // and derive the Mathieson parameters K2 ("fKy2") and K4 ("fKy4")
+  // in the same direction
+  fSqrtKy3 = SqrtKy3;
+  fKy2 = TMath::Pi() / 2. * (1. - 0.5 * fSqrtKy3);
+  Float_t cy1 = fKy2 * fSqrtKy3 / 4. / TMath::ATan(Double_t(fSqrtKy3));
+  fKy4 = cy1 / fKy2 / fSqrtKy3;
+}
+
 Float_t AliMUONResponseV0::IntPH(Float_t eloss)
 {
   // Calculate charge from given ionization energy loss
index 0fb5f3a..2a2a28c 100644 (file)
@@ -43,12 +43,16 @@ public AliMUONResponse {
     // Get anode cathode Pitch
     virtual void    SetPitch(Float_t p1) {fPitch=p1;};
     // Set Mathieson parameters
+    // Mathieson \sqrt{Kx3} and derived Kx2 and Kx4
+    virtual void SetSqrtKx3AndDeriveKx2Kx4(Float_t SqrtKx3);
     // Mathieson \sqrt{Kx3}
     virtual void    SetSqrtKx3(Float_t p1) {fSqrtKx3=p1;};
     // Mathieson Kx2
     virtual void    SetKx2(Float_t p1) {fKx2=p1;};
     // Mathieson Kx4
     virtual void    SetKx4(Float_t p1) {fKx4=p1;};
+    // Mathieson \sqrt{Ky3} and derived Ky2 and Ky4
+    virtual void SetSqrtKy3AndDeriveKy2Ky4(Float_t SqrtKy3);
     // Mathieson \sqrt{Ky3}
     virtual void    SetSqrtKy3(Float_t p1) {fSqrtKy3=p1;};
     // Mathieson Ky2
@@ -72,12 +76,12 @@ public AliMUONResponse {
     Float_t fSigmaIntegration;         // Number of sigma's used for charge distribution
     Int_t   fMaxAdc;                   // Maximum ADC channel
     Int_t   fZeroSuppression;          // Zero suppression threshold
-    Float_t fSqrtKx3;                  // Mathieson \Sqrt{Kx3)
+    Float_t fSqrtKx3;                  // Mathieson Sqrt(Kx3)
     Float_t fKx2;                      // Mathieson Kx2
-    Float_t fKx4;                      // Mathieson Kx4    
-    Float_t fSqrtKy3;                  // Mathieson \Sqrt{Kx3)
+    Float_t fKx4;                      // Mathieson Kx4 = Kx1/Kx2/Sqrt(Kx3)  
+    Float_t fSqrtKy3;                  // Mathieson Sqrt(Ky3)
     Float_t fKy2;                      // Mathieson Ky2
-    Float_t fKy4;                      // Mathieson Ky4
+    Float_t fKy4;                      // Mathieson Ky4 = Ky1/Ky2/Sqrt(Ky3)
     Float_t fPitch;                    // anode-cathode pitch
 };
 #endif
index 96f36d0..f933c28 100644 (file)
@@ -355,12 +355,8 @@ AliMUON *MUON  = new AliMUONv1("MUON","normal MUON");
  Int_t station;
 // Default response
  AliMUONResponseV0* response0 = new AliMUONResponseV0;
- response0->SetSqrtKx3(0.7131);
- response0->SetKx2(1.0107);
- response0->SetKx4(0.4036);
- response0->SetSqrtKy3(0.7642);
- response0->SetKy2(0.9706);
- response0->SetKy4(0.3831);
+ response0->SetSqrtKx3AndDeriveKx2Kx4(0.7131);
+ response0->SetSqrtKy3AndDeriveKy2Ky4(0.7642);
  response0->SetPitch(0.25);
  response0->SetSigmaIntegration(10.);
  response0->SetChargeSlope(50);