]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/PHOS/AliHLTPHOSPhysicsAnalyzer.cxx
Updated DA for mapping - MON
[u/mrichter/AliRoot.git] / HLT / PHOS / AliHLTPHOSPhysicsAnalyzer.cxx
1 /**************************************************************************
2  * This file is property of and copyright by the ALICE HLT Project        * 
3  * All rights reserved.                                                   *
4  *                                                                        *
5  * Primary Authors: Oystein Djuvsland                                     *
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  * @file   AliHLTPHOSPhysicsAnalyzer.cxx
18  * @author Oystein Djuvsland
19  * @date 
20  * @brief  Physics analysis base class  */
21
22 // see header file for class documentation
23 // or
24 // refer to README to build package
25 // or
26 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
27
28 #include "AliHLTPHOSPhysicsAnalyzer.h"
29 #include "TVector3.h"
30 #include "TFile.h"
31 #include "TMath.h"
32 #include "TH1F.h"
33 #include "AliPHOSGeometry.h"
34 #include "Rtypes.h"
35 #include "AliHLTPHOSCommonDefs.h"
36 #include "AliHLTPHOSRecPointDataStruct.h"
37  
38
39 ClassImp(AliHLTPHOSPhysicsAnalyzer);
40
41 AliHLTPHOSPhysicsAnalyzer::AliHLTPHOSPhysicsAnalyzer():
42   fRecPointsPtr(0), 
43   fRootHistPtr(0), 
44   fPHOSRadius(0)
45 {
46   //Constructor
47   //See header file for documentation
48   AliPHOSGeometry *geom=AliPHOSGeometry::GetInstance("noCPV");
49
50   //  fPHOSRadius = geom->GetIPtoCrystalSurface();
51   fPHOSRadius = geom->GetIPtoCrystalSurface();
52
53   for(int i = 0; i < N_MODULES; i++)
54     {
55 //       fRotParametersCos[i] = cos((geom->GetPHOSAngle(i+1))*2*TMath::Pi()/360);
56 //       fRotParametersSin[i] = sin((geom->GetPHOSAngle(i+1))*2*TMath::Pi()/360);
57       fRotParametersCos[i] = cos((geom->GetPHOSAngle(i))*2*TMath::Pi()/360);
58       fRotParametersSin[i] = sin((geom->GetPHOSAngle(i))*2*TMath::Pi()/360);
59
60     }
61 }
62 /*
63 AliHLTPHOSPhysicsAnalyzer::AliHLTPHOSPhysicsAnalyzer(const AliHLTPHOSPhysicsAnalyzer &):fClustersPtr(0), fRootHistPtr(0), fPHOSRadius(0)
64
65 {
66   //Cooy constructor
67   //See header file for documentation
68   AliPHOSGeometry *geom=AliPHOSGeometry::GetInstance("noCPV");
69
70   fPHOSRadius = geom->GetIPtoCrystalSurface();
71   
72   for(UInt_t i = 0; i < N_MODULES; i++)
73     {
74       fRotParametersCos[i] = cos((geom->GetPHOSAngle(i+1))*2*TMath::Pi()/360);
75       
76       fRotParametersSin[i] = sin((geom->GetPHOSAngle(i+1))*2*TMath::Pi()/360);
77     }
78
79 }
80 */
81
82 AliHLTPHOSPhysicsAnalyzer::~AliHLTPHOSPhysicsAnalyzer()
83 {
84   //Destructor
85   //See header file for documentation
86   fRecPointsPtr = 0;
87   fRootHistPtr = 0;
88 }
89
90 void
91 AliHLTPHOSPhysicsAnalyzer::LocalPosition(AliHLTPHOSRecPointDataStruct* /*recPointPtr*/, Float_t* /*locPositionPtr*/)
92 {
93   //Get local position for a recPoint
94
95   //  locPositionPtr[0] = recPointPtr->fLocalPositionPtr[0];
96   //locPositionPtr[1] = recPointPtr->fLocalPositionPtr[1];
97
98 }
99
100 void
101 AliHLTPHOSPhysicsAnalyzer::GlobalPosition(AliHLTPHOSRecPointDataStruct* recPointPtr, Float_t* positionPtr)
102 {
103   //Get global position for a recPoint
104   //See header file for documentation
105   Float_t tempPosX = 0;
106  
107   
108   Int_t module = recPointPtr->fModule;
109
110   tempPosX = kCRYSTAL_SIZE*(recPointPtr->fX-N_XCOLUMNS_MOD/2) + kCRYSTAL_SIZE/2;
111
112   positionPtr[0] = tempPosX*fRotParametersSin[module] + fPHOSRadius*fRotParametersCos[module];
113
114   positionPtr[1] = tempPosX*fRotParametersCos[module] - fPHOSRadius*fRotParametersSin[module];
115  
116   positionPtr[2] = kCRYSTAL_SIZE*(recPointPtr->fZ-N_ZROWS_MOD/2) + kCRYSTAL_SIZE/2;
117
118 }
119
120 void
121 AliHLTPHOSPhysicsAnalyzer::GlobalPosition(Float_t* locPositionPtr, Float_t* positionPtr, Int_t module)
122
123   //Get global position from local postion and module number
124   //See header file for documentation
125   positionPtr[0] = kCRYSTAL_SIZE*(locPositionPtr[0]-N_XCOLUMNS_MOD/2)*fRotParametersCos[module] + fPHOSRadius*fRotParametersSin[module];
126
127   positionPtr[1] = kCRYSTAL_SIZE*(locPositionPtr[0]-N_XCOLUMNS_MOD/2)*fRotParametersSin[module] - fPHOSRadius*fRotParametersCos[module];
128   
129   positionPtr[2] = kCRYSTAL_SIZE*(locPositionPtr[1]-N_ZROWS_MOD);
130
131 }
132
133 void
134 AliHLTPHOSPhysicsAnalyzer::WriteHistogram(Char_t* fileName)
135 {
136   //Write the histogram
137   //See header file for documentation
138   TFile *outfile = new TFile(fileName,"recreate");  
139   
140   fRootHistPtr->Write();
141   
142   outfile->Close();
143   
144   delete outfile;
145   outfile = 0;
146
147 }
148
149