]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ZDC/AliZDCRecoParamPbPb.cxx
Changes to read back raw data with the new read out card format
[u/mrichter/AliRoot.git] / ZDC / AliZDCRecoParamPbPb.cxx
1 /**************************************************************************
2  * Copyright(c) 2007-2009, 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 ///////////////////////////////////////////////////////////////////////////////
17 //                                                                           //
18 // Class with ZDC reconstruction parameters                                  //
19 // Origin: Chiara.Oppedisano@to.infn.it                                      //
20 //                                                                           //
21 ///////////////////////////////////////////////////////////////////////////////
22
23 #include <TFile.h>
24 #include <TTree.h>
25 #include <TH2F.h>
26 #include <TH1D.h>
27
28 #include "AliZDCRecoParam.h"
29 #include "AliZDCRecoParamPbPb.h"
30
31 ClassImp(AliZDCRecoParamPbPb)
32
33 //_____________________________________________________________________________
34 AliZDCRecoParamPbPb::AliZDCRecoParamPbPb() :
35   AliZDCRecoParam(),
36   fhZDCvsZEM(0x0),
37   fhZDCCvsZEM(0x0),
38   fhZDCAvsZEM(0x0),
39   fhNpartDist(0x0),
40   fhbDist(0x0),
41   fClkCenter(0)
42 {
43   //
44   //Default constructor
45 }
46 //_____________________________________________________________________________
47 AliZDCRecoParamPbPb::AliZDCRecoParamPbPb(TH2F *hZDCvsZEM, TH2F *hZDCCvsZEM, TH2F *hZDCAvsZEM) :
48   AliZDCRecoParam(),
49   fhZDCvsZEM(hZDCvsZEM),
50   fhZDCCvsZEM(hZDCCvsZEM),
51   fhZDCAvsZEM(hZDCAvsZEM),
52   fhNpartDist(0x0),
53   fhbDist(0x0),
54   fClkCenter(0.1)
55 {
56   //
57   //Standard constructor
58   SetGlauberMCDist();
59 }
60 //_____________________________________________________________________________
61 AliZDCRecoParamPbPb::AliZDCRecoParamPbPb(TH2F *hZDCvsZEM, TH2F *hZDCCvsZEM, TH2F *hZDCAvsZEM,
62                       TH1D *hNpart, TH1D *hb, Float_t clkCent) :
63   AliZDCRecoParam(),
64   fhZDCvsZEM(hZDCvsZEM),
65   fhZDCCvsZEM(hZDCCvsZEM),
66   fhZDCAvsZEM(hZDCAvsZEM),
67   fhNpartDist(hNpart),
68   fhbDist(hb),
69   fClkCenter(clkCent)
70 {
71   //
72   //Standard constructor
73 }
74
75 //______________________________________________________________________________
76 AliZDCRecoParamPbPb::AliZDCRecoParamPbPb(const AliZDCRecoParamPbPb &oldrecopar) :
77   AliZDCRecoParam(),
78   fhZDCvsZEM(0x0),
79   fhZDCCvsZEM(0x0),
80   fhZDCAvsZEM(0x0),
81   fhNpartDist(0x0),
82   fhbDist(0x0),
83   fClkCenter(oldrecopar.fClkCenter)
84 {
85   //Copy constructor
86   if(oldrecopar.fhZDCvsZEM){
87     fhZDCvsZEM = new TH2F(*oldrecopar.fhZDCvsZEM);
88     fhZDCvsZEM->SetDirectory(0);
89   }
90   if(oldrecopar.fhZDCCvsZEM){
91     fhZDCCvsZEM = new TH2F(*oldrecopar.fhZDCCvsZEM);
92     fhZDCCvsZEM->SetDirectory(0);
93   }
94   if(oldrecopar.fhZDCAvsZEM){
95     fhZDCAvsZEM = new TH2F(*oldrecopar.fhZDCAvsZEM);
96     fhZDCAvsZEM->SetDirectory(0);
97   }
98   if(oldrecopar.fhNpartDist){
99     fhNpartDist = new TH1D(*oldrecopar.fhNpartDist);
100     fhNpartDist->SetDirectory(0);
101   }
102   if(oldrecopar.fhbDist){
103       fhbDist = new TH1D(*oldrecopar.fhbDist);
104       fhbDist->SetDirectory(0);
105   }
106 }
107
108 //_____________________________________________________________________________
109 AliZDCRecoParamPbPb &AliZDCRecoParamPbPb::operator =(const AliZDCRecoParamPbPb &recpar)
110 {
111   // Equal operator.
112   this->~AliZDCRecoParamPbPb();
113   new(this) AliZDCRecoParamPbPb(recpar);
114   return *this;  
115  
116 }
117  
118 //_____________________________________________________________________________
119 AliZDCRecoParamPbPb::~AliZDCRecoParamPbPb()
120 {
121   // destructor
122
123   if(fhZDCvsZEM)  delete fhZDCvsZEM;
124   if(fhZDCCvsZEM) delete fhZDCCvsZEM;
125   if(fhZDCAvsZEM) delete fhZDCAvsZEM;
126   if(fhNpartDist) delete fhNpartDist;
127   if(fhbDist)     delete fhbDist;
128 }
129
130 //_____________________________________________________________________________
131 void AliZDCRecoParamPbPb::SetGlauberMCDist()
132 {
133   // Setting Glauber MC distributions
134   // from histos file stored in $ALICE_ROOT/ZDC
135   TFile * fileHistos = TFile::Open("$ALICE_ROOT/ZDC/GlauberMCHistos.root");
136   //
137   fhNpartDist = (TH1D*) fileHistos->Get("hDist");
138   fhNpartDist->SetDirectory(0);
139   fhbDist = (TH1D*) fileHistos->Get("hbDist");
140   fhbDist->SetDirectory(0);
141   
142   fileHistos->Close();
143 }
144
145 //_____________________________________________________________________________
146 AliZDCRecoParamPbPb *AliZDCRecoParamPbPb::GetHighFluxParam() 
147 {
148   // Create high flux reco parameter
149   TH1::AddDirectory(0);
150   TH2::AddDirectory(0);
151   //
152   TFile * fileHistos = TFile::Open("$ALICE_ROOT/ZDC/GlauberMCHistos.root");
153   fileHistos->cd();
154   //
155   TH2F *hZDCvsZEM = (TH2F*) fileHistos->Get("hZDCvsZEM");
156   hZDCvsZEM->SetDirectory(0);
157   //
158   TH2F *hZDCCvsZEM = (TH2F*) fileHistos->Get("hZDCCvsZEM");
159   hZDCCvsZEM->SetDirectory(0);
160   //
161   TH2F *hZDCAvsZEM = (TH2F*) fileHistos->Get("hZDCAvsZEM");
162   hZDCAvsZEM->SetDirectory(0);
163   //
164   TH1D* hDist = (TH1D*) fileHistos->Get("hDist");
165   hDist->SetDirectory(0);
166   //
167   TH1D* hbDist = (TH1D*) fileHistos->Get("hbDist");
168   hbDist->SetDirectory(0);
169   
170   AliZDCRecoParamPbPb* zdcRecoParam = new AliZDCRecoParamPbPb(hZDCvsZEM, hZDCCvsZEM, 
171               hZDCAvsZEM, hDist, hbDist, 0.1);
172   //
173   fileHistos->Close();
174               
175   return zdcRecoParam;
176   
177 }