]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EMCAL/AliEMCALJetFinderAlgo.cxx
Removing useless const to avoid warnings on alphacxx6
[u/mrichter/AliRoot.git] / EMCAL / AliEMCALJetFinderAlgo.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
17 /* $Id$ */
18
19 //_________________________________________________________________________
20 //  Base Class for JetFinder Algorithms     
21 // --                  
22 //*-- Author: Mark Horner (LBL/UCT)
23 // --
24
25
26
27 #include "AliEMCALJetFinderAlgo.h"
28 #include "AliRun.h"
29 #include "AliEMCALGeometry.h"
30 #include "AliMagF.h"
31 ClassImp(AliEMCALJetFinderAlgo)
32
33 AliEMCALJetFinderAlgo::AliEMCALJetFinderAlgo()
34 {
35    fDebug =0;
36    fOutputPointer=0;
37    fInputPointer=0;
38    fOutputAllocated=kFALSE;
39 }
40
41 AliEMCALJetFinderAlgo::~AliEMCALJetFinderAlgo()
42 {
43   if (fOutputAllocated)
44     delete fOutputPointer;
45 }
46
47 void AliEMCALJetFinderAlgo::SetOutput(AliEMCALJetFinderOutput* output) {
48   if (fOutputAllocated)
49     delete fOutputPointer;
50   fOutputPointer=output;
51   fOutputAllocated=kFALSE;
52 }
53
54 void AliEMCALJetFinderAlgo::InitInput(AliEMCALJetFinderInput* input)
55 {
56 // Take input data      
57 if (fDebug>1) Info("InitInput","Beginning InitInput");          
58         fInputPointer = input;
59         if (fOutputPointer==0) {
60           
61           if (fDebug>1) Info("InitInput","Allocating output object");           
62           fOutputPointer=new AliEMCALJetFinderOutput();
63           fOutputAllocated=kTRUE;
64         }
65         fOutputPointer->Reset(kResetAll);       
66         // automatically copy parton and particle info to output object
67          
68         for (Int_t counter = 0 ; counter < fInputPointer->GetNPartons();counter++)
69         {
70                 fOutputPointer->AddParton(fInputPointer->GetParton(counter));
71         }
72         for (Int_t counter = 0 ; counter < fInputPointer->GetNParticles();counter++)
73         {
74                 fOutputPointer->AddParticle(fInputPointer->GetParticle(counter));
75         }
76 }
77
78 Float_t AliEMCALJetFinderAlgo::PropagatePhi(Float_t pt, Float_t charge, Bool_t& curls)
79 {
80         // Propagates phi angle to EMCAL radius
81         // //
82  Float_t b = 0.0, rEMCAL = -1.0;
83  if(rEMCAL<0) 
84  {      
85          b =  gAlice->Field()->SolenoidField();
86          rEMCAL = AliEMCALGeometry::GetInstance()->GetIPDistance();
87  }
88  Float_t dPhi = 0.;
89  Float_t rB = 3335.6 * pt / b;  // [cm]  (case of |charge|=1)
90  if (2.*rB < rEMCAL) 
91  {
92          curls = kTRUE;
93          return dPhi;
94  }
95  Float_t phi = TMath::ACos(1.-rEMCAL*rEMCAL/(2.*rB*rB));
96  dPhi = TMath::ATan2(1.-TMath::Cos(phi), TMath::Sin(phi));
97  dPhi = -TMath::Sign(dPhi, charge);
98  return dPhi;
99 }
100