Adding PiKP-only histograms and eliminating a number of switches where histograms...
[u/mrichter/AliRoot.git] / MUON / AliMUONChamber.cxx
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 ClassImp(AliMUONChamber)        
39 /// \endcond
40
41 //_______________________________________________________
42 AliMUONChamber::AliMUONChamber()
43   : TObject(), 
44     fId(0),
45     fCurrentCorrel(1), // to avoid mistakes if ChargeCorrelInit is not called
46     fResponse(0),
47     fMUON(0)
48 {
49 /// Default constructor
50
51   AliDebug(1, Form("default (empty) ctor this = %p", this));
52 }
53
54 //_______________________________________________________
55 AliMUONChamber::AliMUONChamber(Int_t id) 
56   : TObject(), 
57     fId(id),
58     fCurrentCorrel(1), // to avoid mistakes if ChargeCorrelInit is not called
59     fResponse(0),
60     fMUON(0)
61 {
62 /// Standard constructor
63
64     // muon
65     fMUON = (AliMUON*)gAlice->GetModule("MUON");
66     if (!fMUON) {
67       AliFatal("MUON detector not defined.");
68       return;
69     }  
70
71   AliDebug(1, Form("ctor this = %p", this) ); 
72 }
73
74 //_______________________________________________________
75 AliMUONChamber::~AliMUONChamber() 
76 {
77 /// Destructor
78
79   AliDebug(1, Form("dtor this = %p", this));
80   delete fResponse;
81 }
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     fCurrentCorrel = TMath::Exp(gRandom->Gaus(0,fResponse->ChargeCorrel()/2));
92 }
93
94 //_____________________________________________________________________________
95 void
96 AliMUONChamber::SetResponseModel(const AliMUONResponse& thisResponse)
97 {
98   delete fResponse;
99   fResponse = static_cast<AliMUONResponse*>(thisResponse.Clone());
100 }
101