Corrections to comply with coding convention
[u/mrichter/AliRoot.git] / PHOS / AliPHOSPIDv1.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 // Implementation version v1 of the PHOS particle identifier 
20 // Identification is based on information from PPSD and EMC
21 //                  
22 //*-- Author: Yves Schutz (SUBATECH)  & Gines Martinez (SUBATECH)
23
24
25 // --- ROOT system ---
26
27 // --- Standard library ---
28
29 #include <iostream.h>
30
31 // --- AliRoot header files ---
32
33 #include "AliPHOSPIDv1.h"
34 #include "AliPHOSTrackSegment.h"
35 #include "AliPHOSRecParticle.h"
36 #include "AliPHOSIndexToObject.h"
37
38 ClassImp( AliPHOSPIDv1) 
39
40 //____________________________________________________________________________
41 void  AliPHOSPIDv1::MakeParticles(AliPHOSTrackSegment::TrackSegmentsList * trsl, 
42                                   AliPHOSRecParticle::RecParticlesList * rpl)
43 {
44   // Makes a RecParticle out of a TrackSegment
45
46   TIter next(trsl) ; 
47   AliPHOSTrackSegment * tracksegment ; 
48   Int_t index = 0 ; 
49   AliPHOSRecParticle * rp ; 
50   Int_t type ; 
51   Int_t shower_profile;  // 0 narrow and 1 wide
52   Int_t cpv_detector;  // 1 hit and 0 no hit
53   Int_t pc_detector;  // 1 hit and 0 no hit
54
55   while ( (tracksegment = (AliPHOSTrackSegment *)next()) ) {
56     new( (*rpl)[index] ) AliPHOSRecParticle(tracksegment) ;
57     rp = (AliPHOSRecParticle *)rpl->At(index) ; 
58     AliPHOSEmcRecPoint * recp = tracksegment->GetEmcRecPoint() ; 
59     Float_t * lambda = new Float_t[2]; 
60     recp->GetElipsAxis(lambda) ; 
61
62  // Looking at the lateral development of the shower
63     if ( ( lambda[0] > fLambda1m && lambda[0] < fLambda1M ) && // shower profile cut
64          ( lambda[1] > fLambda2m && lambda[1] < fLambda2M ) )         shower_profile = 0 ;   // NARROW PROFILE   
65     else      shower_profile = 1 ;// WIDE PROFILE
66   
67     // Looking at the photon conversion detector
68     if( tracksegment->GetPpsdLowRecPoint() == 0 )   pc_detector = 0;  // No hit
69     else      pc_detector = 1;  // hit
70   
71     // Looking at the photon conversion detector
72     if( tracksegment->GetPpsdUpRecPoint() == 0 )         cpv_detector = 0;  // No hit
73     else      cpv_detector = 1;  // Hit
74      
75     type = shower_profile + 2*pc_detector + 4*cpv_detector;
76     rp->SetType(type) ; 
77     index++ ; 
78   }
79     
80 }
81
82 //____________________________________________________________________________
83 void  AliPHOSPIDv1:: Print() 
84 {
85   // Print the parameters used for the particle type identification
86   
87   cout << "AliPHOSPIDv1 : cuts for the particle idendification based on the shower profile " << endl 
88        << fLambda1m << " < value1 < " << fLambda1M << endl 
89        << fLambda2m << " < value2 < " << fLambda2M << endl ;  
90
91 }
92
93 //____________________________________________________________________________
94 void  AliPHOSPIDv1::SetShowerProfileCuts(Float_t l1m, Float_t l1M, Float_t l2m, Float_t l2M)
95 {
96   // Modifies the parameters used for the particle type identification
97
98   fLambda1m = l1m ; 
99   fLambda1M = l1M ; 
100   fLambda2m = l2m ; 
101   fLambda2M = l2M ; 
102 }