ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/

/* $Id$ */

//-----------------------------------------------------------------------------
// Class AliMUONChamber
// -----------------------
// MUON tracking chamber class
// now only providing DisIntegration function
//-----------------------------------------------------------------------------

// --- ROOT includes ---
#include <TRandom.h>
#include <TMath.h>
#include "AliRun.h"


// --- MUON includes ---
#include "AliMUON.h"
#include "AliMUONChamber.h"
#include "AliMUONHit.h"
#include "AliLog.h"

/// \cond CLASSIMP
ClassImp(AliMUONChamber)	
/// \endcond

//_______________________________________________________
AliMUONChamber::AliMUONChamber()
  : TObject(), 
    fId(0),
    fCurrentCorrel(1), // to avoid mistakes if ChargeCorrelInit is not called
    fResponse(0),
    fMUON(0)
{
/// Default constructor

  AliDebug(1, Form("default (empty) ctor this = %p", this));
}

//_______________________________________________________
AliMUONChamber::AliMUONChamber(Int_t id) 
  : TObject(), 
    fId(id),
    fCurrentCorrel(1), // to avoid mistakes if ChargeCorrelInit is not called
    fResponse(0),
    fMUON(0)
{
/// Standard constructor

    // muon
    fMUON = (AliMUON*)gAlice->GetModule("MUON");
    if (!fMUON) {
      AliFatal("MUON detector not defined.");
      return;
    }  

  AliDebug(1, Form("ctor this = %p", this) ); 
}

//_______________________________________________________
AliMUONChamber::~AliMUONChamber() 
{
/// Destructor

  AliDebug(1, Form("dtor this = %p", this));
  delete fResponse;
}

//_____________________________________________________
void AliMUONChamber::ChargeCorrelationInit() 
{
/// Initialisation of charge correlation for current hit
/// the value is stored, and then used by Disintegration

  // exponential is here to avoid eventual problems in 0 
  // factor 2 because chargecorrel is q1/q2 and not q1/qtrue
    fCurrentCorrel = TMath::Exp(gRandom->Gaus(0,fResponse->ChargeCorrel()/2));
}

//_____________________________________________________________________________
void
AliMUONChamber::SetResponseModel(const AliMUONResponse& thisResponse)
{
  delete fResponse;
  fResponse = static_cast<AliMUONResponse*>(thisResponse.Clone());
}

 AliMUONChamber.cxx:1
 AliMUONChamber.cxx:2
 AliMUONChamber.cxx:3
 AliMUONChamber.cxx:4
 AliMUONChamber.cxx:5
 AliMUONChamber.cxx:6
 AliMUONChamber.cxx:7
 AliMUONChamber.cxx:8
 AliMUONChamber.cxx:9
 AliMUONChamber.cxx:10
 AliMUONChamber.cxx:11
 AliMUONChamber.cxx:12
 AliMUONChamber.cxx:13
 AliMUONChamber.cxx:14
 AliMUONChamber.cxx:15
 AliMUONChamber.cxx:16
 AliMUONChamber.cxx:17
 AliMUONChamber.cxx:18
 AliMUONChamber.cxx:19
 AliMUONChamber.cxx:20
 AliMUONChamber.cxx:21
 AliMUONChamber.cxx:22
 AliMUONChamber.cxx:23
 AliMUONChamber.cxx:24
 AliMUONChamber.cxx:25
 AliMUONChamber.cxx:26
 AliMUONChamber.cxx:27
 AliMUONChamber.cxx:28
 AliMUONChamber.cxx:29
 AliMUONChamber.cxx:30
 AliMUONChamber.cxx:31
 AliMUONChamber.cxx:32
 AliMUONChamber.cxx:33
 AliMUONChamber.cxx:34
 AliMUONChamber.cxx:35
 AliMUONChamber.cxx:36
 AliMUONChamber.cxx:37
 AliMUONChamber.cxx:38
 AliMUONChamber.cxx:39
 AliMUONChamber.cxx:40
 AliMUONChamber.cxx:41
 AliMUONChamber.cxx:42
 AliMUONChamber.cxx:43
 AliMUONChamber.cxx:44
 AliMUONChamber.cxx:45
 AliMUONChamber.cxx:46
 AliMUONChamber.cxx:47
 AliMUONChamber.cxx:48
 AliMUONChamber.cxx:49
 AliMUONChamber.cxx:50
 AliMUONChamber.cxx:51
 AliMUONChamber.cxx:52
 AliMUONChamber.cxx:53
 AliMUONChamber.cxx:54
 AliMUONChamber.cxx:55
 AliMUONChamber.cxx:56
 AliMUONChamber.cxx:57
 AliMUONChamber.cxx:58
 AliMUONChamber.cxx:59
 AliMUONChamber.cxx:60
 AliMUONChamber.cxx:61
 AliMUONChamber.cxx:62
 AliMUONChamber.cxx:63
 AliMUONChamber.cxx:64
 AliMUONChamber.cxx:65
 AliMUONChamber.cxx:66
 AliMUONChamber.cxx:67
 AliMUONChamber.cxx:68
 AliMUONChamber.cxx:69
 AliMUONChamber.cxx:70
 AliMUONChamber.cxx:71
 AliMUONChamber.cxx:72
 AliMUONChamber.cxx:73
 AliMUONChamber.cxx:74
 AliMUONChamber.cxx:75
 AliMUONChamber.cxx:76
 AliMUONChamber.cxx:77
 AliMUONChamber.cxx:78
 AliMUONChamber.cxx:79
 AliMUONChamber.cxx:80
 AliMUONChamber.cxx:81
 AliMUONChamber.cxx:82
 AliMUONChamber.cxx:83
 AliMUONChamber.cxx:84
 AliMUONChamber.cxx:85
 AliMUONChamber.cxx:86
 AliMUONChamber.cxx:87
 AliMUONChamber.cxx:88
 AliMUONChamber.cxx:89
 AliMUONChamber.cxx:90
 AliMUONChamber.cxx:91
 AliMUONChamber.cxx:92
 AliMUONChamber.cxx:93
 AliMUONChamber.cxx:94
 AliMUONChamber.cxx:95
 AliMUONChamber.cxx:96
 AliMUONChamber.cxx:97
 AliMUONChamber.cxx:98
 AliMUONChamber.cxx:99
 AliMUONChamber.cxx:100
 AliMUONChamber.cxx:101