]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Introducing MUON ESD
authorhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 28 Jan 2004 10:55:55 +0000 (10:55 +0000)
committerhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 28 Jan 2004 10:55:55 +0000 (10:55 +0000)
STEER/AliESDMuonTest.C [new file with mode: 0644]
STEER/AliESDMuonTrack.cxx
STEER/AliESDMuonTrack.h

diff --git a/STEER/AliESDMuonTest.C b/STEER/AliESDMuonTest.C
new file mode 100644 (file)
index 0000000..93365a9
--- /dev/null
@@ -0,0 +1,191 @@
+/**************************************************************************
+ * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
+ *                                                                        *
+ * Author: The ALICE Off-line Project.                                    *
+ * Contributors are mentioned in the code where appropriate.              *
+ *                                                                        *
+ * Permission to use, copy, modify and distribute this software and its   *
+ * documentation strictly for non-commercial purposes is hereby granted   *
+ * without fee, provided that the above copyright notice appears in all   *
+ * copies and that both the copyright notice and this permission notice   *
+ * appear in the supporting documentation. The authors make no claims     *
+ * about the suitability of this software for any purpose. It is          *
+ * provided "as is" without express or implied warranty.                  *
+ **************************************************************************/
+
+/* $Id$ */
+
+//
+// Macro for checking aliroot output and associated files contents
+// Gines Martinez, Subatech June 2003
+//
+
+// ROOT includes
+#include "TBranch.h"
+#include "TClonesArray.h"
+#include "TFile.h"
+#include "TH1.h"
+#include "TParticle.h"
+#include "TTree.h"
+
+// STEER includes
+#include "AliRun.h"
+#include "AliRunLoader.h"
+#include "AliHeader.h"
+#include "AliLoader.h"
+#include "AliStack.h"
+#include "AliESD.h"
+
+// MUON includes
+#include "AliMUON.h"
+#include "AliMUONData.h"
+#include "AliMUONConstants.h"
+#include "AliMUONRawCluster.h"
+#include "AliMUONTrack.h"
+#include "AliMUONTriggerTrack.h"
+#include "AliESDMuonTrack.h"
+
+
+void AliESDMuonTest(char * filename="galice.root", Int_t run=0){
+
+  TClonesArray * recTracksArray;
+  
+  // Creating Run Loader and openning file containing Hits
+  AliRunLoader * RunLoader = AliRunLoader::Open(filename,"MUONFolder","READ");
+  if (RunLoader ==0x0) {
+    printf(">>> Error : Error Opening %s file \n",filename);
+    return;
+  }
+  
+  // creating ESD file
+  TFile *ef=TFile::Open("AliESD.Muon.root","RECREATE");
+  if (!ef->IsOpen()) cerr<<"Can't open AliESD.root file!\n";
+
+  AliLoader * MUONLoader = RunLoader->GetLoader("MUONLoader");
+  MUONLoader->LoadTracks("READ");
+
+  // Creating MUON data container
+  AliMUONData muondata(MUONLoader,"MUON","MUON");
+
+  // declaration  
+  Int_t ievent, nevents;
+  Int_t ntrackhits;
+  Double_t fitfmin;
+  Int_t nrectracks;
+
+  Double_t bendingSlope, nonBendingSlope, fInverseBendingMomentum;
+  Double_t fXRec, fYRec, fZRec;
+
+  Float_t  x11, y11, thetaX,thetaY ;
+
+  nevents = RunLoader->GetNumberOfEvents();
+  
+  // setting pointer for tracks, triggertracks& trackparam at vertex
+  AliMUONTrack * rectrack;
+  AliMUONTriggerTrack * rectriggertrack;
+  AliMUONTrackParam *trackParam;
+
+  for (ievent = 0; ievent < nevents; ievent++) {
+    RunLoader->GetEvent(ievent);
+
+    //   cerr<<"\n\nProcessing event number : "<<ievent<<endl;
+
+    // setting ESD class pointer
+    AliESD *event = new AliESD(); 
+    event->SetRunNumber(run);
+    event->SetEventNumber(ievent);
+
+    // -------------------- tracks-------------
+
+    // setting ESD MUON class
+    AliESDMuonTrack* ESDTrack = new  AliESDMuonTrack() ;
+    muondata.SetTreeAddress("RT");
+    muondata.GetRecTracks();
+    recTracksArray = muondata.RecTracks();
+        
+    nrectracks = (Int_t) recTracksArray->GetEntriesFast(); //
+    printf(">>> Event %d Number of Recconstructed tracks %d \n",ievent, nrectracks);
+   
+    // read track infos
+    for (Int_t irectracks = 0; irectracks <  nrectracks;  irectracks++) {
+
+      rectrack = (AliMUONTrack*) recTracksArray->At(irectracks);
+
+      trackParam = rectrack->GetTrackParamAtVertex();
+
+      bendingSlope            = trackParam->GetBendingSlope();
+      nonBendingSlope         = trackParam->GetNonBendingSlope();
+      fInverseBendingMomentum = trackParam->GetInverseBendingMomentum();
+      fXRec  = trackParam->GetNonBendingCoor();
+      fYRec  = trackParam->GetBendingCoor();
+      fZRec  = trackParam->GetZ();
+
+      ntrackhits = rectrack->GetNTrackHits();
+      fitfmin = rectrack->GetFitFMin();
+
+      // setting data member of ESD MUON
+      ESDTrack->SetInverseBendingMomentum(fInverseBendingMomentum);
+      ESDTrack->SetThetaX(TMath::ATan(nonBendingSlope));
+      ESDTrack->SetThetaY(TMath::ATan(bendingSlope));
+      ESDTrack->SetZ(fZRec);
+      ESDTrack->SetBendingCoor(fYRec);
+      ESDTrack->SetNonBendingCoor(fXRec);
+      ESDTrack->SetChi2(fitfmin);
+      ESDTrack->SetNHit(ntrackhits);
+    }
+
+    // -------------------- trigger tracks-------------
+    muondata.SetTreeAddress("RL");
+    muondata.GetRecTriggerTracks();
+    recTracksArray = muondata.RecTriggerTracks();
+        
+    nrectracks = (Int_t) recTracksArray->GetEntriesFast(); //
+    printf(">>> Event %d Number of Recconstructed tracks %d \n",ievent, nrectracks);
+   
+    // read trigger track infos
+    for (Int_t irectracks = 0; irectracks <  nrectracks;  irectracks++) {
+
+      rectriggertrack = (AliMUONTriggerTrack*) recTracksArray->At(irectracks);
+    
+      x11 = rectriggertrack->GetY11();
+      y11 = rectriggertrack->GetY11();
+      thetaX = rectriggertrack->GetThetax();
+      thetaY = rectriggertrack->GetThetay();
+
+      // setting data member of ESD MUON trigger
+      ESDTrack->SetThetaX11(thetaX);
+      ESDTrack->SetThetaY11(thetaY);
+      ESDTrack->SetX11(x11);
+      ESDTrack->SetY11(y11);
+    }
+
+    // storing ESD MUON Track into ESD Event & reset muondata
+    event->AddMuonTrack(ESDTrack);
+    muondata.ResetRecTracks();
+    muondata.ResetRecTriggerTracks();
+
+    // writting ESD event
+    Char_t ename[100]; 
+    sprintf(ename,"%d",ievent);
+    ef->cd();
+    if (!event->Write(ename)) cerr<<"Something bad happened...\n";
+    delete event;
+
+  } // end loop on event  
+  ef->Close();
+  MUONLoader->UnloadTracks();
+  MUONLoader->UnloadTriggerTracks();
+
+}
+
+
+
+
+
+
+
+
+
+
index e9b970b2e17e922cda87e89f80ea6c3d8c52f10b..f41d4395b3d0256dcf1d68ccc32591f5103723e0 100644 (file)
@@ -1,4 +1,43 @@
 #include "AliESDMuonTrack.h"
 
+AliESDMuonTrack::AliESDMuonTrack (const AliESDMuonTrack& MUONTrack):TObject(MUONTrack)
+{
+  fInverseBendingMomentum = MUONTrack.fInverseBendingMomentum; 
+  fThetaX = MUONTrack.fThetaX;           
+  fThetaY = MUONTrack.fThetaY ;           
+  fZ = MUONTrack.fZ;                
+  fBendingCoor = MUONTrack.fBendingCoor;      
+  fNonBendingCoor = MUONTrack.fNonBendingCoor;   
+  fChi2 = MUONTrack.fChi2;             
+  fNHit= MUONTrack.fNHit ; 
+
+  fX11  = MUONTrack.fX11;  
+  fY11  = MUONTrack.fY11;
+  fThetaX11  = MUONTrack.fThetaX11; 
+  fThetaY11  = MUONTrack.fThetaY11;      
+}
+
+AliESDMuonTrack& AliESDMuonTrack::operator=(const AliESDMuonTrack& MUONTrack)
+{
+  if (this == &MUONTrack)
+    return *this;
+
+  fInverseBendingMomentum = MUONTrack.fInverseBendingMomentum; 
+  fThetaX = MUONTrack.fThetaX;           
+  fThetaY = MUONTrack.fThetaY ;           
+  fZ = MUONTrack.fZ;                
+  fBendingCoor = MUONTrack.fBendingCoor;      
+  fNonBendingCoor = MUONTrack.fNonBendingCoor;   
+  fChi2 = MUONTrack.fChi2;             
+  fNHit= MUONTrack.fNHit ; 
+
+  fX11  = MUONTrack.fX11;  
+  fY11  = MUONTrack.fY11;
+  fThetaX11  = MUONTrack.fThetaX11; 
+  fThetaY11  = MUONTrack.fThetaY11;  
+
+  return *this;
+}
+
 ClassImp(AliESDMuonTrack)
 
index 18d872af6660cc2a5a8609c2dad4c3109ac12d72..48e956a6537783b176d948e2c957a5eecd2d749e 100644 (file)
@@ -4,6 +4,62 @@
 #include "TObject.h"
 
 class AliESDMuonTrack : public TObject {
+public:
+ AliESDMuonTrack(){
+    // Constructor;
+ } // Constructor
+ virtual ~AliESDMuonTrack(){
+    // Destructor;
+ } // Destructor
+ AliESDMuonTrack(const AliESDMuonTrack& );
+ AliESDMuonTrack& operator=(const AliESDMuonTrack& );
+
+
+ // Get and Set methods for data
+  Double_t GetInverseBendingMomentum(void) const {return fInverseBendingMomentum;}
+  void SetInverseBendingMomentum(Double_t InverseBendingMomentum) 
+    {fInverseBendingMomentum = InverseBendingMomentum;}
+  Double_t GetThetaX(void) const {return fThetaX;}
+  void SetThetaX(Double_t ThetaX) {fThetaX = ThetaX;}
+  Double_t GetThetaY(void) const {return fThetaY;}
+  void SetThetaY(Double_t ThetaY) {fThetaY = ThetaY;}
+  Double_t GetZ(void) const {return fZ;}
+  void SetZ(Double_t Z) {fZ = Z;}
+  Double_t GetBendingCoor(void) const {return fBendingCoor;}
+  void SetBendingCoor(Double_t BendingCoor) {fBendingCoor = BendingCoor;}
+  Double_t GetNonBendingCoor(void) const {return fNonBendingCoor;}
+  void SetNonBendingCoor(Double_t NonBendingCoor) {fNonBendingCoor = NonBendingCoor;}
+  Double_t GetChi2(void) const {return fChi2;}
+  void SetChi2(Double_t Chi2) {fChi2 = Chi2;}
+  UInt_t GetNHit(void) const {return fNHit;}
+  void SetNHit(UInt_t NHit) {fNHit = NHit;}
+
+  Float_t GetX11() const {return fX11;}
+  void SetX11(Float_t X11) {fX11 = X11;}
+  Float_t GetY11() const {return fY11;}
+  void SetY11(Float_t Y11) {fY11 = Y11;}
+  Float_t GetThetaX11() const {return fThetaX11;}
+  void SetThetaX11(Float_t ThetaX) {fThetaX11 = ThetaX;}
+  Float_t GetThetaY11() const {return fThetaY11;}    
+  void SetThetaY11(Float_t ThetaY) {fThetaY11 = ThetaY;}
+
+protected:
+  // tracking chamber
+  Double_t fInverseBendingMomentum; // Inverse bending momentum (GeV/c ** -1) times the charge 
+  Double_t fThetaX;           // Angle of track at vertex in X direction (rad)
+  Double_t fThetaY;           // Angle of track at vertex in Y direction (rad)
+  Double_t fZ;                // Z coordinate (cm)
+  Double_t fBendingCoor;      // bending coordinate (cm)
+  Double_t fNonBendingCoor;   // non bending coordinate (cm)
+  Double_t fChi2;             // chi2 in the MUON track fit
+  UInt_t   fNHit;              // number of hit in the track
+
+  // trigger chamber
+  Float_t fX11;    // x position of fired Y strip in MC11
+  Float_t fY11;    // y position of fired X strip in MC11
+  Float_t fThetaX11; // track theta angle in X   
+  Float_t fThetaY11; // track theta angle in Y
+
   ClassDef(AliESDMuonTrack,1)  //MUON ESD track class 
 };