]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - EVGEN/AliGenReaderEMD.cxx
Updates(C. Oppedisano)
[u/mrichter/AliRoot.git] / EVGEN / AliGenReaderEMD.cxx
index 09bbffecc28f0430d06628ef96d088dff093daf3..32879c1acaa46f5012070e8317cb5bf05e3886a3 100644 (file)
 
 #include "AliGenReaderEMD.h"
 
-ClassImp(AliGenReaderEMD);
-
-
-  // -----------------------------------------------------------------------------------
-AliGenReaderEMD::AliGenReaderEMD() 
+ClassImp(AliGenReaderEMD)
+
+AliGenReaderEMD::AliGenReaderEMD():
+    fStartEvent(0),
+    fNcurrent(0),  
+    fNparticle(0), 
+    fTreeNtuple(0),
+    fIPSide(0),
+    fPcToTrack(0),
+    fNnLeft(0),
+    fEnLeft(0),
+    fNnRight(0),
+    fEnRight(0),
+    fNpLeft(0),
+    fEtapLeft(0),
+    fNpRight(0),
+    fEtapRight(0)
 {
 // Default constructor
-    fStartEvent  = 0;
-    fTreeNtuple  = 0;
-    fIPSide      = 0;
-    fPcToTrack = 0;
 }
 
+AliGenReaderEMD::AliGenReaderEMD(const AliGenReaderEMD &reader):
+    AliGenReader(reader),
+    fStartEvent(0),
+    fNcurrent(0),  
+    fNparticle(0), 
+    fTreeNtuple(0),
+    fIPSide(0),
+    fPcToTrack(0),
+    fNnLeft(0),
+    fEnLeft(0),
+    fNnRight(0),
+    fEnRight(0),
+    fNpLeft(0),
+    fEtapLeft(0),
+    fNpRight(0),
+    fEtapRight(0)
+{
+    // Copy Constructor
+    reader.Copy(*this);
+}
   // -----------------------------------------------------------------------------------
 AliGenReaderEMD::~AliGenReaderEMD()
 {
@@ -84,25 +112,25 @@ void AliGenReaderEMD::Init()
     // **** neutrons
     Ntu->SetBranchAddress("Nleft",&fNnLeft);
     Ntu->SetBranchAddress("Eleft",&fEnLeft);
-    Ntu->SetBranchAddress("Pxl",  &fPxnLeft);
-    Ntu->SetBranchAddress("Pyl",  &fPynLeft);
-    Ntu->SetBranchAddress("Pzl",  &fPznLeft);
+    Ntu->SetBranchAddress("Pxl",  fPxnLeft);
+    Ntu->SetBranchAddress("Pyl",  fPynLeft);
+    Ntu->SetBranchAddress("Pzl",  fPznLeft);
     Ntu->SetBranchAddress("Nright",&fNnRight);
     Ntu->SetBranchAddress("Eright",&fEnRight);
-    Ntu->SetBranchAddress("Pxr",   &fPxnRight);
-    Ntu->SetBranchAddress("Pyr",   &fPynRight);
-    Ntu->SetBranchAddress("Pzr",   &fPznRight);
+    Ntu->SetBranchAddress("Pxr",   fPxnRight);
+    Ntu->SetBranchAddress("Pyr",   fPynRight);
+    Ntu->SetBranchAddress("Pzr",   fPznRight);
     // **** protons
     Ntu->SetBranchAddress("Nleft_p",&fNpLeft);
     Ntu->SetBranchAddress("Etaleft_p",&fEtapLeft);
-    Ntu->SetBranchAddress("Pxl_p",  &fPxpLeft);
-    Ntu->SetBranchAddress("Pyl_p",  &fPypLeft);
-    Ntu->SetBranchAddress("Pzl_p",  &fPzpLeft);
+    Ntu->SetBranchAddress("Pxl_p",  fPxpLeft);
+    Ntu->SetBranchAddress("Pyl_p",  fPypLeft);
+    Ntu->SetBranchAddress("Pzl_p",  fPzpLeft);
     Ntu->SetBranchAddress("Nright_p",&fNpRight);
     Ntu->SetBranchAddress("Etaright_p",&fEtapRight);
-    Ntu->SetBranchAddress("Pxr_p",   &fPxpRight);
-    Ntu->SetBranchAddress("Pyr_p",   &fPypRight);
-    Ntu->SetBranchAddress("Pzr_p",   &fPzpRight);
+    Ntu->SetBranchAddress("Pxr_p",   fPxpRight);
+    Ntu->SetBranchAddress("Pyr_p",   fPypRight);
+    Ntu->SetBranchAddress("Pzr_p",   fPzpRight);
 }
 
 // -----------------------------------------------------------------------------------
@@ -127,21 +155,21 @@ Int_t AliGenReaderEMD::NextEvent()
        // #### fPcToTrack      =0->neutrons, =1->protons
        if(fIPSide==0){
          if(fPcToTrack==0){
-           printf("\n \t \t Tracking %d neutrons emitted on RIGHT side\n\n", fNnRight);
+           printf("\n \t \t Tracking %d neutrons emitted on C side\n\n", fNnRight);
            nTracks    = fNnRight;
          }
          else if(fPcToTrack==1){
-           printf("\n \t \t Tracking %d protons emitted on RIGHT side\n\n", fNpRight);
+           printf("\n \t \t Tracking %d protons emitted on C side\n\n", fNpRight);
            nTracks    = fNpRight;
          }
        }
        else if(fIPSide==1){
          if(fPcToTrack==0){
-           printf("\n \t \t Tracking %d neutrons emitted on LEFT side\n", fNnLeft);
+           printf("\n \t \t Tracking %d neutrons emitted on A side\n", fNnLeft);
            nTracks    = fNnLeft;
          }
          else if(fPcToTrack==1){
-           printf("\n \t \t Tracking %d protons emitted on LEFT side\n", fNpLeft);
+           printf("\n \t \t Tracking %d protons emitted on A side\n", fNpLeft);
            nTracks    = fNpLeft;
          }
        }
@@ -157,8 +185,12 @@ TParticle* AliGenReaderEMD::NextParticle()
 {
     // Read the next particle
     Float_t p[4];
-    Int_t ipart = kNeutron;
-    Double_t amass = TDatabasePDG::Instance()->GetParticle(kNeutron)->Mass();
+
+    Int_t ipart=0;
+    if(fPcToTrack==0) ipart = kNeutron;
+    else  if(fPcToTrack==1) ipart = kProton;
+    Double_t amass = TDatabasePDG::Instance()->GetParticle(ipart)->Mass();
+
     p[0] = fPxnRight[fNparticle];
     p[1] = fPynRight[fNparticle];
     p[2] = fPznRight[fNparticle];