Main Page | Namespace List | Class Hierarchy | Class List | File List | Class Members | File Members

rsAnalc0p01.cpp

Go to the documentation of this file.
00001 
00002 #include <XANADOO/domain/interface/XANAEsdEvent.h>
00003 #include <XANADOO/XANAClusters/interface/XANACluster.h>
00004 #include <XANADOO/XANAClusters/interface/XANACaloRecHit.h>
00005 #include <XANADOO/XANAClusters/interface/XANAEmCluster.h>
00006 #include <XANADOO/XANAClusters/interface/XANASuperCluster.h>
00007 #include <XANADOO/XANAClusters/interface/XANAHadCluster.h>
00008 #include <XANADOO/XANATracks/interface/XANATrack.h>
00009 #include <XANADOO/XANAMcInfo/interface/XANAGeneratorEvent.h>
00010 #include <XANADOO/XANAMcInfo/interface/XANAGeantEvent.h>
00011 #include <XANADOO/XANAMcInfo/interface/XANAGeneratorParticle.h>
00012 #include <XANADOO/XANAElectronCandidate/interface/XANAElectronCandidate.h>
00013 #include <XANADOO/XANAElectronCandidate/interface/XANAElectronTrack.h>
00014 #include <XANADOO/XANAElectronCandidate/interface/XANAElectronSeed.h>
00015 #include <XANADOO/XANAMuons/interface/XANAMuonCandidate.h>
00016 #include <XANADOO/XANATriggerInfo/interface/XANATriggerInfo.h>
00017 #include <XANADOO/XANAJets/interface/XANAJet.h>
00018 
00019 #include <XANADOO/XANAGeometry/interface/XANAEcalGeometry.h>
00020 
00021 #include <XANADOO/XANAnalysisRS/interface/RSElecSelector.h>
00022 #include <XANADOO/XANAnalysisRS/interface/RSCorrectionFunc.h>
00023 #include <XANADOO/XANAnalysisRS/interface/RSSaturation.h>
00024 #include <XANADOO/XANAnalysisRS/interface/RSPhotonAssoc.h>
00025 #include <XANADOO/XANAnalysisRS/interface/ClassRSElec.h>
00026 #include <XANADOO/XANAnalysisRS/interface/RSVertexCorr.h>
00027 #include <XANADOO/XANAnalysisRS/interface/RSDistribAng.h>
00028 #include <XANADOO/XANAnalysisRS/interface/RSMassEstim.h>
00029 
00030 
00031 #include "TTree.h"
00032 #include "TBits.h"
00033 #include "TObjectTable.h"
00034 #include "TFile.h"
00035 #include "TBranch.h"
00036 #include "TClonesArray.h"
00037 #include "TObjArray.h"
00038 #include "TH1.h"
00039 #include "TH2.h"
00040 #include "TSystem.h"
00041 #include "TChain.h"
00042 
00043 #include <string>
00044 
00045 using namespace std;
00046 
00047 Short_t ne_candidatelectron=0,ns_supercluster=0;
00048 TObjArray *genpart = 0;  
00049 TObjArray *clusters = 0;
00050 TObjArray *hadClusters = 0;
00051 TObjArray *superClusters = 0;
00052 TObjArray *preshClusters = 0;
00053 TRefArray *hits = 0;
00054 TObjArray *tracks = 0;
00055 TObjArray *vertices = 0;
00056 TObjArray *electrons = 0;
00057 TObjArray *electronTracks = 0;
00058 TObjArray *muons = 0;
00059 
00060 
00061  
00062   
00063 int main(int argc, char** argv)
00064 {
00065   //   Connect to file generated
00066   TFile *f;
00067     //  if (argc==1) f = new TFile("SE04_E25_Pall_PT30.root");
00068   if (argc==1) f = new TFile("/data/scratch/collard/Production_xana151/zprim/famos/xZprimALRM_m1tev.root");
00069 
00070   else f = new TFile(*++argv);
00071  
00072     //   Read Tree named "T" in memory. Tree pointer is assigned the same name
00073   TTree *T = (TTree*)f->Get("ESD");
00074 
00075    
00076 // version TChain
00077 //   TChain *T = new TChain("ESD");
00078 //   T->Add("file1.root");
00079 //   T->Add("file2.root");
00080  
00081 // example of how to suppress reading of branches
00082 // has to be put before setting the branch addresses!
00083 // T->SetBranchStatus("GeantEvent*",0);
00084 
00085 // Reconstructed event
00086   XANAEsdEvent *event = new XANAEsdEvent();  
00087   T->SetBranchAddress("Event.",&event);
00088   // MC information (generator and GEANT event)
00089   XANAGeneratorEvent *generatorEvent = new XANAGeneratorEvent();
00090   T->SetBranchAddress("GeneratorEvent.",&generatorEvent);
00091     
00092   XANAGeantEvent *geantEvent = new XANAGeantEvent();
00093   T->SetBranchAddress("GeantEvent.",&geantEvent);
00094   
00095 
00096 
00097  
00098   // Histo
00099   // sans contrainte de masse
00100   TH1F *histo1000 = new TH1F("histo1000","M RSgrav gen ee ",180,0.,4.5);
00101   TH1F *histo1001 = new TH1F("histo1001","M RSgrav gen",180,0.,4.5);
00102   TH1F *histo1002 = new TH1F("histo1002","M RSgrav rec",180,0.,4.5);
00103   TH1F *histo1003 = new TH1F("histo1003","Delta M     ",100,-50.,50.);
00104   TH1F *histo1004 = new TH1F("histo1004","CosTheta gen",20,-1.,1.);
00105   TH1F *histo1005 = new TH1F("histo1005","CosTheta rec",20,-1.,1.);
00106   TH1F *histo1006 = new TH1F("histo1006","CosTheta gen",10,-1.,1.);
00107   TH1F *histo1007 = new TH1F("histo1007","CosTheta rec",10,-1.,1.);
00108   TH1F *histo1008 = new TH1F("histo1008","Delta Cos th",100,-0.5,0.5);
00109   TH1F *histo1009 = new TH1F("histo1009","Delta Cos th",100,-0.2,0.2);
00110   
00111   // 0TeV75 
00112   TH1F *histo2000 = new TH1F("histo2000","M RSgrav gen ee ",50, 0.55,0.85);
00113   TH1F *histo2001 = new TH1F("histo2001","M RSgrav gen    ",50, 0.55,0.85);
00114   TH1F *histo2002 = new TH1F("histo2002","M RSgrav rec    ",50, 0.55,0.85);
00115   TH1F *histo2003 = new TH1F("histo2003","M RSgrav gen    ",100, 0.55,0.85);
00116   TH1F *histo2004 = new TH1F("histo2004","M RSgrav rec    ",100, 0.55,0.85);
00117   TH1F *histo2005 = new TH1F("histo2005","M RSgrav gen    ",200,0.55,0.85);
00118   TH1F *histo2006 = new TH1F("histo2006","M RSgrav rec    ",200,0.55,0.85);
00119   TH1F *histo2007 = new TH1F("histo2007","CosTheta gen    ",20,-1.,1.);
00120   TH1F *histo2008 = new TH1F("histo2008","CosTheta rec    ",20,-1.,1.);
00121   TH1F *histo2009 = new TH1F("histo2009","CosTheta gen    ",10,-1.,1.);
00122   TH1F *histo2010 = new TH1F("histo2010","CosTheta rec    ",10,-1.,1.);
00123 
00124   // 1TeV 
00125   TH1F *histo2100 = new TH1F("histo2100","M RSgrav gen ee ",50, 0.8,1.1);
00126   TH1F *histo2101 = new TH1F("histo2101","M RSgrav gen    ",50, 0.8,1.1);
00127   TH1F *histo2102 = new TH1F("histo2102","M RSgrav rec    ",50, 0.8,1.1);
00128   TH1F *histo2103 = new TH1F("histo2103","M RSgrav gen    ",100,0.8,1.1);
00129   TH1F *histo2104 = new TH1F("histo2104","M RSgrav rec    ",100,0.8,1.1);
00130   TH1F *histo2105 = new TH1F("histo2105","M RSgrav gen    ",200,0.8,1.1);
00131   TH1F *histo2106 = new TH1F("histo2106","M RSgrav rec    ",200,0.8,1.1);
00132   TH1F *histo2107 = new TH1F("histo2107","CosTheta gen    ",20,-1.,1.);
00133   TH1F *histo2108 = new TH1F("histo2108","CosTheta rec    ",20,-1.,1.);
00134   TH1F *histo2109 = new TH1F("histo2109","CosTheta gen    ",10,-1.,1.);
00135   TH1F *histo2110 = new TH1F("histo2110","CosTheta rec    ",10,-1.,1.);
00136 
00137   // 1TeV25 
00138   TH1F *histo2200 = new TH1F("histo2200","M RSgrav gen ee ",50, 1.05,1.35);
00139   TH1F *histo2201 = new TH1F("histo2201","M RSgrav gen    ",50, 1.05,1.35);
00140   TH1F *histo2202 = new TH1F("histo2202","M RSgrav rec    ",50, 1.05,1.35);
00141   TH1F *histo2203 = new TH1F("histo2203","M RSgrav gen    ",100,1.05,1.35);
00142   TH1F *histo2204 = new TH1F("histo2204","M RSgrav rec    ",100,1.05,1.35);
00143   TH1F *histo2205 = new TH1F("histo2205","M RSgrav gen    ",200,1.05,1.35);
00144   TH1F *histo2206 = new TH1F("histo2206","M RSgrav rec    ",200,1.05,1.35);
00145   TH1F *histo2207 = new TH1F("histo2207","CosTheta gen    ",20,-1.,1.);
00146   TH1F *histo2208 = new TH1F("histo2208","CosTheta rec    ",20,-1.,1.);
00147   TH1F *histo2209 = new TH1F("histo2209","CosTheta gen    ",10,-1.,1.);
00148   TH1F *histo2210 = new TH1F("histo2210","CosTheta rec    ",10,-1.,1.);
00149 
00150   // 1TeV5 
00151   TH1F *histo2300 = new TH1F("histo2300","M RSgrav gen ee ",50, 1.3,1.6);
00152   TH1F *histo2301 = new TH1F("histo2301","M RSgrav gen    ",50, 1.3,1.6);
00153   TH1F *histo2302 = new TH1F("histo2302","M RSgrav rec    ",50, 1.3,1.6);
00154   TH1F *histo2303 = new TH1F("histo2303","M RSgrav gen    ",100,1.3,1.6);
00155   TH1F *histo2304 = new TH1F("histo2304","M RSgrav rec    ",100,1.3,1.6);
00156   TH1F *histo2305 = new TH1F("histo2305","M RSgrav gen    ",200,1.3,1.6);
00157   TH1F *histo2306 = new TH1F("histo2306","M RSgrav rec    ",200,1.3,1.6);
00158   TH1F *histo2307 = new TH1F("histo2307","CosTheta gen    ",20,-1.,1.);
00159   TH1F *histo2308 = new TH1F("histo2308","CosTheta rec    ",20,-1.,1.);
00160   TH1F *histo2309 = new TH1F("histo2309","CosTheta gen    ",10,-1.,1.);
00161   TH1F *histo2310 = new TH1F("histo2310","CosTheta rec    ",10,-1.,1.);
00162 
00163   // 1TeV75 
00164   TH1F *histo2400 = new TH1F("histo2400","M RSgrav gen ee ",50, 1.55,1.85);
00165   TH1F *histo2401 = new TH1F("histo2401","M RSgrav gen    ",50, 1.55,1.85);
00166   TH1F *histo2402 = new TH1F("histo2402","M RSgrav rec    ",50, 1.55,1.85);
00167   TH1F *histo2403 = new TH1F("histo2403","M RSgrav gen    ",100,1.55,1.85);
00168   TH1F *histo2404 = new TH1F("histo2404","M RSgrav rec    ",100,1.55,1.85);
00169   TH1F *histo2405 = new TH1F("histo2405","M RSgrav gen    ",200,1.55,1.85);
00170   TH1F *histo2406 = new TH1F("histo2406","M RSgrav rec    ",200,1.55,1.85);
00171   TH1F *histo2407 = new TH1F("histo2407","CosTheta gen    ",20,-1.,1.);
00172   TH1F *histo2408 = new TH1F("histo2408","CosTheta rec    ",20,-1.,1.);
00173   TH1F *histo2409 = new TH1F("histo2409","CosTheta gen    ",10,-1.,1.);
00174   TH1F *histo2410 = new TH1F("histo2410","CosTheta rec    ",10,-1.,1.);
00175 
00176   // 2TeV 
00177   TH1F *histo2500 = new TH1F("histo2500","M RSgrav gen ee ",50, 1.8,2.1);
00178   TH1F *histo2501 = new TH1F("histo2501","M RSgrav gen    ",50, 1.8,2.1);
00179   TH1F *histo2502 = new TH1F("histo2502","M RSgrav rec    ",50, 1.8,2.1);
00180   TH1F *histo2503 = new TH1F("histo2503","M RSgrav gen    ",100,1.8,2.1);
00181   TH1F *histo2504 = new TH1F("histo2504","M RSgrav rec    ",100,1.8,2.1);
00182   TH1F *histo2505 = new TH1F("histo2505","M RSgrav gen    ",200,1.8,2.1);
00183   TH1F *histo2506 = new TH1F("histo2506","M RSgrav rec    ",200,1.8,2.1);
00184   TH1F *histo2507 = new TH1F("histo2507","CosTheta gen    ",20,-1.,1.);
00185   TH1F *histo2508 = new TH1F("histo2508","CosTheta rec    ",20,-1.,1.);
00186   TH1F *histo2509 = new TH1F("histo2509","CosTheta gen    ",10,-1.,1.);
00187   TH1F *histo2510 = new TH1F("histo2510","CosTheta rec    ",10,-1.,1.);
00188 
00189   // 2TeV5 
00190   TH1F *histo2600 = new TH1F("histo2600","M RSgrav gen ee ",50, 2.3,2.6);
00191   TH1F *histo2601 = new TH1F("histo2601","M RSgrav gen    ",50, 2.3,2.6);
00192   TH1F *histo2602 = new TH1F("histo2602","M RSgrav rec    ",50, 2.3,2.6);
00193   TH1F *histo2603 = new TH1F("histo2603","M RSgrav gen    ",100,2.3,2.6);
00194   TH1F *histo2604 = new TH1F("histo2604","M RSgrav rec    ",100,2.3,2.6);
00195   TH1F *histo2605 = new TH1F("histo2605","M RSgrav gen    ",200,2.3,2.6);
00196   TH1F *histo2606 = new TH1F("histo2606","M RSgrav rec    ",200,2.3,2.6);
00197   TH1F *histo2607 = new TH1F("histo2607","CosTheta gen    ",20,-1.,1.);
00198   TH1F *histo2608 = new TH1F("histo2608","CosTheta rec    ",20,-1.,1.);
00199   TH1F *histo2609 = new TH1F("histo2609","CosTheta gen    ",10,-1.,1.);
00200   TH1F *histo2610 = new TH1F("histo2610","CosTheta rec    ",10,-1.,1.);
00201 
00202 
00203   //   Start main loop on all events
00204   Int_t nb = 0; 
00205   Int_t nevent = (Int_t)T->GetEntries();
00206 
00207 //  nevent =10;
00208 
00209   
00210   cout <<  "Nombre d entrees a traiter : " << nevent << endl; 
00211   for (Int_t i=0; i<nevent; i++) {
00212     nb += T->GetEntry(i); 
00213 
00214 
00215        // Monte Carlo information
00216    
00217       // generator event
00218     Short_t mc_np = 0, mc_nsp = 0, mc_nssp = 0, mc_npp = 0, mc_nspp = 0 ;
00219     mc_np   = generatorEvent->getNumberOfParticles();
00220     mc_nsp  = generatorEvent->getNumberOfSignalParticles();
00221     mc_nssp = generatorEvent->getNumberOfStableSignalParticles();
00222     mc_npp  = generatorEvent->getNumberOfPileupParticles();
00223     mc_nspp = generatorEvent->getNumberOfStablePileupParticles();
00224     genpart=generatorEvent->getParticles();
00225     int npart=0,iRSgrav=11,ilink1=0,ilink2=0;
00226     for (int gp=0;gp<mc_np;gp++) {
00227          XANAGeneratorParticle *gpart = (XANAGeneratorParticle *)((*genpart)[gp]);
00228          if ((gpart->getPartId()==11 || gpart->getPartId()==-11) &&  gpart->getMo1()==12 )
00229          { 
00230                if (npart==0)
00231                {
00232                     // elec 1
00233                     npart++;
00234                     ilink1=gp;
00235                }
00236                else if (npart==1)
00237                {
00238                     //elec 2
00239                    npart++;
00240                    ilink2=gp;
00241                }
00242                else 
00243                {
00244                    cout << " pas possible d'avoir 3 electrons rattaches au RSgrav " << endl;
00245                }
00246          } 
00247     }
00248     XANAGeneratorParticle *gRSgrav = (XANAGeneratorParticle *)((*genpart)[iRSgrav]);
00249     XANAGeneratorParticle *gElec1 = (XANAGeneratorParticle *)((*genpart)[ilink1]);
00250     XANAGeneratorParticle *gElec2 = (XANAGeneratorParticle *)((*genpart)[ilink2]);
00251 
00252     float trueMassGen=gRSgrav->getMass();
00253     float eeMassGen=RSMassGen(gElec1,gElec2);
00254     float costhetaGen = RSdistribAngGen(gElec1,gElec2);
00255 
00256     histo1000->Fill( eeMassGen/1000.);
00257     histo2000->Fill( eeMassGen/1000.);
00258     histo2100->Fill( eeMassGen/1000.);
00259     histo2200->Fill( eeMassGen/1000.);
00260     histo2300->Fill( eeMassGen/1000.);
00261     histo2400->Fill( eeMassGen/1000.);
00262     histo2500->Fill( eeMassGen/1000.);
00263     histo2600->Fill( eeMassGen/1000.);
00264 
00265     histo1001->Fill( trueMassGen/1000.);
00266 
00267     histo2001->Fill( trueMassGen/1000.);
00268     histo2003->Fill( trueMassGen/1000.);
00269     histo2005->Fill( trueMassGen/1000.);
00270 
00271     histo2101->Fill( trueMassGen/1000.);
00272     histo2103->Fill( trueMassGen/1000.);
00273     histo2105->Fill( trueMassGen/1000.);
00274 
00275     histo2201->Fill( trueMassGen/1000.);
00276     histo2203->Fill( trueMassGen/1000.);
00277     histo2205->Fill( trueMassGen/1000.);
00278 
00279     histo2301->Fill( trueMassGen/1000.);
00280     histo2303->Fill( trueMassGen/1000.);
00281     histo2305->Fill( trueMassGen/1000.);
00282 
00283     histo2401->Fill( trueMassGen/1000.);
00284     histo2403->Fill( trueMassGen/1000.);
00285     histo2405->Fill( trueMassGen/1000.);
00286 
00287     histo2501->Fill( trueMassGen/1000.);
00288     histo2503->Fill( trueMassGen/1000.);
00289     histo2505->Fill( trueMassGen/1000.);
00290 
00291     histo2601->Fill( trueMassGen/1000.);
00292     histo2603->Fill( trueMassGen/1000.);
00293     histo2605->Fill( trueMassGen/1000.);
00294     
00295 
00296     histo1004->Fill( costhetaGen );
00297     histo1006->Fill( costhetaGen );
00298 
00299     // Reconstructed event
00300     
00301     // Definitions
00302     Short_t nc = 0, nh = 0, nhc = 0, npc = 0,  nt = 0, nv = 0, nvt = 0;
00303     Short_t nm = 0, nelt = 0 ;    
00304   
00305 
00306     nc  = event->getNumberOfEmClusters();         clusters = event->getEmClusters(); 
00307     nh  = event->getNumberOfTrackHits();          hits = event->getEmClusterHits();   
00308     nhc = event->getNumberOfHadClusters();        hadClusters = event->getHadClusters();   
00309     ns_supercluster  = event->getNumberOfSuperClusters(); 
00310                                                   superClusters = event->getSuperClusters(); 
00311     npc = event->getNumberOfPreshClusters();      preshClusters = event->getPreshClusters(); 
00312     nt  = event->getNumberOfTracks();             tracks = event->getTracks();
00313     nv  = event->getNumberOfVertices();           vertices = event->getVertices();   
00314     nvt = event->getNumberOfVertexTracks(); 
00315     ne_candidatelectron  = event->getNumberOfElectronCandidates(); 
00316                                                   electrons = event->getElectronCandidates(); 
00317     nm  = event->getNumberOfMuonCandidates();     muons = event->getMuonCandidates(); 
00318     nelt    = event->getNumberOfElectronTracks(); electronTracks = event->getElectronTracks();
00319 
00320 
00321             
00322     
00323     // electrons
00324     Int_t indexel1=-1, indexel2=-1;
00325     
00326     // Selection des 2 candidats electrons les plus energetiques
00327 
00328     RSSelection(indexel1, indexel2);
00329 
00330     // On ne travaille qu'avec les 2 Candidats Electrons les + energetiques
00331     
00332     if (indexel1>-1 && indexel2>-1)
00333     {
00334                XANAElectronCandidate *elec1 = (XANAElectronCandidate*)((*electrons)[indexel1]);
00335                XANAElectronCandidate *elec2 = (XANAElectronCandidate*)((*electrons)[indexel2]);
00336               
00337                float energy1 =elec1->getSuperClusterEnergy()/elec1->getSuperCluster()->getEnergyScaleFactor();
00338                float eta1    =elec1->getSuperCluster()->getPosition().eta();
00339                float phi1    =elec1->getSuperCluster()->getPosition().phi();
00340                
00341                float energy2 =elec2->getSuperClusterEnergy()/elec2->getSuperCluster()->getEnergyScaleFactor();
00342                float eta2    =elec2->getSuperCluster()->getPosition().eta();
00343                float phi2    =elec2->getSuperCluster()->getPosition().phi();
00344               
00345                // Traitement de la saturation
00346                int iflag_satur=0;
00347                RSSaturation(elec1, energy1, iflag_satur);
00348                RSSaturation(elec2, energy2, iflag_satur);              
00349                
00350                // Association des photons
00351                float EtIsol1=0.;
00352                float EtIsol2=0.;
00353                RSAssocPhoton(elec1, energy1, EtIsol1);
00354                RSAssocPhoton(elec2, energy2, EtIsol2);
00355                
00356                // Correction de l'energie pour eta
00357                
00358                bool FAMOS=true;
00359                float xcor1=RSCorrectionFunc(energy1,  eta1,  FAMOS);
00360                float xcor2=RSCorrectionFunc(energy2,  eta2,  FAMOS);
00361                xcor1=1./xcor1;
00362                xcor2=1./xcor2;
00363                energy1*=xcor1;
00364                energy2*=xcor2;
00365                
00366                // Candidat RSElec
00367                
00368                RSElec *cElec1 = new RSElec(elec1,energy1,eta1,phi1,EtIsol1);
00369                RSElec *cElec2 = new RSElec(elec2,energy2,eta2,phi2,EtIsol2);
00370 
00371                 // Masse Reconstruite
00372                 float eeMassRec=RSMassRec(cElec1,cElec2);
00373                 
00374                 // Cut en iso (H/E pas encore dispo dans FAMOS 1_2_0)
00375                 if ( cElec1->getElecIsol()< 0.02* cElec1->getElecEt() &&
00376                      cElec2->getElecIsol()< 0.02* cElec2->getElecEt() )
00377                     {
00378                         float costhetaRec = RSdistribAngRec(cElec1,cElec2);
00379 
00380                         histo1002->Fill( eeMassRec /1000. );
00381                         histo1003->Fill( trueMassGen-eeMassRec);
00382                         
00383                         histo1005->Fill(costhetaRec);
00384                         histo1007->Fill(costhetaRec);
00385                         histo1008->Fill( costhetaGen-costhetaRec);
00386                         histo1009->Fill( costhetaGen-costhetaRec);
00387 
00388                         histo2002->Fill( eeMassRec /1000. );
00389                         histo2004->Fill( eeMassRec /1000. );
00390                         histo2006->Fill( eeMassRec /1000. );
00391                         
00392                         histo2102->Fill( eeMassRec /1000. );
00393                         histo2104->Fill( eeMassRec /1000. );
00394                         histo2106->Fill( eeMassRec /1000. );
00395                         
00396                         histo2202->Fill( eeMassRec /1000. );
00397                         histo2204->Fill( eeMassRec /1000. );
00398                         histo2206->Fill( eeMassRec /1000. );
00399                         
00400                         histo2302->Fill( eeMassRec /1000. );
00401                         histo2304->Fill( eeMassRec /1000. );
00402                         histo2306->Fill( eeMassRec /1000. );
00403                         
00404                         histo2402->Fill( eeMassRec /1000. );
00405                         histo2404->Fill( eeMassRec /1000. );
00406                         histo2406->Fill( eeMassRec /1000. );
00407                         
00408                         histo2502->Fill( eeMassRec /1000. );
00409                         histo2504->Fill( eeMassRec /1000. );
00410                         histo2506->Fill( eeMassRec /1000. );
00411                         
00412                         histo2602->Fill( eeMassRec /1000. );
00413                         histo2604->Fill( eeMassRec /1000. );
00414                         histo2606->Fill( eeMassRec /1000. );
00415                         
00416                         if (725<eeMassRec && eeMassRec<775)
00417                         {
00418                           histo2007->Fill( costhetaGen );
00419                           histo2008->Fill( costhetaRec );
00420                           histo2009->Fill( costhetaGen );
00421                           histo2010->Fill( costhetaRec );
00422                         }
00423                         else if (975<eeMassRec && eeMassRec<1025)
00424                         {
00425                           histo2107->Fill( costhetaGen );
00426                           histo2108->Fill( costhetaRec );
00427                           histo2109->Fill( costhetaGen );
00428                           histo2110->Fill( costhetaRec );
00429                         }
00430                         else if (1225<eeMassRec && eeMassRec<1275)
00431                         {
00432                           histo2207->Fill( costhetaGen );
00433                           histo2208->Fill( costhetaRec );
00434                           histo2209->Fill( costhetaGen );
00435                           histo2210->Fill( costhetaRec );
00436                         }
00437                         else if (1475<eeMassRec && eeMassRec<1525)
00438                         {
00439                           histo2307->Fill( costhetaGen );
00440                           histo2308->Fill( costhetaRec );
00441                           histo2309->Fill( costhetaGen );
00442                           histo2310->Fill( costhetaRec );
00443                         }
00444                         else if (1725<eeMassRec && eeMassRec<1775)
00445                         {
00446                           histo2407->Fill( costhetaGen );
00447                           histo2408->Fill( costhetaRec );
00448                           histo2409->Fill( costhetaGen );
00449                           histo2410->Fill( costhetaRec );
00450                         }
00451                         else if (1975<eeMassRec && eeMassRec<2025)
00452                         {
00453                           histo2507->Fill( costhetaGen );
00454                           histo2508->Fill( costhetaRec );
00455                           histo2509->Fill( costhetaGen );
00456                           histo2510->Fill( costhetaRec );
00457                         }
00458                         else if (2475<eeMassRec && eeMassRec<2525)
00459                         {
00460                           histo2607->Fill( costhetaGen );
00461                           histo2608->Fill( costhetaRec );
00462                           histo2609->Fill( costhetaGen );
00463                           histo2610->Fill( costhetaRec );
00464                         }
00465 
00466 
00467 
00468                     }
00469 
00470 
00471 
00472     }
00473 
00474 
00475     event->clear(); 
00476     generatorEvent->clear();
00477     geantEvent->clear();
00478   }
00479   
00480 //  f.Close();
00481   //
00482      TFile *filehisto = new TFile("Mass_0.root","RECREATE");
00483 
00484      histo1000->Write();
00485      histo1001->Write();
00486      histo1002->Write();
00487      histo1003->Write();
00488      histo1004->Write();
00489      histo1005->Write();
00490      histo1006->Write();
00491      histo1007->Write();
00492      histo1008->Write();
00493      histo1009->Write();
00494 
00495 
00496      histo2000->Write();
00497      histo2001->Write();
00498      histo2002->Write();
00499      histo2003->Write();
00500      histo2004->Write();
00501      histo2005->Write();
00502      histo2006->Write();
00503      histo2007->Write();
00504      histo2008->Write();
00505      histo2009->Write();
00506      histo2010->Write();
00507 
00508      histo2100->Write();
00509      histo2101->Write();
00510      histo2102->Write();
00511      histo2103->Write();
00512      histo2104->Write();
00513      histo2105->Write();
00514      histo2106->Write();
00515      histo2107->Write();
00516      histo2108->Write();
00517      histo2109->Write();
00518      histo2110->Write();
00519 
00520      histo2200->Write();
00521      histo2201->Write();
00522      histo2202->Write();
00523      histo2203->Write();
00524      histo2204->Write();
00525      histo2205->Write();
00526      histo2206->Write();
00527      histo2207->Write();
00528      histo2208->Write();
00529      histo2209->Write();
00530      histo2210->Write();
00531 
00532      histo2300->Write();
00533      histo2301->Write();
00534      histo2302->Write();
00535      histo2303->Write();
00536      histo2304->Write();
00537      histo2305->Write();
00538      histo2306->Write();
00539      histo2307->Write();
00540      histo2308->Write();
00541      histo2309->Write();
00542      histo2310->Write();
00543 
00544      histo2400->Write();
00545      histo2401->Write();
00546      histo2402->Write();
00547      histo2403->Write();
00548      histo2404->Write();
00549      histo2405->Write();
00550      histo2406->Write();
00551      histo2407->Write();
00552      histo2408->Write();
00553      histo2409->Write();
00554      histo2410->Write();
00555 
00556      histo2500->Write();
00557      histo2501->Write();
00558      histo2502->Write();
00559      histo2503->Write();
00560      histo2504->Write();
00561      histo2505->Write();
00562      histo2506->Write();
00563      histo2507->Write();
00564      histo2508->Write();
00565      histo2509->Write();
00566      histo2510->Write();
00567 
00568      histo2600->Write();
00569      histo2601->Write();
00570      histo2602->Write();
00571      histo2603->Write();
00572      histo2604->Write();
00573      histo2605->Write();
00574      histo2606->Write();
00575      histo2607->Write();
00576      histo2608->Write();
00577      histo2609->Write();
00578      histo2610->Write();
00579 
00580      
00581      filehisto->Close();
00582 
00583   
00584 }
00585 
00586 
00587 

Generated on Thu Oct 27 21:59:45 2005 for XANADOO by doxygen 1.3.5