4073b6d8ef3abf736f980dd22e95d28af5807936
[u/mrichter/AliRoot.git] / PWGGA / EMCALTasks / macros / ConfigureEMCALRecoUtils.C
1 // $Id$
2
3 void ConfigureEMCALRecoUtils(AliEMCALRecoUtils* reco,
4                              Bool_t  bMC    = kFALSE,
5                              Bool_t  bExotic= kTRUE,
6                              Bool_t  bNonLin= kFALSE,
7                              Bool_t  bRecalE= kTRUE,
8                              Bool_t  bBad   = kTRUE,
9                              Bool_t  bRecalT= kTRUE)
10 {  
11
12   // Configure RecoUtils with OADB objects
13   
14   printf("**** Configure AliEMCALRecoUtils ***\n");
15   
16   // Exotic cells removal
17   
18   if(bExotic)
19   {
20     printf("Remove exotics in EMCAL\n");
21     reco->SwitchOnRejectExoticCell() ;
22     reco->SwitchOnRejectExoticCluster(); 
23     
24     reco->SetExoticCellDiffTimeCut(10000);    // Open  
25     reco->SetExoticCellFractionCut(0.95);     // 1-Ecross/Ecell > 0.95 -> out
26     reco->SetExoticCellMinAmplitudeCut(0.75); // 750 MeV    
27   }  
28   
29   //Recalibration factors
30   
31   if(bRecalE && ! bMC)
32   {
33     reco->SwitchOnRecalibration();
34   } 
35
36   // Remove EMCAL hot channels 
37   
38   if(bBad)
39   {
40     reco->SwitchOnBadChannelsRemoval();
41     reco->SwitchOnDistToBadChannelRecalculation();
42   }
43  
44   // *** Time recalibration settings ***
45   
46   if(bRecalT && ! bMC)
47   {
48     reco->SwitchOnTimeRecalibration();
49   }
50     
51   // position
52     
53   reco->SetPositionAlgorithm(AliEMCALRecoUtils::kPosTowerGlobal);   
54
55   // Non linearity
56   
57   if( bNonLin ) 
58   { 
59     if(!kMC) reco->SetNonLinearityFunction(AliEMCALRecoUtils::kBeamTestCorrected);
60     else     reco->SetNonLinearityFunction(AliEMCALRecoUtils::kPi0MC);
61   }
62 }