]>
Commit | Line | Data |
---|---|---|
69008885 | 1 | // EMCal tender task adder |
2 | // Author: Jiri Kral | |
3 | ||
d45a33b8 | 4 | AliTender *AddTaskEMCALTender(const char *geoname="EMCAL_COMPLETEV1", AliEMCALRecParam *pars = 0 , Bool_t withNonlinearity = kTRUE , Bool_t withReclusterizing = kFALSE, Int_t trackmatchcuts==0) |
69008885 | 5 | { |
6 | // Parameters: geoname = "EMCAL_FIRSTYEARV1" or "EMCAL_COMPLETEV1" or "" | |
7 | ||
8 | // Get the pointer to the existing analysis manager via the static access method. | |
9 | //============================================================================== | |
10 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); | |
11 | if (!mgr) { | |
12 | ::Error("AddTaskEMCALTender", "No analysis manager to connect to."); | |
13 | return NULL; | |
14 | } | |
15 | ||
16 | // Create the task and configure it. | |
17 | //=========================================================================== | |
18 | AliTender* ana = new AliTender("TenderTask"); | |
19 | ||
20 | mgr->AddTask(ana); | |
21 | ||
22 | // Adding EMCAL supply | |
23 | AliEMCALTenderSupply *EMCALSupply=new AliEMCALTenderSupply("EMCALtender"); | |
24 | ||
25 | EMCALSupply->SetEMCALGeometryName(geoname); | |
26 | ||
27 | // prepare the reco params ------------------------------------------------ | |
28 | if( pars == 0 ){ | |
29 | // you can write your reco params here to avoid loading them automatically | |
30 | // from OCDB during execution time | |
f6e609f6 | 31 | AliEMCALRecParam *params = new AliEMCALRecParam(); |
69008885 | 32 | // reclustering parameters |
33 | // use v1 for pp and v2 for PbPb | |
34 | params->SetClusterizerFlag(AliEMCALRecParam::kClusterizerv2); | |
35 | params->SetClusteringThreshold(0.1); // 100 MeV | |
36 | params->SetMinECut(0.05); //50 MeV | |
37 | params->SetW0(4.5); | |
38 | // you may want to enable the timing cut | |
39 | params->SetTimeCut(1e6);// s | |
40 | params->SetTimeMin(-1); | |
41 | params->SetTimeMax(1e6);//s | |
42 | ||
f6e609f6 | 43 | EMCALSupply->SetRecParam(params); |
69008885 | 44 | } |
45 | else{ | |
46 | cout << "------- TENDER is using supplied reco params -------" << endl; | |
47 | pars->Print( "reco" ); | |
48 | cout << "----------------------------------------------------" << endl; | |
49 | EMCALSupply->SetRecParam(pars); | |
50 | } | |
51 | ||
52 | // prepare tender parameters ---------------------------------------------- | |
53 | EMCALSupply->SetDebugLevel( 0 ); | |
54 | ||
55 | // fiducial cut | |
56 | EMCALSupply->SetNumberOfCellsFromEMCALBorder( 1 ); | |
57 | ||
58 | // nonlinearity | |
59 | EMCALSupply->SetNonLinearityFunction( AliEMCALTenderSupply::kBeamTestCorrected ); | |
60 | ||
61 | // track matching parameters | |
62 | //EMCALSupply->SetMass(0.139); | |
63 | //EMCALSupply->SetStep(5); | |
d45a33b8 | 64 | //EMCALSupply->SwitchOnCutEtaPhiSum(); |
65 | //EMCALSupply->SetRCut(0.025); | |
66 | EMCALSupply->SwitchOnCutEtaPhiSeparate(); | |
67 | // EMCALSupply->SetEtaCut(0.015); | |
68 | // EMCALSupply->SetPhiCut(0.03); | |
69 | if(trackmatchcuts==0){//default | |
70 | EMCALSupply->SetEtaCut(0.025); | |
71 | EMCALSupply->SetPhiCut(0.05); | |
72 | } | |
73 | if(trackmatchcuts==1){//tighter | |
74 | EMCALSupply->SetEtaCut(0.015); | |
75 | EMCALSupply->SetPhiCut(0.03); | |
76 | } | |
77 | if(trackmatchcuts==2){//looser | |
78 | EMCALSupply->SetEtaCut(0.035); | |
79 | EMCALSupply->SetPhiCut(0.07); | |
80 | } | |
69008885 | 81 | |
82 | // switches --------------------------------------------------------------- | |
83 | EMCALSupply->SwitchOnBadCellRemove(); | |
84 | EMCALSupply->SwitchOnExoticCellRemove(); | |
85 | EMCALSupply->SwitchOnCalibrateEnergy(); | |
86 | EMCALSupply->SwitchOnCalibrateTime(); | |
87 | EMCALSupply->SwitchOnUpdateCell(); | |
d45a33b8 | 88 | if(withReclusterizing) EMCALSupply->SwitchOnReclustering(); |
69008885 | 89 | EMCALSupply->SwitchOnClusterBadChannelCheck(); |
90 | EMCALSupply->SwitchOnClusterExoticChannelCheck(); | |
91 | EMCALSupply->SwitchOnCellFiducialRegion(); | |
92 | EMCALSupply->SwitchOnReCalibrateCluster(); | |
93 | EMCALSupply->SwitchOnRecalculateClusPos(); | |
94 | EMCALSupply->SwitchOnRecalShowerShape(); | |
95 | EMCALSupply->SwitchOnRecalDistBadChannel(); | |
d45a33b8 | 96 | if(withNonlinearity) EMCALSupply->SwitchOnNonLinearityCorrection(); |
97 | else{cout<<"WARNING: TURNING OFF NONLINEARITY"<<endl;} | |
69008885 | 98 | EMCALSupply->SwitchOnTrackMatch(); |
99 | ||
100 | ||
101 | ana->AddSupply(EMCALSupply); | |
102 | // Create ONLY the output containers for the data produced by the task. | |
103 | // Get and connect other common input/output containers via the manager as below | |
104 | //============================================================================== | |
105 | // AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("histosEmcalTender", TList::Class(),AliAnalysisManager::kOutputContainer,Form("%s", AliAnalysisManager::GetCommonFileName())); | |
106 | AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("emcal_tender_event", AliESDEvent::Class(), | |
107 | AliAnalysisManager::kExchangeContainer,"emcal_tender"); | |
108 | ||
109 | mgr->ConnectInput (ana, 0, mgr->GetCommonInputContainer()); | |
110 | mgr->ConnectOutput (ana, 1, coutput1 ); | |
111 | ||
112 | return ana; | |
113 | } | |
114 |