]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TDPMjet/TDPMjet.cxx
Added protection for bad pedestal subtraction
[u/mrichter/AliRoot.git] / TDPMjet / TDPMjet.cxx
index 2321abb5b0c596d7e475364bd3bee07e2a11f1c5..a0ea803ad2aa6a05492d36baf6f075ce7592d855 100644 (file)
@@ -111,6 +111,7 @@ ClassImp(TDPMjet)
        fBmax(0.),
        fFCentr(0),
        fPi0Decay(0),
+       fDecayAll(0),
        fProcess(kDpmMb)
 {
 // Default Constructor
@@ -126,12 +127,14 @@ TDPMjet::TDPMjet(DpmProcess_t  iproc, Int_t Ip=208, Int_t Ipz=82, Int_t It=208,
       fIt(It),
       fItz(Itz),
       fEpn(Epn),
+      fPpn(0.),
       fCMEn(CMEn),
       fIdp(0),
       fBmin(0.),
       fBmax(0.),
       fFCentr(0),
       fPi0Decay(0),
+      fDecayAll(0),
       fProcess(iproc)
 {  
     printf("TDPMJet Constructor %d %d %d %d \n", Ip, Ipz, It, Itz);
@@ -166,7 +169,7 @@ Int_t TDPMjet::ImportParticles(TClonesArray *particles, Option_t *option)
        entot += DTEVT1.phkk[i][3]; // PHKK[i][3] <-> PHKK(4,i)
      } 
   }
-  //printf("\n TDPMjet: DPMJET stack contains %d particles", numpart);
+  printf("\n TDPMjet: DPMJET stack contains %d particles", numpart);
   // printf("\n TDPMjet: Final not decayed particles: %d",    numStabpart);
   //printf("\n TDPMjet: Total energy: %f GeV          \n",   entot);
   Int_t nump = 0;
@@ -252,15 +255,32 @@ void TDPMjet::Initialize()
 //
     FILE* out = fopen("dpmjet.inp","w");
 //  Projectile and Target definition 
-    fprintf(out, "PROJPAR   %10.1f%10.1f%10.1f%10.1f%10.1f%10.1f\n", (Float_t) fIp, (Float_t) fIpz,  0., 0., 0., 0.);
-    fprintf(out, "TARPAR    %10.1f%10.1f%10.1f%10.1f%10.1f%10.1f\n", (Float_t) fIt, (Float_t) fItz,  0., 0., 0., 0.);
+    if (fIp == 1 && fIpz ==1) {
+       fprintf(out, "PROJPAR                                                               PROTON\n");
+    } else if (fIp == 1 && fIpz == -1) {
+       fprintf(out, "PROJPAR                                                               APROTON\n");
+    } else {
+       fprintf(out, "PROJPAR   %10.1f%10.1f%10.1f%10.1f%10.1f%10.1f\n", (Float_t) fIp, (Float_t) fIpz,  0., 0., 0., 0.);
+    }
+    
+    if (fIt == 1 && fItz ==1) {
+       fprintf(out, "TARPAR                                                                PROTON\n");
+    } else if (fIt == 1 && fItz == -1) {
+       fprintf(out, "TARPAR                                                                APROTON\n");
+    } else {
+       fprintf(out, "TARPAR    %10.1f%10.1f%10.1f%10.1f%10.1f%10.1f\n", (Float_t) fIt, (Float_t) fItz,  0., 0., 0., 0.);
+    }
+
 //  Beam energy and crossing-angle
     fprintf(out, "BEAM      %10.1f%10.1f%10.1f%10.1f%10.1f%10.1f\n",fEpn, fEpn, 0., 0., 0., 0.);
 //  Centrality
-    fprintf(out, "CENTRAL   %10.1f%10.1f%10.1f%10.1f%10.1f%10.1f\n",-1., fBmin, fBmax, 0., 0., 0.);
+    if (fIp > 1. && fIt > 1) 
+       fprintf(out, "CENTRAL   %10.1f%10.1f%10.1f%10.1f%10.1f%10.1f\n",-1., fBmin, fBmax, 0., 0., 0.);
 //  Particle decays
     if (fPi0Decay) 
-    fprintf(out, "PARDECAY  %10.1f%10.1f%10.1f%10.1f%10.1f%10.1f\n", 2., 0., 0., 0., 0., 0.);    
+       fprintf(out, "PARDECAY  %10.1f%10.1f%10.1f%10.1f%10.1f%10.1f\n", 2., 0., 0., 0., 0., 0.);    
+
+    
 //
 //  PHOJET specific
     fprintf(out, "PHOINPUT\n");
@@ -269,15 +289,37 @@ void TDPMjet::Initialize()
     if (fProcess == kDpmMb) {
        fprintf(out, "PROCESS           1 0 1 1 1 1 1 1\n");
     } else if (fProcess == kDpmMbNonDiffr) {
-       fprintf(out, "PROCESS           1 0 1 1 0 0 0 1\n");
+       fprintf(out, "PROCESS           1 0 1 0 0 0 0 1\n");
     } else if (fProcess == kDpmDiffr) {
-       fprintf(out, "PROCESS           0 0 0 0 1 1 1 0\n");
+       fprintf(out, "PROCESS           0 0 0 1 1 1 1 0\n");
     }else if (fProcess == kDpmSingleDiffr) {
         fprintf(out, "PROCESS           0 0 0 0 1 1 0 0\n");
     }else if (fProcess == kDpmDoubleDiffr) {
         fprintf(out, "PROCESS           0 0 0 0 0 0 1 0\n");
+    } else if (fProcess == kDpmCentralDiffr){
+        fprintf(out, "PROCESS           0 0 0 1 0 0 0 0\n");
     }
     
+    Int_t iPDG[19] = 
+       {
+//          K0s   pi0  lam   sig+  sig-  tet0
+       310,  111, 3122, 3222, 3112, 3322,
+//          tet- om-    D+      D0     Ds+
+       3312, 3334,  411,  421,  431,
+//          etac lamc+ sigc++ sigc+ sigc0 Ksic+
+        441, 4122, 4222, 4212, 4112, 4232,
+//         Ksic0 sig0 
+       4132, 3212
+       };
+    
+    
+    Int_t iON = (fDecayAll) ? 1:0;
+    for (Int_t i = 0; i < 19; i++) {
+       fprintf(out, "LUND-DECAY%5d %5d\n",  iPDG[i], iON);    
+    }
+       
+    fprintf(out, "LUND-MSTJ %5d %5d\n",   22, 1);    
+
     fprintf(out, "ENDINPUT\n");
 //
 //  START card