Line data Source code
1 : /**************************************************************************
2 : * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3 : * *
4 : * Author: The ALICE Off-line Project. *
5 : * Contributors are mentioned in the code where appropriate. *
6 : * *
7 : * Permission to use, copy, modify and distribute this software and its *
8 : * documentation strictly for non-commercial purposes is hereby granted *
9 : * without fee, provided that the above copyright notice appears in all *
10 : * copies and that both the copyright notice and this permission notice *
11 : * appear in the supporting documentation. The authors make no claims *
12 : * about the suitability of this software for any purpose. It is *
13 : * provided "as is" without express or implied warranty. *
14 : **************************************************************************/
15 :
16 : /* $Id$ */
17 :
18 : //-----------------------------------------------------------------------------
19 : // Class AliMUONChamber
20 : // -----------------------
21 : // MUON tracking chamber class
22 : // now only providing DisIntegration function
23 : //-----------------------------------------------------------------------------
24 :
25 : // --- ROOT includes ---
26 : #include <TRandom.h>
27 : #include <TMath.h>
28 : #include "AliRun.h"
29 :
30 :
31 : // --- MUON includes ---
32 : #include "AliMUON.h"
33 : #include "AliMUONChamber.h"
34 : #include "AliMUONHit.h"
35 : #include "AliLog.h"
36 :
37 : /// \cond CLASSIMP
38 16 : ClassImp(AliMUONChamber)
39 : /// \endcond
40 :
41 : //_______________________________________________________
42 : AliMUONChamber::AliMUONChamber()
43 168 : : TObject(),
44 168 : fId(0),
45 168 : fCurrentCorrel(1), // to avoid mistakes if ChargeCorrelInit is not called
46 168 : fResponse(0),
47 168 : fMUON(0)
48 744 : {
49 : /// Default constructor
50 :
51 840 : AliDebug(1, Form("default (empty) ctor this = %p", this));
52 288 : }
53 :
54 : //_______________________________________________________
55 : AliMUONChamber::AliMUONChamber(Int_t id)
56 14 : : TObject(),
57 14 : fId(id),
58 14 : fCurrentCorrel(1), // to avoid mistakes if ChargeCorrelInit is not called
59 14 : fResponse(0),
60 14 : fMUON(0)
61 62 : {
62 : /// Standard constructor
63 :
64 : // muon
65 28 : fMUON = (AliMUON*)gAlice->GetModule("MUON");
66 14 : if (!fMUON) {
67 0 : AliFatal("MUON detector not defined.");
68 : return;
69 : }
70 :
71 70 : AliDebug(1, Form("ctor this = %p", this) );
72 24 : }
73 :
74 : //_______________________________________________________
75 : AliMUONChamber::~AliMUONChamber()
76 884 : {
77 : /// Destructor
78 :
79 910 : AliDebug(1, Form("dtor this = %p", this));
80 364 : delete fResponse;
81 442 : }
82 :
83 : //_____________________________________________________
84 : void AliMUONChamber::ChargeCorrelationInit()
85 : {
86 : /// Initialisation of charge correlation for current hit
87 : /// the value is stored, and then used by Disintegration
88 :
89 : // exponential is here to avoid eventual problems in 0
90 : // factor 2 because chargecorrel is q1/q2 and not q1/qtrue
91 0 : fCurrentCorrel = TMath::Exp(gRandom->Gaus(0,fResponse->ChargeCorrel()/2));
92 0 : }
93 :
94 : //_____________________________________________________________________________
95 : void
96 : AliMUONChamber::SetResponseModel(const AliMUONResponse& thisResponse)
97 : {
98 28 : delete fResponse;
99 14 : fResponse = static_cast<AliMUONResponse*>(thisResponse.Clone());
100 14 : }
101 :
|