1 /**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
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 **************************************************************************/
19 #include "AliRunLoader.h"
20 #include "AliLoader.h"
22 #include "AliMUONData.h"
27 //get trigger decision and write it in TreeR of MUON.RecPoints.root
29 void MUONtrigger (char* filename="galice.root",
30 Int_t evNumber1=0, Int_t evNumber2=9999)
32 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
33 // Creating Run Loader and openning file containing Hits
34 AliRunLoader * RunLoader = AliRunLoader::Open(filename,"MUONFolder","UPDATE");
35 if (RunLoader ==0x0) {
36 printf(">>> Error : Error Opening %s file \n",filename);
40 // Loading AliRun master
41 RunLoader->UnloadgAlice();
42 RunLoader->LoadgAlice();
43 gAlice = RunLoader->GetAliRun();
45 // Loading MUON subsystem
46 AliMUON * MUON = (AliMUON *) gAlice->GetDetector("MUON");
47 AliLoader * MUONLoader = RunLoader->GetLoader("MUONLoader");
48 AliMUONData * muondata = MUON->GetMUONData();
49 muondata->SetLoader(MUONLoader);
51 Int_t ievent, nevents;
52 nevents = RunLoader->GetNumberOfEvents();
54 MUONLoader->LoadDigits("READ");
55 MUONLoader->LoadRecPoints("UPDATE");
59 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
60 if (evNumber2>nevents) evNumber2=nevents;
61 for (Int_t ievent=evNumber1; ievent<evNumber2; ievent++) { // event loop
62 printf("event %d\n",ievent);
63 RunLoader->GetEvent(ievent);
64 // Test if rawcluster has already been done before
65 if (MUONLoader->TreeR() == 0x0)
66 MUONLoader->MakeRecPointsContainer();
68 if (muondata->IsTriggerBranchesInTree()){ // Test if rawcluster has already been done before
69 if (ievent==evNumber1) MUONLoader->UnloadRecPoints();
70 MUONLoader->MakeRecPointsContainer(); // Redoing clusterisation
71 Info("RecPointsContainer","Recreating RecPointsContainer and deleting previous ones");
74 muondata->MakeBranch("GLT");
75 muondata->SetTreeAddress("D,GLT");
76 MUON->Trigger(ievent);
77 muondata->ResetDigits();
78 muondata->ResetTrigger();
80 MUONLoader->UnloadDigits();
81 MUONLoader->UnloadRecPoints();