]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONDataInterface.cxx
In NtupleTrigger(): added loading mappig from CDB (now required)
[u/mrichter/AliRoot.git] / MUON / AliMUONDataInterface.cxx
1 /**************************************************************************
2  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3  *                                                                        *
4  * Author: The ALICE Off-line Project.                                    *
5  * Contributors are mentioned in the code where appropriate.              *
6  *                                                                        *
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  **************************************************************************/
15  
16 /* $Id$ */
17
18 #include "AliMUONDataInterface.h"
19 #include "AliMUONDigit.h"
20 #include "AliMUONGeometryTransformer.h"
21 #include "AliMUONGlobalTrigger.h"
22 #include "AliMUONHit.h"
23 #include "AliMUONLocalTrigger.h"
24 #include "AliMUONRawCluster.h"
25 #include "AliMUONTrack.h"
26 #include "AliMUONTriggerCircuit.h"
27 #include "AliMUONVClusterStore.h"
28 #include "AliMUONVDigitStore.h"
29 #include "AliMUONVTrackStore.h"
30 #include "AliMUONVTriggerStore.h"
31 #include "AliMUONVTriggerTrackStore.h"
32 #include "AliMpCDB.h"
33
34 #include "AliLoader.h"
35 #include "AliLog.h"
36 #include "AliLog.h"
37 #include "AliRunLoader.h"
38
39 #include <TError.h>
40 #include <TParticle.h>
41 #include <Riostream.h>
42 #include <TFile.h>
43 #include <TList.h>
44 #include <TNtuple.h>
45 #include <TSystem.h>
46
47 //-----------------------------------------------------------------------------
48 /// \class AliMUONDataInterface
49 ///
50 /// An easy to use interface to the MUON data data stored in
51 /// TreeS, TreeD, TreeR and TreeT.
52 ///
53 /// For MC related information (i.e. TreeH, TreeK, TreeTR), see
54 /// AliMUONMCDataInterface.
55 ///
56 ///
57 /// This interface in not necessarily the fastest way to fetch the data but
58 /// it is the easiest.
59 ///
60 /// \author Laurent Aphecetche, Subatech
61 //-----------------------------------------------------------------------------
62
63 /// \cond CLASSIMP
64 ClassImp(AliMUONDataInterface)
65 /// \endcond
66
67 //AliLoader* fLoader; //!< Tree accessor
68 //AliMUONVDigitStore* fDigitStore; //!< current digit store (owner)
69 //AliMUONVTriggerStore* fTriggerStore; //!< current trigger store (owner)
70 //AliMUONVClusterStore* fClusterStore; //!< current cluster store (owner)
71 //AliMUONVTrackStore* fTrackStore; //!< current track store (owner)
72 //AliMUONVTriggerTrackStore* fTriggerTrackStore; //!< current trigger track store (owner)
73 //Int_t fCurrentEvent; //!< Current event we've read in
74 //Bool_t fIsValid; //!< whether we were initialized properly or not
75
76 Int_t AliMUONDataInterface::fgInstanceCounter(0);
77
78 //______________________________________________________________________________
79 AliMUONDataInterface::AliMUONDataInterface(const char* filename)
80 : TObject(), 
81 fLoader(0x0),
82 fDigitStore(0x0),
83 fTriggerStore(0x0),
84 fClusterStore(0x0),
85 fTrackStore(0x0),
86 fTriggerTrackStore(0x0),
87 fCurrentEvent(-1),
88 fIsValid(kFALSE)
89 {
90   /// ctor
91   /// @param filename should be the full path to a valid galice.root file
92   
93   ++fgInstanceCounter;
94   
95   Open(filename);
96 }
97
98 //______________________________________________________________________________
99 AliMUONDataInterface::~AliMUONDataInterface()
100 {
101   /// dtor
102   if ( fLoader ) 
103   {
104     delete fLoader->GetRunLoader();
105   }
106   --fgInstanceCounter;  
107 }
108
109 //______________________________________________________________________________
110 AliMUONVClusterStore*
111 AliMUONDataInterface::ClusterStore(Int_t event)
112 {
113   /// Return clusterStore for a given event.
114   /// Return 0x0 if event not found.
115   /// Returned pointer should not be deleted
116   
117   if ( LoadEvent(event) ) return 0x0;
118   
119   fLoader->LoadRecPoints();
120   
121   TTree* treeR = fLoader->TreeR();
122   
123   if (!treeR)
124   {
125     AliError("Could not get treeR");
126     return 0x0;
127   }
128   
129   if (!fClusterStore)
130   {
131     fClusterStore = AliMUONVClusterStore::Create(*treeR);
132   }
133   
134   if ( fClusterStore ) 
135   {
136     fClusterStore->Clear();
137     fClusterStore->Connect(*treeR);
138     treeR->GetEvent(0);
139   }
140   
141   fLoader->UnloadRecPoints();
142   
143   return fClusterStore;
144 }
145
146 //______________________________________________________________________________
147 AliMUONVDigitStore*
148 AliMUONDataInterface::DigitStore(Int_t event)
149 {
150   /// Return digitStore for a given event.
151   /// Return 0x0 if event not found.
152   /// Returned pointer should not be deleted
153   
154   if ( LoadEvent(event) ) return 0x0;
155   
156   fLoader->LoadDigits();
157   
158   TTree* treeD = fLoader->TreeD();
159   
160   if (!treeD)
161   {
162     AliError("Could not get treeD");
163     return 0x0;
164   }
165   
166   if (!fDigitStore)
167   {
168     fDigitStore = AliMUONVDigitStore::Create(*treeD);
169   }
170   
171   if ( fDigitStore ) 
172   {
173     fDigitStore->Clear();
174     fDigitStore->Connect(*treeD);
175     treeD->GetEvent(0);
176   }
177   
178   fLoader->UnloadDigits();
179   
180   return fDigitStore;
181 }
182
183 //______________________________________________________________________________
184 void
185 AliMUONDataInterface::DumpDigits(Int_t event, Bool_t sorted)
186 {
187   /// Dump the digits for a given event, sorted if so required
188   DigitStore(event);
189   if ( fDigitStore ) 
190   {
191     if ( sorted ) 
192     {
193       DumpSorted(*fDigitStore);
194     }
195     else
196     {
197       fDigitStore->Print();
198     }
199   }
200 }
201
202 //______________________________________________________________________________
203 void
204 AliMUONDataInterface::DumpRecPoints(Int_t event, Bool_t sorted)
205 {
206   /// Dump the recpoints for a given event, sorted if so required
207   ClusterStore(event);
208   if ( fClusterStore ) 
209   {
210     if ( sorted ) 
211     {
212       DumpSorted(*fClusterStore);
213     }
214     else
215     {
216       fClusterStore->Print();
217     }
218   }
219 }
220
221 //_____________________________________________________________________________
222 void
223 AliMUONDataInterface::DumpSorted(const AliMUONVStore& store) const
224 {
225   /// Dump the given store, in sorted order
226   
227   TIter next(store.CreateIterator());
228   TObject* object;
229   TList list;
230   list.SetOwner(kFALSE);
231   
232   while ( ( object = next() ) )
233   {
234     list.Add(object);
235   }
236   
237   list.Sort();
238   
239   list.Print();
240 }
241
242 //______________________________________________________________________________
243 void
244 AliMUONDataInterface::DumpTracks(Int_t event, Bool_t sorted)
245 {
246   /// Dump tracks for a given event, sorted if requested
247   
248   TrackStore(event);
249   
250   if ( fTrackStore ) 
251   {
252     if ( sorted ) 
253     {
254       DumpSorted(*fTrackStore);
255     }
256     else
257     {
258       fTrackStore->Print();
259     }
260   }
261 }
262
263 //______________________________________________________________________________
264 void
265 AliMUONDataInterface::DumpTriggerTracks(Int_t event, Bool_t sorted)
266 {
267   /// Dump trigger tracks for a given event, sorted if requested
268
269   TriggerTrackStore(event);
270   
271   if ( fTriggerTrackStore ) 
272   {
273     if ( sorted ) 
274     {
275       DumpSorted(*fTriggerTrackStore);
276     }
277     else
278     {
279       fTriggerTrackStore->Print();
280     }
281   }
282 }
283
284 //_____________________________________________________________________________
285 void
286 AliMUONDataInterface::DumpTrigger(Int_t event, const char* treeLetter)
287 {
288   /// Dump trigger for a given event from a given tree (if event>=0)
289   /// or loop over all events and build a trigger ntuple if event<0
290   /// treeLetter can be R or D to tell from which tree to read the information
291   
292   if ( event < 0 ) 
293   {
294     NtupleTrigger(treeLetter);
295   }
296   else
297   {
298     TriggerStore(event,treeLetter);
299   
300     if ( fTriggerStore ) 
301     {
302       fTriggerStore->Print();
303     }
304   }
305 }
306
307 //_____________________________________________________________________________
308 void
309 AliMUONDataInterface::NtupleTrigger(const char* treeLetter)
310 {
311   //// Loop over events to build trigger ntuples
312   ///
313   
314   TString sTreeLetter(treeLetter);
315   sTreeLetter.ToUpper();
316   
317   if ( sTreeLetter != "R" && sTreeLetter != "D" ) 
318   {
319     AliError(Form("Cannot handle tree%s. Use D or R",treeLetter));
320     return;
321   }
322   
323   // book ntuples
324   TNtuple tupleGlo("TgtupleGlo","Global Trigger Ntuple",
325                    "ev:slpt:shpt:uplpt:uphpt:lplpt:lplpt");
326   TNtuple tupleLoc("TgtupleLoc","Local Trigger Ntuple",
327                    "ev:LoCircuit:LoStripX:LoDev:StripY:LoLpt:LoHpt:y11:y21:x11");
328   
329   // initialize counters
330   Int_t sLowpt=0;
331   Int_t sHighpt=0;
332   Int_t uSLowpt=0;
333   Int_t uSHighpt=0;
334   Int_t lSLowpt=0;
335   Int_t lSHighpt=0;
336   
337   AliMUONGeometryTransformer transformer;
338   transformer.LoadGeometryData(Form("%s/geometry.root",
339                                     gSystem->DirName(fLoader->GetRunLoader()->GetFileName())));
340   
341   // Load mapping
342   if ( ! AliMpCDB::LoadMpSegmentation() ) 
343   {
344     AliFatal("Could not access mapping from OCDB !");
345   }
346   
347   // Load DDL store
348   if ( ! AliMpCDB::LoadDDLStore() ) 
349   {
350     AliFatal("Could not access DDL Store from OCDB !");
351   }
352
353   AliMUONTriggerCircuit triggerCircuit(&transformer);
354
355   // select output file name from selected Tree
356   Char_t fileNameOut[30];
357   if (sTreeLetter == "D") 
358   {
359     AliInfo(Form("reading from Digits\n"));
360     sprintf(fileNameOut,"TriggerCheckFromDigits.root");
361   } 
362   else if (sTreeLetter == "R") 
363   {
364     AliInfo(Form("reading from RecPoints\n"));
365     sprintf(fileNameOut,"TriggerCheckFromRP.root");
366   }
367   
368   // loop on events
369   Int_t nevents = NumberOfEvents();
370
371   for (Int_t ievent=0; ievent<nevents; ++ievent) 
372   {
373     if (ievent%100==0) AliInfo(Form("Processing event %d\n",ievent));
374     
375     AliMUONVTriggerStore* triggerStore = TriggerStore(ievent);
376     
377     if (!triggerStore)
378     {
379       AliError(Form("Could not read %s from tree%s","Trigger",treeLetter));
380       return;
381     }
382     
383     // get global trigger info
384     AliMUONGlobalTrigger* gloTrg = triggerStore->Global();      
385     sLowpt+=gloTrg->SingleLpt();
386     sHighpt+=gloTrg->SingleHpt();
387     uSLowpt+=gloTrg->PairUnlikeLpt(); 
388     uSHighpt+=gloTrg->PairUnlikeHpt();
389     lSLowpt+=gloTrg->PairLikeLpt(); 
390     lSHighpt+=gloTrg->PairLikeHpt();
391     
392     // loop on local triggers   
393     TIter next(triggerStore->CreateIterator());
394     AliMUONLocalTrigger* locTrg(0x0);
395     while ( ( locTrg = static_cast<AliMUONLocalTrigger*>(next()) ) )
396     {
397       Bool_t xTrig=kFALSE;
398       Bool_t yTrig=kFALSE;
399       
400       if ( locTrg->LoSdev()==1 && locTrg->LoDev()==0 && 
401            locTrg->LoStripX()==0) xTrig=kFALSE; // no trigger in X
402       else xTrig=kTRUE;                         // trigger in X
403       if (locTrg->LoTrigY()==1 && 
404           locTrg->LoStripY()==15 ) yTrig = kFALSE; // no trigger in Y
405       else yTrig = kTRUE;                          // trigger in Y
406       
407       if (xTrig && yTrig) 
408       { // fill ntuple if trigger in X and Y                    
409         tupleLoc.Fill(ievent,locTrg->LoCircuit(),
410                        locTrg->LoStripX(),
411                        locTrg->LoDev(),
412                        locTrg->LoStripY(),
413                        locTrg->LoLpt(),
414                        locTrg->LoHpt(),
415                        triggerCircuit.GetY11Pos(locTrg->LoCircuit(),locTrg->LoStripX()),
416                        triggerCircuit.GetY21Pos(locTrg->LoCircuit(),locTrg->LoStripX()+locTrg->LoDev()+1),
417                        triggerCircuit.GetX11Pos(locTrg->LoCircuit(),locTrg->LoStripY()));
418       }
419       tupleGlo.Fill(ievent,gloTrg->SingleLpt(),gloTrg->SingleHpt(),
420                      gloTrg->PairUnlikeLpt(),gloTrg->PairUnlikeHpt(),
421                      gloTrg->PairLikeLpt(),gloTrg->PairLikeHpt());
422     } // end of loop on local triggers
423   } // end of loop on events
424   
425   // print info and store ntuples
426   printf("\n");
427   printf("=============================================\n");
428   printf("================  SUMMARY  ==================\n");
429   printf("\n");
430   printf("Total number of events processed %d \n",nevents);
431   printf("\n");
432   printf(" Global Trigger output       Low pt  High pt\n");
433   printf(" number of Single           :\t");
434   printf("%i\t%i\t",sLowpt,sHighpt);
435   printf("\n");
436   printf(" number of UnlikeSign pair  :\t"); 
437   printf("%i\t%i\t",uSLowpt,uSHighpt);
438   printf("\n");
439   printf(" number of LikeSign pair    :\t");  
440   printf("%i\t%i\t",lSLowpt,lSHighpt);
441   printf("\n");
442   printf("=============================================\n");
443   fflush(stdout);    
444   
445   TFile myFile(fileNameOut, "RECREATE");
446   tupleGlo.Write();
447   tupleLoc.Write();
448   myFile.Close();
449 }
450
451 //______________________________________________________________________________
452 Bool_t
453 AliMUONDataInterface::IsValid() const
454 {
455   /// Whether we were properly initialized from a valid galice.root file
456   return fIsValid;
457 }
458
459 //_____________________________________________________________________________
460 Int_t
461 AliMUONDataInterface::LoadEvent(Int_t event)
462 {
463   /// Load event if different from the current one.
464   if ( event != fCurrentEvent ) 
465   {
466     fCurrentEvent = event;
467     AliDebug(1,Form("Loading event %d using runLoader %p",event,fLoader->GetRunLoader()));
468     if ( event < NumberOfEvents() )
469     {
470       return fLoader->GetRunLoader()->GetEvent(event);
471     }
472     else
473     {
474       return 1;
475     }
476   }
477   return 0;
478 }
479
480 //______________________________________________________________________________
481 Int_t
482 AliMUONDataInterface::NumberOfEvents() const
483 {
484   /// Number of events in the current galice.root file we're attached to 
485   if (!IsValid()) return 0;
486   return fLoader->GetRunLoader()->GetNumberOfEvents();
487 }
488
489 //_____________________________________________________________________________
490 void
491 AliMUONDataInterface::Open(const char* filename)
492 {
493   /// Connect to a given galice.root file
494   
495   delete fDigitStore;
496   fDigitStore=0x0;
497   delete fTriggerStore;
498   fTriggerStore=0x0;
499   delete fClusterStore;
500   fClusterStore=0x0;
501   delete fTrackStore;
502   fTrackStore=0x0;
503   delete fTriggerTrackStore;
504   fTriggerTrackStore=0x0;
505   
506   fCurrentEvent=-1;
507   
508   if ( fLoader ) 
509   {
510     delete fLoader->GetRunLoader();
511   }
512   
513   fLoader = 0x0;
514   
515   fIsValid = kTRUE;
516   
517   TString foldername(Form("%s-%d",ClassName(),fgInstanceCounter));
518   
519   while (AliRunLoader::GetRunLoader(foldername)) 
520   {
521     delete AliRunLoader::GetRunLoader(foldername);
522   }
523   
524   AliRunLoader* runLoader = AliRunLoader::Open(filename,foldername);
525   if (!runLoader) 
526   {
527     AliError(Form("Cannot open file %s",filename));    
528     fIsValid = kFALSE;
529   }
530   fLoader = runLoader->GetDetectorLoader("MUON");
531   if (!fLoader) 
532   {
533     AliError("Cannot get AliMUONLoader");
534     fIsValid = kFALSE;
535   }
536   
537   if (!IsValid())
538   {
539     AliError(Form("Could not access %s filename. Object is unuseable",filename));
540   }
541 }
542
543 //______________________________________________________________________________
544 AliMUONVTrackStore* 
545 AliMUONDataInterface::TrackStore(Int_t event)
546 {
547   /// Return the trackStore for a given event.
548   /// Return 0x0 if event not found.
549   /// Returned pointer should not be deleted
550   
551   if ( LoadEvent(event) ) return 0x0;
552   
553   fLoader->LoadTracks();
554   
555   TTree* treeT = fLoader->TreeT();
556   
557   if (!treeT)
558   {
559     AliError("Could not get treeT");
560     return 0x0;
561   }
562   
563   if (!fTrackStore)
564   {
565     fTrackStore = AliMUONVTrackStore::Create(*treeT);
566   }
567   
568   if ( fTrackStore ) 
569   {
570     fTrackStore->Clear();
571     fTrackStore->Connect(*treeT);
572     treeT->GetEvent(0);
573   }
574   
575   fLoader->UnloadTracks();
576   
577   return fTrackStore;
578 }
579
580 //______________________________________________________________________________
581 AliMUONVTriggerTrackStore* 
582 AliMUONDataInterface::TriggerTrackStore(Int_t event)
583 {
584   /// Return the triggerTrackStore for a given event.
585   /// Return 0x0 if event not found.
586   /// Returned pointer should not be deleted
587   
588   if ( LoadEvent(event) ) return 0x0;
589   
590   fLoader->LoadTracks();
591   
592   TTree* treeT = fLoader->TreeT();
593   
594   if (!treeT)
595   {
596     AliError("Could not get treeT");
597     return 0x0;
598   }
599   
600   if (!fTriggerTrackStore)
601   {
602     fTriggerTrackStore = AliMUONVTriggerTrackStore::Create(*treeT);
603   }
604   
605   if ( fTriggerTrackStore ) 
606   {
607     fTriggerTrackStore->Clear();
608     fTriggerTrackStore->Connect(*treeT);
609     treeT->GetEvent(0);
610   }
611   
612   fLoader->UnloadTracks();
613   
614   return fTriggerTrackStore;  
615 }
616
617 //_____________________________________________________________________________
618 AliMUONVTriggerStore*
619 AliMUONDataInterface::TriggerStore(Int_t event, const char* treeLetter)
620 {
621   /// Return the triggerStore for a given event.
622   /// Return 0x0 if event not found.
623   /// Returned pointer should not be deleted
624   /// treeLetter can be R or D to tell from which tree to read the information
625   
626   if ( LoadEvent(event) ) return 0x0;
627   
628   TTree* tree(0x0);
629   
630   TString stree(treeLetter);
631   stree.ToUpper();
632   
633   if ( stree == "D" )
634   {
635     fLoader->LoadDigits();    
636     tree = fLoader->TreeD();
637   }
638   else if ( stree == "R" )
639   {
640     fLoader->LoadRecPoints();
641     tree = fLoader->TreeR();
642   }
643   
644   if ( !tree ) 
645   {
646     AliError(Form("Could not get tree%s",treeLetter));
647     return 0x0;
648   }
649   
650   if (!fTriggerStore)
651   {
652     fTriggerStore = AliMUONVTriggerStore::Create(*tree);
653   }
654   
655   if ( fTriggerStore ) 
656   {
657     fTriggerStore->Clear();
658     fTriggerStore->Connect(*tree);
659     tree->GetEvent(0);
660   }
661   
662   if ( stree == "D" )
663   {
664     fLoader->UnloadDigits();    
665   }
666   else if ( stree == "R" )
667   {
668     fLoader->UnloadRecPoints();
669   }
670   
671   return fTriggerStore;
672 }
673
674 //______________________________________________________________________________
675 //______________________________________________________________________________
676 //______________________________________________________________________________
677 //______________________________________________________________________________
678
679 void AliMUONDataInterface::Reset()
680 {
681 /// \deprecated Method is going to be removed
682
683   AliFatal("Deprecated");
684 }
685
686 Bool_t AliMUONDataInterface::UseCurrentRunLoader()
687 {
688 /// \deprecated Method is going to be removed
689
690   AliFatal("Deprecated");
691   return kFALSE;
692 }
693   
694 Int_t AliMUONDataInterface::NumberOfEvents(TString , TString )
695 {
696 /// \deprecated Method is going to be removed
697
698   AliFatal("Deprecated");
699   return 0;
700 }
701
702
703 Int_t AliMUONDataInterface::NumberOfParticles(TString , TString , Int_t )
704 {
705 /// \deprecated Method is going to be removed
706
707   AliFatal("Deprecated");
708   return 0;
709 }
710
711
712 TParticle* AliMUONDataInterface::Particle(
713                 TString , TString , Int_t , Int_t 
714         )
715 {
716 /// \deprecated Method is going to be removed
717
718   AliFatal("Deprecated");
719   return 0;
720 }
721
722
723 Int_t AliMUONDataInterface::NumberOfTracks(TString , TString , Int_t )
724 {
725 /// \deprecated Method is going to be removed
726
727   AliFatal("Deprecated");
728   return 0;
729 }
730
731
732 Int_t AliMUONDataInterface::NumberOfHits(
733                 TString , TString , Int_t , Int_t 
734         )
735 {
736 /// \deprecated Method is going to be removed
737
738   AliFatal("Deprecated");
739   return 0;
740 }
741
742
743 AliMUONHit* AliMUONDataInterface::Hit(
744                 TString , TString , Int_t ,
745                 Int_t , Int_t 
746         )
747 {
748 /// \deprecated Method is going to be removed
749
750   AliFatal("Deprecated");
751   return 0;
752 }
753
754
755 Int_t AliMUONDataInterface::NumberOfSDigits(
756                 TString , TString , Int_t ,
757                 Int_t , Int_t 
758         )
759 {
760 /// \deprecated Method is going to be removed
761
762   AliFatal("Deprecated");
763   return 0;
764 }
765
766
767 AliMUONDigit* AliMUONDataInterface::SDigit(
768                 TString , TString , Int_t ,
769                 Int_t , Int_t , Int_t 
770         )
771 {
772 /// \deprecated Method is going to be removed
773
774   AliFatal("Deprecated");
775   return 0;
776 }
777
778
779 Int_t AliMUONDataInterface::NumberOfDigits(
780                 TString , TString , Int_t ,
781                 Int_t , Int_t 
782         )
783 {
784 /// \deprecated Method is going to be removed
785
786   AliFatal("Deprecated");
787   return 0;
788 }
789
790
791 AliMUONDigit* AliMUONDataInterface::Digit(
792                 TString , TString , Int_t ,
793                 Int_t , Int_t , Int_t 
794         )
795 {
796 /// \deprecated Method is going to be removed
797
798   AliFatal("Deprecated");
799   return 0;
800 }
801
802
803 Int_t AliMUONDataInterface::NumberOfRawClusters(
804                 TString , TString , Int_t , Int_t 
805         )
806 {
807 /// \deprecated Method is going to be removed
808
809   AliFatal("Deprecated");
810   return 0;
811 }
812
813
814 AliMUONRawCluster* AliMUONDataInterface::RawCluster(
815                 TString , TString , Int_t ,
816                 Int_t , Int_t 
817         )
818 {
819 /// \deprecated Method is going to be removed
820
821   AliFatal("Deprecated");
822   return 0;
823 }
824
825
826 Int_t AliMUONDataInterface::NumberOfLocalTriggers(TString , TString , Int_t )
827 {
828 /// \deprecated Method is going to be removed
829
830   AliFatal("Deprecated");
831   return 0;
832 }
833
834
835 AliMUONLocalTrigger* AliMUONDataInterface::LocalTrigger(
836                 TString , TString , Int_t , Int_t 
837         )
838 {
839 /// \deprecated Method is going to be removed
840
841   AliFatal("Deprecated");
842   return 0;
843 }
844
845 Bool_t AliMUONDataInterface::SetFile(TString , TString )
846 {
847 /// \deprecated Method is going to be removed
848
849   AliFatal("Deprecated");
850   return 0;
851 }
852
853
854 Bool_t AliMUONDataInterface::GetEvent(Int_t )
855 {
856 /// \deprecated Method is going to be removed
857
858   AliFatal("Deprecated");
859   return 0;
860 }
861
862 Int_t AliMUONDataInterface::NumberOfParticles()
863 {
864 /// \deprecated Method is going to be removed
865
866   AliFatal("Deprecated");
867   return 0;
868 }
869
870
871 TParticle* AliMUONDataInterface::Particle(Int_t )
872 {
873 /// \deprecated Method is going to be removed
874
875   AliFatal("Deprecated");
876   return 0;
877 }
878
879
880 Int_t AliMUONDataInterface::NumberOfTracks()
881 {
882 /// \deprecated Method is going to be removed
883
884   AliFatal("Deprecated");
885   return 0;
886 }
887
888
889 Int_t AliMUONDataInterface::NumberOfHits(Int_t )
890 {
891 /// \deprecated Method is going to be removed
892
893   AliFatal("Deprecated");
894   return 0;
895 }
896
897
898 AliMUONHit* 
899 AliMUONDataInterface::Hit(Int_t , Int_t )
900 {
901 /// \deprecated Method is going to be removed
902
903   AliFatal("Deprecated");
904   return 0;
905 }
906
907
908 Int_t AliMUONDataInterface::NumberOfSDigits(Int_t , Int_t )
909 {
910 /// \deprecated Method is going to be removed
911
912   AliFatal("Deprecated");
913   return 0;
914 }
915
916
917 AliMUONDigit* AliMUONDataInterface::SDigit(Int_t , Int_t , Int_t )
918 {
919 /// \deprecated Method is going to be removed
920
921   AliFatal("Deprecated");
922   return 0;
923
924 }
925
926
927 Int_t AliMUONDataInterface::NumberOfDigits(Int_t , Int_t )
928 {
929 /// \deprecated Method is going to be removed
930
931   AliFatal("Deprecated");
932   return 0;
933
934 }
935
936
937 AliMUONDigit* AliMUONDataInterface::Digit(Int_t , Int_t , Int_t )
938 {
939 /// \deprecated Method is going to be removed
940
941   AliFatal("Deprecated");
942   return 0;
943 }
944
945
946 Int_t AliMUONDataInterface::NumberOfRawClusters(Int_t )
947 {
948 /// \deprecated Method is going to be removed
949
950   AliFatal("Deprecated");
951   return 0;
952 }
953
954
955 AliMUONRawCluster* AliMUONDataInterface::RawCluster(Int_t , Int_t )
956 {
957 /// \deprecated Method is going to be removed
958
959   AliFatal("Deprecated");
960   return 0;
961 }
962
963
964 Int_t AliMUONDataInterface::NumberOfLocalTriggers()
965 {
966 /// \deprecated Method is going to be removed
967
968   AliFatal("Deprecated");
969   return 0;
970 }
971
972
973 AliMUONLocalTrigger* AliMUONDataInterface::LocalTrigger(Int_t )
974 {
975 /// \deprecated Method is going to be removed
976
977   AliFatal("Deprecated");
978   return 0;
979 }
980
981 Int_t AliMUONDataInterface::NumberOfGlobalTriggers()
982 {
983 /// \deprecated Method is going to be removed
984
985   AliFatal("Deprecated");
986   return 0;
987 }
988
989 AliMUONGlobalTrigger* AliMUONDataInterface::GlobalTrigger(Int_t )
990 {
991 /// \deprecated Method is going to be removed
992
993   AliFatal("Deprecated");
994   return 0;
995 }
996
997 Int_t AliMUONDataInterface::NumberOfRecTracks()
998 {
999 /// \deprecated Method is going to be removed
1000
1001   AliFatal("Deprecated");
1002   return 0;
1003 }
1004
1005 AliMUONTrack* AliMUONDataInterface::RecTrack(Int_t )
1006 {
1007 /// \deprecated Method is going to be removed
1008
1009   AliFatal("Deprecated");
1010   return 0;
1011 }