1 AliAnalysisTaskCaloFilter * AddTaskCaloFilter(){
3 // Get the pointer to the existing analysis manager via the static access method.
4 //==============================================================================
5 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
7 ::Error("AddTaskPi0", "No analysis manager to connect to.");
11 // Check the analysis type using the event handlers connected to the analysis manager.
12 //==============================================================================
13 if (!mgr->GetInputEventHandler()) {
14 ::Error("AddTaskEMCALClusterize", "This task requires an input event handler");
18 AliAnalysisTaskCaloFilter * filter = new AliAnalysisTaskCaloFilter("CaloFilter");
19 filter->SelectCollisionCandidates();
20 filter->SetCaloFilter(AliAnalysisTaskCaloFilter::kBoth); //kPHOS or kBoth
21 filter->SwitchOnClusterCorrection();
22 //filter->SetDebugLevel(10);
23 AliEMCALRecoUtils * reco = filter->GetEMCALRecoUtils();
24 reco->SetParticleType(AliEMCALRecoUtils::kPhoton);
27 reco->SetPositionAlgorithm(AliEMCALRecoUtils::kPosTowerGlobal);
29 TGeoHMatrix *matrix[4];
31 double rotationMatrix[4][9] = {-0.014587, -0.999892, -0.002031, 0.999892, -0.014591, 0.001979, -0.002009, -0.002002, 0.999996,
32 -0.014587, 0.999892, 0.002031, 0.999892, 0.014591, -0.001979, -0.002009, 0.002002, -0.999996,
33 -0.345864, -0.938278, -0.003412, 0.938276, -0.345874, 0.003010, -0.004004, -0.002161, 0.999990,
34 -0.345861, 0.938280, 0.003412, 0.938276, 0.345874, -0.003010, -0.004004, 0.002161, -0.999990};
36 double translationMatrix[4][3] = {0.351659, 447.576446, 176.269742,
37 1.062577, 446.893974, -173.728870,
38 -154.213287, 419.306156, 176.753692,
39 -153.018950, 418.623681, -173.243605};
40 for(int j=0; j<4; j++)
42 matrix[j] = new TGeoHMatrix();
43 matrix[j]->SetRotation(rotationMatrix[j]);
44 matrix[j]->SetTranslation(translationMatrix[j]);
46 filter->SetEMCALGeometryMatrixInSM(matrix[j],j);
49 filter->SwitchOnLoadOwnEMCALGeometryMatrices();
51 reco->SetNonLinearityFunction(AliEMCALRecoUtils::kNoCorrection);
53 //Time dependent corrections
54 //Recover file from alien /alice/cern.ch/user/g/gconesab/TimeDepCorrectionDB
55 // reco->SwitchOnTimeDepCorrection();
57 // sprintf(cmd, ".!tar xvfz CorrectionFiles.tgz") ;
58 // gROOT->ProcessLine(cmd) ;
60 //Recalibration factors
61 //Recover the file from alien /alice/cern.ch/user/g/gconesab/RecalDB
62 // reco->SwitchOnRecalibration();
63 // TFile * f = new TFile("RecalibrationFactors.root","read");
64 // TH2F * h0 = (TH2F*)f->Get("EMCALRecalFactors_SM0");
65 // TH2F * h1 = (TH2F*)f->Get("EMCALRecalFactors_SM1");
66 // TH2F * h2 = (TH2F*)f->Get("EMCALRecalFactors_SM2");
67 // TH2F * h3 = (TH2F*)f->Get("EMCALRecalFactors_SM3");
69 // reco->SetEMCALChannelRecalibrationFactors(0,h0);
70 // reco->SetEMCALChannelRecalibrationFactors(1,h1);
71 // reco->SetEMCALChannelRecalibrationFactors(2,h2);
72 // reco->SetEMCALChannelRecalibrationFactors(3,h3);
75 // //Recover the file from alien /alice/cern.ch/user/g/gconesab/BadChannelsDB
76 // reco->SwitchOnBadChannelsRemoval();
77 // reco->SwitchOnDistToBadChannelRecalculation();
78 // TFile * fbad = new TFile("BadChannels.root","read");
79 // TH2I * hbad0 = (TH2I*)fbad->Get("EMCALBadChannelMap_Mod0");
80 // TH2I * hbad1 = (TH2I*)fbad->Get("EMCALBadChannelMap_Mod1");
81 // TH2I * hbad2 = (TH2I*)fbad->Get("EMCALBadChannelMap_Mod2");
82 // TH2I * hbad3 = (TH2I*)fbad->Get("EMCALBadChannelMap_Mod3");
83 // reco->SetEMCALChannelStatusMap(0,hbad0);
84 // reco->SetEMCALChannelStatusMap(1,hbad1);
85 // reco->SetEMCALChannelStatusMap(2,hbad2);
86 // reco->SetEMCALChannelStatusMap(3,hbad3);
93 // Create containers for input/output
94 AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer();
95 AliAnalysisDataContainer *coutput1 = mgr->GetCommonOutputContainer();
97 AliAnalysisDataContainer *coutntuple = mgr->CreateContainer("EventNtuple", TNtuple::Class(),
98 AliAnalysisManager::kOutputContainer, "eventselection.root");
100 mgr->ConnectInput (filter, 0, cinput1);
101 mgr->ConnectOutput (filter, 0, coutput1 );
102 mgr->ConnectOutput (filter, 1, coutntuple );