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