2 //---------------------------------------------------
3 // Macro to do analysis with AliJCORRANTask
4 // Can be executed with Root and AliRoot
6 // ALICE Jyvaskyla group
8 // last change 20th Jun 2010 FK
9 //-------------------------------------------------
12 const TString kInputData = "ESD";
13 const TString kJCORRANInputFormat = "ESD"; // ESD, AODout, AODin
14 const Bool_t kMC = kFALSE; //With real data kMC = kFALSE, MC data kMC =kTRUE
16 AliJCORRANTask* AddTaskJCORRAN(const char* aodName="jcorran.root", const char* addPhysSelection="$ALICE_ROOT/ANALYSIS/macros/AddTaskPhysicsSelection.C")
18 //--------------------------------------
19 // Make the analysis manager
20 //-------------------------------------
21 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
23 ::Error("AddTaskJCORRAN", "No analysis manager to connect to.");
27 if(!mgr->GetInputEventHandler()){
28 ::Error("AddTaskJets", "This task requires an input event handler");
33 //AliAODHandler *aodH = dynamic_cast<AliAODHandler*>(AliAnalysisManager::GetAnalysisManager()->GetOutputEventHandler());
34 //aodH->SetCreateNonStandardAOD();
36 //-------------------------------------------------------------------------
37 // T R A C K S E L E C T I O N
39 AliESDtrackCuts* esdTrackCuts = new AliESDtrackCuts("AliESDtrackCuts2009","Standard");
41 /* // Apply loose track cuts
42 AliESDtrackCuts* esdTrackCutsLoose = new AliESDtrackCuts("AliESDtrackCuts", "Loose");
43 esdTrackCutsLoose->SetMinNClustersTPC(60);
44 esdTrackCutsLoose->SetMaxChi2PerClusterTPC(4.0);
45 esdTrackCutsLoose->SetRequireTPCRefit(kTRUE);
46 //esdTrackCutsLoose->SetMaxNsigmaToVertex(3);
47 //esdTrackCutsLoose->SetRequireSigmaToVertex(kTRUE);
48 esdTrackCutsLoose->SetAcceptKinkDaughters(kFALSE);
49 esdTrackCutsLoose->SetMaxDCAToVertexXY(3.5);
50 esdTrackCutsLoose->SetMaxDCAToVertexZ(3.5);
53 //---------------------------------------------------------------------------
54 // E V E N T S E L E C T I O N
56 Int_t downscaling = 20; //downscaling of normal events
57 Double_t lowerCutOnLPmom = 3; //select all events with a particle above momentum
58 Double_t lowerCutOnLeadingCaloClusterE = 1.; //GeV select all events with a calo cluster above the energy
59 Double_t lowerCutOnCaloClusterE = 0.2; // GeV store only calo clusters above this energy
62 gROOT->LoadMacro(addPhysSelection);
63 AliPhysicsSelectionTask* physSelTask = AddTaskPhysicsSelection();
64 AliPhysicsSelection* physSele = physSelTask->GetPhysicsSelection();
66 //tag as MB different trigger than CINT1B
67 //physSele->AddCollisionTriggerClass("+CSMBB-ABCE-NOPF-ALL"); // Put here trigger to be selected, default is CINT1B
69 //---------------------------------------------------------------------------
70 // J C O R R A N T A S K
72 AliJCORRANTask *jctask = new AliJCORRANTask("PWG4JCORRANTask",kJCORRANInputFormat);
73 jctask->SetDebugLevel(1);
74 /*jctask->SetAliESDtrackCuts(esdTrackCutsLoose); */
75 jctask->SetAliESDtrackCuts(esdTrackCuts->GetStandardITSTPCTrackCuts2009());
76 jctask->SetDownscaling(downscaling);
77 jctask->SetLowerCutOnLPMom(lowerCutOnLPmom);
78 jctask->SetLowerCutOnLeadingCaloClusterE(lowerCutOnLeadingCaloClusterE);
79 jctask->SetLowerCutOnCaloClusterE(lowerCutOnCaloClusterE);
80 jctask->SetRealOrMC(kMC); //flags whether the input are ESDs from real exp or MonteCarlo
81 jctask->SetOutputAODName(aodName);
84 jctask->SelectCollisionCandidates(); //Apply offline trigger selection by AliPhysicsSelectionTask
87 // Create containers for input:
88 AliAnalysisDataContainer *cinput0 = mgr->GetCommonInputContainer();
90 //connect input to JCORRAN task
91 mgr->ConnectInput(jctask, 0, cinput0);