Report problems to ATLAS LXR Team (with time and IP address indicated)

The LXR Cross Referencer

source navigation ]
diff markup ]
identifier search ]
general search ]
 
 
Architecture: linux ]
Version: head ] [ nightly ] [ GaudiDev ]
  Links to LXR source navigation pages for stable releases [ 12.*.* ]   [ 13.*.* ]   [ 14.*.* ]   [ 15.*.* ] 

001 /////////////////////////////////////////////////////////////////////////////////////////////////////
002 /// Name    : JetFitterLikelihood.h
003 /// Package : BTagTools 
004 /// Author  : Giacinto Piacquadio, Christian Weiser (University of Freiburg)
005 /// Created : March 2007
006 ///
007 /// DESCRIPTION:
008 ///
009 /// This class computes the likelihood value for being b-jet, c-jet or uds-jet for 
010 /// a single event. The RooFit toolkit for data modeling is used here.
011 ///
012 ///////////////////////////////////////////////////////////////////////////////////////////////////////
013 #include "GaudiKernel/ITHistSvc.h"
014 
015 #include <TMath.h>
016 #include <TH1.h>
017 
018 #include <RooCategory.h>
019 #include <RooMappedCategory.h>
020 #include <RooRealVar.h>
021 #include <RooThresholdCategory.h>
022 #include <RooFormulaVar.h>
023 #include <RooArgList.h>
024 #include <RooProdPdf.h>
025 #include <RooAddPdf.h>
026 #include <RooSuperCategory.h>
027 #include <RooMappedCategory.h>
028 #include <RooSimultaneous.h>
029 #include <RooArgSet.h>
030 #include <RooParametricStepFunction.h>
031 #include <RooDataHist.h>
032 #include <RooHistPdf.h>
033 #include <RooAbsCollection.h>
034 
035 
036 #include "JetTagTools/JetFitterLikelihood.h"
037 
038 #include "JetTagInfo/JetFitterTagInfo.h"
039 
040 #include "JetTagCalibration/CalibrationBroker.h"
041 
042 namespace Analysis {
043 
044 
045 JetFitterLikelihood::JetFitterLikelihood(const std::string& name,
046                                                const std::string& n, const IInterface* p):
047         AthAlgTool(name, n,p),
048         m_calibrationTool("BTagCalibrationBroker"),
049         m_calibrationDirectory("JetFitter"),
050         m_calibrationSubDirectory("RooFitLikelihood")
051  {
052    //this will stay for the moment
053   declareProperty("JetFitterCofficientFileNames",m_textFileNames);
054   declareProperty("JetFitterCoefficientFileKeys",m_keyToTextFileNames);
055 
056   //histo files... now from calibrationBroker
057   declareProperty("CalibrationDirectory",m_calibrationDirectory);
058   declareProperty("CalibrationSubDirectory",m_calibrationSubDirectory);
059   declareProperty("calibrationTool",    m_calibrationTool);
060   declareInterface<JetFitterLikelihood>(this);
061 } 
062 
063 /////////////////////////////////////////////////////////////////////////////////////
064 /// Destructor - check up memory allocation
065 /// delete any memory allocation on the heap
066 
067 JetFitterLikelihood::~JetFitterLikelihood() {
068 
069 /*
070   std::map<std::string,RooSimultaneous*>::iterator begin=m_likelihoods.begin();
071   std::map<std::string,RooSimultaneous*>::iterator end=m_likelihoods.end();
072   
073   for(  std::map<std::string,RooSimultaneous*>::iterator iter=begin;iter!=end;++iter) {
074     if ((*iter).second!=0) {
075       delete (*iter).second;
076       (*iter).second=0;
077     }
078   }
079 
080 */
081 
082 }
083 
084 StatusCode JetFitterLikelihood::initialize() {
085 
086   //  std::cout << " Size of coefficients: " << m_textFileNames.size() << " and " << 
087   //    m_keyToTextFileNames.size() << std::endl;
088 
089   StatusCode sc = m_calibrationTool.retrieve();
090   if (sc.isFailure())
091   {
092     ATH_MSG_FATAL(" Could not retrieve " << m_calibrationTool  << ". Aborting...");
093     return sc;
094   } else ATH_MSG_INFO(" Retrieved: " << m_calibrationTool);
095 
096   m_myRooVariables=new RooArgSet("JetFitterRooArgSet");
097 
098   RooCategory *cat_nVTX=new RooCategory("cat_nVTX","number of vertices category");
099   cat_nVTX->defineType("NoVTX",0);
100   cat_nVTX->defineType("1VTX",1);
101   cat_nVTX->defineType("2VTX",2);
102   cat_nVTX->defineType("3VTX",3);
103   cat_nVTX->defineType("4VTX",4);
104   cat_nVTX->defineType("5VTX",5);//I hope not to need more!!!
105   cat_nVTX->defineType("6VTX",6);//I hope not to need more!!!
106   cat_nVTX->defineType("7VTX",7);//I hope not to need more!!!
107   cat_nVTX->defineType("8VTX",8);//I hope not to need more!!!
108   cat_nVTX->defineType("9VTX",9);//I hope not to need more!!!
109   cat_nVTX->defineType("10VTX",10);//I hope not to need more!!!
110   m_myRooVariables->addOwned(*cat_nVTX);
111   
112   
113   RooCategory* cat_nTracksAtVtx=new RooCategory("cat_nTracksAtVtx","number of tracks at Vertices");
114   cat_nTracksAtVtx->defineType("NoTrackVTX",0);
115   cat_nTracksAtVtx->defineType("2TrackVTX",2);
116   cat_nTracksAtVtx->defineType("3TrackVTX",3);
117   cat_nTracksAtVtx->defineType("4TrackVTX",4);
118   cat_nTracksAtVtx->defineType("5TrackVTX",5);
119   cat_nTracksAtVtx->defineType("6TrackVTX",6);
120   cat_nTracksAtVtx->defineType("7TrackVTX",7);
121   cat_nTracksAtVtx->defineType("8TrackVTX",8);
122   cat_nTracksAtVtx->defineType("9TrackVTX",9);
123   cat_nTracksAtVtx->defineType("10TrackVTX",10);
124   cat_nTracksAtVtx->defineType("11TrackVTX",11);
125   cat_nTracksAtVtx->defineType("12TrackVTX",12);
126   cat_nTracksAtVtx->defineType("13TrackVTX",13);
127   cat_nTracksAtVtx->defineType("14TrackVTX",14);
128   cat_nTracksAtVtx->defineType("15TrackVTX",15);
129   cat_nTracksAtVtx->defineType("16TrackVTX",16);
130   cat_nTracksAtVtx->defineType("17TrackVTX",17);
131   cat_nTracksAtVtx->defineType("18TrackVTX",18);
132   cat_nTracksAtVtx->defineType("19TrackVTX",19);
133   cat_nTracksAtVtx->defineType("20TrackVTX",20);
134   cat_nTracksAtVtx->defineType("21TrackVTX",21);
135   cat_nTracksAtVtx->defineType("22TrackVTX",22);
136   cat_nTracksAtVtx->defineType("23TrackVTX",23);
137   cat_nTracksAtVtx->defineType("24TrackVTX",24);
138   cat_nTracksAtVtx->defineType("25TrackVTX",25);
139   cat_nTracksAtVtx->defineType("26TrackVTX",26);
140   cat_nTracksAtVtx->defineType("27TrackVTX",27);
141   cat_nTracksAtVtx->defineType("28TrackVTX",28);
142   cat_nTracksAtVtx->defineType("29TrackVTX",29);
143   cat_nTracksAtVtx->defineType("30TrackVTX",30);
144   cat_nTracksAtVtx->defineType("31TrackVTX",31);
145   cat_nTracksAtVtx->defineType("32TrackVTX",32);
146   cat_nTracksAtVtx->defineType("33TrackVTX",33);
147   cat_nTracksAtVtx->defineType("34TrackVTX",34);
148   cat_nTracksAtVtx->defineType("35TrackVTX",35);
149   cat_nTracksAtVtx->defineType("36TrackVTX",36);
150   cat_nTracksAtVtx->defineType("37TrackVTX",37);
151   cat_nTracksAtVtx->defineType("38TrackVTX",38);
152   cat_nTracksAtVtx->defineType("39TrackVTX",39);
153   cat_nTracksAtVtx->defineType("40TrackVTX",40);
154   cat_nTracksAtVtx->defineType("41TrackVTX",41);
155   cat_nTracksAtVtx->defineType("42TrackVTX",42);
156   cat_nTracksAtVtx->defineType("43TrackVTX",43);
157   cat_nTracksAtVtx->defineType("44TrackVTX",44);
158   cat_nTracksAtVtx->defineType("45TrackVTX",45);
159   cat_nTracksAtVtx->defineType("46TrackVTX",46);
160   cat_nTracksAtVtx->defineType("47TrackVTX",47);
161   cat_nTracksAtVtx->defineType("48TrackVTX",48);
162   cat_nTracksAtVtx->defineType("49TrackVTX",49);
163   cat_nTracksAtVtx->defineType("50TrackVTX",50);
164 
165 
166   m_myRooVariables->addOwned(*cat_nTracksAtVtx);
167 
168   RooCategory* cat_nSingleTracks=new RooCategory("cat_nSingleTracks","number of single significant tracks");
169   cat_nSingleTracks->defineType("NoSingleTrack",0);
170   cat_nSingleTracks->defineType("1SingleTrack",1);
171   cat_nSingleTracks->defineType("2SingleTrack",2);
172   cat_nSingleTracks->defineType("3SingleTrack",3);
173   cat_nSingleTracks->defineType("4SingleTrack",4);
174   cat_nSingleTracks->defineType("5SingleTrack",5);
175   cat_nSingleTracks->defineType("6SingleTrack",6);
176   cat_nSingleTracks->defineType("7SingleTrack",7);
177   cat_nSingleTracks->defineType("8SingleTrack",8);
178   cat_nSingleTracks->defineType("9SingleTrack",9);
179   cat_nSingleTracks->defineType("10SingleTrack",10);
180   cat_nSingleTracks->defineType("11SingleTrack",11);
181   cat_nSingleTracks->defineType("12SingleTrack",12);
182   cat_nSingleTracks->defineType("13SingleTrack",13);
183   cat_nSingleTracks->defineType("14SingleTrack",14);
184   cat_nSingleTracks->defineType("15SingleTrack",15);
185   m_myRooVariables->addOwned(*cat_nSingleTracks);  
186 
187   RooMappedCategory* mycat_nVTX_nolvalue=new RooMappedCategory("mycat_nVTX_nolvalue","number of vertices categories",*cat_nVTX);//,"Undefined");
188   mycat_nVTX_nolvalue->map("NoVTX","NoVTX");
189   mycat_nVTX_nolvalue->map("1VTX","1VTX");
190   mycat_nVTX_nolvalue->map("2VTX","2orMoreVTX");
191   mycat_nVTX_nolvalue->map("3VTX","2orMoreVTX");
192   mycat_nVTX_nolvalue->map("4VTX","2orMoreVTX");
193   mycat_nVTX_nolvalue->map("5VTX","2orMoreVTX");
194   mycat_nVTX_nolvalue->map("6VTX","2orMoreVTX");
195   mycat_nVTX_nolvalue->map("7VTX","2orMoreVTX");
196   mycat_nVTX_nolvalue->map("8VTX","2orMoreVTX");
197   mycat_nVTX_nolvalue->map("9VTX","2orMoreVTX");
198   mycat_nVTX_nolvalue->map("10VTX","2orMoreVTX");
199   m_myRooVariables->addOwned(*mycat_nVTX_nolvalue);
200 
201   RooCategory* mycat_nVTX=static_cast<RooCategory*>(mycat_nVTX_nolvalue->createFundamental("mycat_nVTX"));
202   m_myRooVariables->addOwned(*mycat_nVTX);
203   //  m_fictiousToRealCategory[mycat_nVTX_nolvalue]=mycat_nVTX;
204 
205   RooMappedCategory* mycat_nTracksAtVtx6Bin_nolvalue=
206     new RooMappedCategory("mycat_nTracksAtVtx6Bin_nolvalue","number of tracks at vertices category",*cat_nTracksAtVtx);//,"Undefined");
207   mycat_nTracksAtVtx6Bin_nolvalue->map("NoTrackVTX","NoTrackVTX");
208   mycat_nTracksAtVtx6Bin_nolvalue->map("2TrackVTX","2TrackVTX");
209   mycat_nTracksAtVtx6Bin_nolvalue->map("3TrackVTX","3TrackVTX");
210   mycat_nTracksAtVtx6Bin_nolvalue->map("4TrackVTX","4TrackVTX");
211   mycat_nTracksAtVtx6Bin_nolvalue->map("5TrackVTX","5or6TrackVTX");
212   mycat_nTracksAtVtx6Bin_nolvalue->map("6TrackVTX","5or6TrackVTX");
213   mycat_nTracksAtVtx6Bin_nolvalue->map("7TrackVTX","7orMoreTrackVTX");
214   mycat_nTracksAtVtx6Bin_nolvalue->map("8TrackVTX","7orMoreTrackVTX");
215   mycat_nTracksAtVtx6Bin_nolvalue->map("9TrackVTX","7orMoreTrackVTX");
216   mycat_nTracksAtVtx6Bin_nolvalue->map("10TrackVTX","7orMoreTrackVTX");
217   mycat_nTracksAtVtx6Bin_nolvalue->map("11TrackVTX","7orMoreTrackVTX");
218   mycat_nTracksAtVtx6Bin_nolvalue->map("12TrackVTX","7orMoreTrackVTX");
219   mycat_nTracksAtVtx6Bin_nolvalue->map("13TrackVTX","7orMoreTrackVTX");
220   mycat_nTracksAtVtx6Bin_nolvalue->map("14TrackVTX","7orMoreTrackVTX");
221   mycat_nTracksAtVtx6Bin_nolvalue->map("15TrackVTX","7orMoreTrackVTX");
222   mycat_nTracksAtVtx6Bin_nolvalue->map("16TrackVTX","7orMoreTrackVTX");
223   mycat_nTracksAtVtx6Bin_nolvalue->map("17TrackVTX","7orMoreTrackVTX");
224   mycat_nTracksAtVtx6Bin_nolvalue->map("18TrackVTX","7orMoreTrackVTX");
225   mycat_nTracksAtVtx6Bin_nolvalue->map("19TrackVTX","7orMoreTrackVTX");
226   mycat_nTracksAtVtx6Bin_nolvalue->map("20TrackVTX","7orMoreTrackVTX");
227   mycat_nTracksAtVtx6Bin_nolvalue->map("21TrackVTX","7orMoreTrackVTX");
228   mycat_nTracksAtVtx6Bin_nolvalue->map("22TrackVTX","7orMoreTrackVTX");
229   mycat_nTracksAtVtx6Bin_nolvalue->map("23TrackVTX","7orMoreTrackVTX");
230   mycat_nTracksAtVtx6Bin_nolvalue->map("24TrackVTX","7orMoreTrackVTX");
231   mycat_nTracksAtVtx6Bin_nolvalue->map("25TrackVTX","7orMoreTrackVTX");
232   mycat_nTracksAtVtx6Bin_nolvalue->map("26TrackVTX","7orMoreTrackVTX");
233   mycat_nTracksAtVtx6Bin_nolvalue->map("27TrackVTX","7orMoreTrackVTX");
234   mycat_nTracksAtVtx6Bin_nolvalue->map("28TrackVTX","7orMoreTrackVTX");
235   mycat_nTracksAtVtx6Bin_nolvalue->map("29TrackVTX","7orMoreTrackVTX");
236   mycat_nTracksAtVtx6Bin_nolvalue->map("30TrackVTX","7orMoreTrackVTX");
237   mycat_nTracksAtVtx6Bin_nolvalue->map("31TrackVTX","7orMoreTrackVTX");
238   mycat_nTracksAtVtx6Bin_nolvalue->map("32TrackVTX","7orMoreTrackVTX");
239   mycat_nTracksAtVtx6Bin_nolvalue->map("33TrackVTX","7orMoreTrackVTX");
240   mycat_nTracksAtVtx6Bin_nolvalue->map("34TrackVTX","7orMoreTrackVTX");
241   mycat_nTracksAtVtx6Bin_nolvalue->map("35TrackVTX","7orMoreTrackVTX");
242   mycat_nTracksAtVtx6Bin_nolvalue->map("36TrackVTX","7orMoreTrackVTX");
243   mycat_nTracksAtVtx6Bin_nolvalue->map("37TrackVTX","7orMoreTrackVTX");
244   mycat_nTracksAtVtx6Bin_nolvalue->map("38TrackVTX","7orMoreTrackVTX");
245   mycat_nTracksAtVtx6Bin_nolvalue->map("39TrackVTX","7orMoreTrackVTX");
246   mycat_nTracksAtVtx6Bin_nolvalue->map("40TrackVTX","7orMoreTrackVTX");
247   mycat_nTracksAtVtx6Bin_nolvalue->map("41TrackVTX","7orMoreTrackVTX");
248   mycat_nTracksAtVtx6Bin_nolvalue->map("42TrackVTX","7orMoreTrackVTX");
249   mycat_nTracksAtVtx6Bin_nolvalue->map("43TrackVTX","7orMoreTrackVTX");
250   mycat_nTracksAtVtx6Bin_nolvalue->map("44TrackVTX","7orMoreTrackVTX");
251   mycat_nTracksAtVtx6Bin_nolvalue->map("45TrackVTX","7orMoreTrackVTX");
252   mycat_nTracksAtVtx6Bin_nolvalue->map("46TrackVTX","7orMoreTrackVTX");
253   mycat_nTracksAtVtx6Bin_nolvalue->map("47TrackVTX","7orMoreTrackVTX");
254   mycat_nTracksAtVtx6Bin_nolvalue->map("48TrackVTX","7orMoreTrackVTX");
255   mycat_nTracksAtVtx6Bin_nolvalue->map("49TrackVTX","7orMoreTrackVTX");
256   mycat_nTracksAtVtx6Bin_nolvalue->map("50TrackVTX","7orMoreTrackVTX");
257   m_myRooVariables->addOwned(*mycat_nTracksAtVtx6Bin_nolvalue);
258   
259   RooCategory* mycat_nTracksAtVtx6Bin=static_cast<RooCategory*>(mycat_nTracksAtVtx6Bin_nolvalue->createFundamental("mycat_nTracksAtVtx6Bin"));
260   m_myRooVariables->addOwned(*mycat_nTracksAtVtx6Bin);
261   //  m_fictiousToRealCategory[mycat_nTracksAtVtx6Bin_nolvalue]=mycat_nTracksAtVtx6Bin;
262   
263   RooMappedCategory* mycat_nSingleTracks_nolvalue=
264     new RooMappedCategory("mycat_nSingleTracks_nolvalue","number of single significant tracks category",*cat_nSingleTracks);//,"Undefined");
265   mycat_nSingleTracks_nolvalue->map("NoSingleTrack","NoSingleTrack");
266   mycat_nSingleTracks_nolvalue->map("1SingleTrack","1SingleTrack");
267   mycat_nSingleTracks_nolvalue->map("2SingleTrack","2SingleTrack");
268   mycat_nSingleTracks_nolvalue->map("3SingleTrack","3orMoreSingleTrack");
269   mycat_nSingleTracks_nolvalue->map("4SingleTrack","3orMoreSingleTrack");
270   mycat_nSingleTracks_nolvalue->map("5SingleTrack","3orMoreSingleTrack");
271   mycat_nSingleTracks_nolvalue->map("6SingleTrack","3orMoreSingleTrack");
272   mycat_nSingleTracks_nolvalue->map("7SingleTrack","3orMoreSingleTrack");
273   mycat_nSingleTracks_nolvalue->map("8SingleTrack","3orMoreSingleTrack");
274   mycat_nSingleTracks_nolvalue->map("9SingleTrack","3orMoreSingleTrack");
275   mycat_nSingleTracks_nolvalue->map("10SingleTrack","3orMoreSingleTrack");
276   mycat_nSingleTracks_nolvalue->map("11SingleTrack","3orMoreSingleTrack");
277   mycat_nSingleTracks_nolvalue->map("12SingleTrack","3orMoreSingleTrack");
278   mycat_nSingleTracks_nolvalue->map("13SingleTrack","3orMoreSingleTrack");
279   mycat_nSingleTracks_nolvalue->map("14SingleTrack","3orMoreSingleTrack");
280   mycat_nSingleTracks_nolvalue->map("15SingleTrack","3orMoreSingleTrack");
281   m_myRooVariables->addOwned(*mycat_nSingleTracks_nolvalue);
282 
283   RooCategory* mycat_nSingleTracks=static_cast<RooCategory*>(mycat_nSingleTracks_nolvalue->createFundamental("mycat_nSingleTracks"));
284   m_myRooVariables->addOwned(*mycat_nSingleTracks);
285   //  m_fictiousToRealCategory[mycat_nSingleTracks_nolvalue]=mycat_nSingleTracks;
286   
287   RooRealVar *energyFraction=new RooRealVar("energyFraction","energyFraction",0.5,0.,1.00001);
288   RooRealVar *significance3d=new RooRealVar("significance3d","significance3d",5.,0.,100.);
289   RooRealVar *mass=new RooRealVar("mass","mass",2000.,0.,10000.);
290   m_myRooVariables->addOwned(*energyFraction);
291   m_myRooVariables->addOwned(*significance3d);
292   m_myRooVariables->addOwned(*mass);
293 
294  
295   RooThresholdCategory* energyFractionCat_nolvalue=new RooThresholdCategory("energyFractionCat_nolvalue","energyFractionCat",
296                                                                             *energyFraction,"NoFrag");
297 
298   energyFractionCat_nolvalue->addThreshold(0.999,"Normal");    
299   m_myRooVariables->addOwned(*energyFractionCat_nolvalue);
300 
301   RooCategory* energyFractionCat=static_cast<RooCategory*>(energyFractionCat_nolvalue->createFundamental("energyFractionCat"));
302   m_myRooVariables->addOwned(*energyFractionCat);
303   //  m_fictiousToRealCategory[energyFractionCat_nolvalue]=energyFractionCat;
304     
305   RooSuperCategory* allCategoriesCombined=new RooSuperCategory("allCategoriesCombined",
306                                                                "allCategoriesCombined",
307                                                                RooArgList(*mycat_nVTX,
308                                                                           *mycat_nSingleTracks,
309                                                                           *mycat_nTracksAtVtx6Bin,
310                                                                           *energyFractionCat));
311   
312   //  allCategoriesCombined->Print("v");
313   m_myRooVariables->addOwned(*allCategoriesCombined);
314 
315   RooMappedCategory* allCategoriesCombined_reduced_nolvalue=new RooMappedCategory("allCategoriesCombined_reduced_nolvalue",
316                                                                                   "allCategoriesCombined_reduced",
317                                                                                   *allCategoriesCombined,
318                                                                                   "Undefined");
319   
320   allCategoriesCombined_reduced_nolvalue->map("{NoVTX;NoSingleTrack;NoTrackVTX;NoFrag}","{NoVTX;NoSingleTrack}");
321   allCategoriesCombined_reduced_nolvalue->map("{NoVTX;NoSingleTrack;NoTrackVTX;Normal}","{NoVTX;NoSingleTrack}");
322   
323   allCategoriesCombined_reduced_nolvalue->map("{NoVTX;1SingleTrack;NoTrackVTX;Normal}","{NoVTX;1SingleTrack;Normal}");
324   allCategoriesCombined_reduced_nolvalue->map("{NoVTX;2SingleTrack;NoTrackVTX;Normal}","{NoVTX;2SingleTrack;Normal}");
325   allCategoriesCombined_reduced_nolvalue->map("{NoVTX;3orMoreSingleTrack;NoTrackVTX;Normal}","{NoVTX;3orMoreSingleTrack;Normal}");
326   
327   allCategoriesCombined_reduced_nolvalue->map("{1VTX;NoSingleTrack;2TrackVTX;Normal}","{1VTX;NoSingleTrack;2TrackVTX;Normal}");
328   allCategoriesCombined_reduced_nolvalue->map("{1VTX;1SingleTrack;2TrackVTX;Normal}","{1VTX;1SingleTrack;2TrackVTX;Normal}");
329   allCategoriesCombined_reduced_nolvalue->map("{1VTX;2SingleTrack;2TrackVTX;Normal}","{1VTX;2orMoreSingleTrack;2TrackVTX;Normal}");
330   allCategoriesCombined_reduced_nolvalue->map("{1VTX;3orMoreSingleTrack;2TrackVTX;Normal}","{1VTX;2orMoreSingleTrack;2TrackVTX;Normal}");
331   allCategoriesCombined_reduced_nolvalue->map("{1VTX;NotMapped;3TrackVTX;Normal}","{1VTX;NotMapped;3TrackVTX;Normal}");
332   allCategoriesCombined_reduced_nolvalue->map("{1VTX;NoSingleTrack;3TrackVTX;Normal}","{1VTX;NoSingleTrack;3TrackVTX;Normal}");
333   allCategoriesCombined_reduced_nolvalue->map("{1VTX;1SingleTrack;3TrackVTX;Normal}","{1VTX;1SingleTrack;3TrackVTX;Normal}");
334   allCategoriesCombined_reduced_nolvalue->map("{1VTX;2SingleTrack;3TrackVTX;Normal}","{1VTX;2orMoreSingleTrack;3TrackVTX;Normal}");
335   allCategoriesCombined_reduced_nolvalue->map("{1VTX;3orMoreSingleTrack;3TrackVTX;Normal}","{1VTX;2orMoreSingleTrack;3TrackVTX;Normal}");
336   allCategoriesCombined_reduced_nolvalue->map("{1VTX;NoSingleTrack;4TrackVTX;Normal}","{1VTX;NoSingleTrack;4TrackVTX;Normal}");
337   allCategoriesCombined_reduced_nolvalue->map("{1VTX;1SingleTrack;4TrackVTX;Normal}","{1VTX;1SingleTrack;4TrackVTX;Normal}");
338   allCategoriesCombined_reduced_nolvalue->map("{1VTX;2SingleTrack;4TrackVTX;Normal}","{1VTX;2orMoreSingleTrack;4TrackVTX;Normal}");
339   allCategoriesCombined_reduced_nolvalue->map("{1VTX;3orMoreSingleTrack;4TrackVTX;Normal}","{1VTX;2orMoreSingleTrack;4TrackVTX;Normal}");
340   allCategoriesCombined_reduced_nolvalue->map("{1VTX;NoSingleTrack;5or6TrackVTX;Normal}","{1VTX;NoSingleTrack;5or6TrackVTX;Normal}");
341   allCategoriesCombined_reduced_nolvalue->map("{1VTX;1SingleTrack;5or6TrackVTX;Normal}","{1VTX;1SingleTrack;5or6TrackVTX;Normal}");
342   allCategoriesCombined_reduced_nolvalue->map("{1VTX;2SingleTrack;5or6TrackVTX;Normal}","{1VTX;2orMoreSingleTrack;5or6TrackVTX;Normal}");
343   allCategoriesCombined_reduced_nolvalue->map("{1VTX;3orMoreSingleTrack;5or6TrackVTX;Normal}","{1VTX;2orMoreSingleTrack;5or6TrackVTX;Normal}");
344   allCategoriesCombined_reduced_nolvalue->map("{1VTX;NoSingleTrack;7orMoreTrackVTX;Normal}","{1VTX;NoSingleTrack;7orMoreTrackVTX;Normal}");
345   allCategoriesCombined_reduced_nolvalue->map("{1VTX;1SingleTrack;7orMoreTrackVTX;Normal}","{1VTX;1SingleTrack;7orMoreTrackVTX;Normal}");
346   allCategoriesCombined_reduced_nolvalue->map("{1VTX;2SingleTrack;7orMoreTrackVTX;Normal}","{1VTX;2orMoreSingleTrack;7orMoreTrackVTX;Normal}");
347   allCategoriesCombined_reduced_nolvalue->map("{1VTX;3orMoreSingleTrack;7orMoreTrackVTX;Normal}","{1VTX;2orMoreSingleTrack;7orMoreTrackVTX;Normal}");
348   
349   allCategoriesCombined_reduced_nolvalue->map("{2orMoreVTX;NoSingleTrack;4TrackVTX;Normal}","{2orMoreVTX;4TrackVTX;Normal}");
350   allCategoriesCombined_reduced_nolvalue->map("{2orMoreVTX;1SingleTrack;4TrackVTX;Normal}","{2orMoreVTX;4TrackVTX;Normal}");
351   allCategoriesCombined_reduced_nolvalue->map("{2orMoreVTX;2SingleTrack;4TrackVTX;Normal}","{2orMoreVTX;4TrackVTX;Normal}");
352   allCategoriesCombined_reduced_nolvalue->map("{2orMoreVTX;3orMoreSingleTrack;4TrackVTX;Normal}","{2orMoreVTX;4TrackVTX;Normal}");
353   allCategoriesCombined_reduced_nolvalue->map("{2orMoreVTX;NoSingleTrack;5or6TrackVTX;Normal}","{2orMoreVTX;5orMoreTrackVTX;Normal}");
354   allCategoriesCombined_reduced_nolvalue->map("{2orMoreVTX;1SingleTrack;5or6TrackVTX;Normal}","{2orMoreVTX;5orMoreTrackVTX;Normal}");
355   allCategoriesCombined_reduced_nolvalue->map("{2orMoreVTX;2SingleTrack;5or6TrackVTX;Normal}","{2orMoreVTX;5orMoreTrackVTX;Normal}");
356   allCategoriesCombined_reduced_nolvalue->map("{2orMoreVTX;3orMoreSingleTrack;5or6TrackVTX;Normal}","{2orMoreVTX;5orMoreTrackVTX;Normal}");
357   allCategoriesCombined_reduced_nolvalue->map("{2orMoreVTX;NoSingleTrack;7orMoreTrackVTX;Normal}","{2orMoreVTX;5orMoreTrackVTX;Normal}");
358   allCategoriesCombined_reduced_nolvalue->map("{2orMoreVTX;1SingleTrack;7orMoreTrackVTX;Normal}","{2orMoreVTX;5orMoreTrackVTX;Normal}");
359   allCategoriesCombined_reduced_nolvalue->map("{2orMoreVTX;2SingleTrack;7orMoreTrackVTX;Normal}","{2orMoreVTX;5orMoreTrackVTX;Normal}");
360   allCategoriesCombined_reduced_nolvalue->map("{2orMoreVTX;3orMoreSingleTrack;7orMoreTrackVTX;Normal}","{2orMoreVTX;5orMoreTrackVTX;Normal}");
361   
362   allCategoriesCombined_reduced_nolvalue->map("{NoVTX;1SingleTrack;NoTrackVTX;NoFrag}","{NoVTX;1SingleTrack;NoFrag}");
363   allCategoriesCombined_reduced_nolvalue->map("{NoVTX;2SingleTrack;NoTrackVTX;NoFrag}","{NoVTX;2SingleTrack;NoFrag}");
364   allCategoriesCombined_reduced_nolvalue->map("{NoVTX;3orMoreSingleTrack;NoTrackVTX;NoFrag}","{NoVTX;3orMoreSingleTrack;NoFrag}");
365   
366   allCategoriesCombined_reduced_nolvalue->map("{1VTX;NoSingleTrack;2TrackVTX;NoFrag}","{1VTX;NoSingleTrack;2TrackVTX;NoFrag}");
367   allCategoriesCombined_reduced_nolvalue->map("{1VTX;1SingleTrack;2TrackVTX;NoFrag}","{1VTX;1SingleTrack;2TrackVTX;NoFrag}");
368   allCategoriesCombined_reduced_nolvalue->map("{1VTX;2SingleTrack;2TrackVTX;NoFrag}","{1VTX;2orMoreSingleTrack;2TrackVTX;NoFrag}");
369   allCategoriesCombined_reduced_nolvalue->map("{1VTX;3orMoreSingleTrack;2TrackVTX;NoFrag}","{1VTX;2orMoreSingleTrack;2TrackVTX;NoFrag}");
370   allCategoriesCombined_reduced_nolvalue->map("{1VTX;NotMapped;3TrackVTX;NoFrag}","{1VTX;NotMapped;3TrackVTX;NoFrag}");
371   allCategoriesCombined_reduced_nolvalue->map("{1VTX;NoSingleTrack;3TrackVTX;NoFrag}","{1VTX;NoSingleTrack;3TrackVTX;NoFrag}");
372   allCategoriesCombined_reduced_nolvalue->map("{1VTX;1SingleTrack;3TrackVTX;NoFrag}","{1VTX;1SingleTrack;3TrackVTX;NoFrag}");
373   allCategoriesCombined_reduced_nolvalue->map("{1VTX;2SingleTrack;3TrackVTX;NoFrag}","{1VTX;2orMoreSingleTrack;3TrackVTX;NoFrag}");
374   allCategoriesCombined_reduced_nolvalue->map("{1VTX;3orMoreSingleTrack;3TrackVTX;NoFrag}","{1VTX;2orMoreSingleTrack;3TrackVTX;NoFrag}");
375   allCategoriesCombined_reduced_nolvalue->map("{1VTX;NoSingleTrack;4TrackVTX;NoFrag}","{1VTX;NoSingleTrack;4TrackVTX;NoFrag}");
376   allCategoriesCombined_reduced_nolvalue->map("{1VTX;1SingleTrack;4TrackVTX;NoFrag}","{1VTX;1SingleTrack;4TrackVTX;NoFrag}");
377   allCategoriesCombined_reduced_nolvalue->map("{1VTX;2SingleTrack;4TrackVTX;NoFrag}","{1VTX;2orMoreSingleTrack;4TrackVTX;NoFrag}");
378   allCategoriesCombined_reduced_nolvalue->map("{1VTX;3orMoreSingleTrack;4TrackVTX;NoFrag}","{1VTX;2orMoreSingleTrack;4TrackVTX;NoFrag}");
379   allCategoriesCombined_reduced_nolvalue->map("{1VTX;NoSingleTrack;5or6TrackVTX;NoFrag}","{1VTX;NoSingleTrack;5or6TrackVTX;NoFrag}");
380   allCategoriesCombined_reduced_nolvalue->map("{1VTX;1SingleTrack;5or6TrackVTX;NoFrag}","{1VTX;1SingleTrack;5or6TrackVTX;NoFrag}");
381   allCategoriesCombined_reduced_nolvalue->map("{1VTX;2SingleTrack;5or6TrackVTX;NoFrag}","{1VTX;2orMoreSingleTrack;5or6TrackVTX;NoFrag}");
382   allCategoriesCombined_reduced_nolvalue->map("{1VTX;3orMoreSingleTrack;5or6TrackVTX;NoFrag}","{1VTX;2orMoreSingleTrack;5or6TrackVTX;NoFrag}");
383   allCategoriesCombined_reduced_nolvalue->map("{1VTX;NoSingleTrack;7orMoreTrackVTX;NoFrag}","{1VTX;NoSingleTrack;7orMoreTrackVTX;NoFrag}");
384   allCategoriesCombined_reduced_nolvalue->map("{1VTX;1SingleTrack;7orMoreTrackVTX;NoFrag}","{1VTX;1SingleTrack;7orMoreTrackVTX;NoFrag}");
385   allCategoriesCombined_reduced_nolvalue->map("{1VTX;2SingleTrack;7orMoreTrackVTX;NoFrag}","{1VTX;2orMoreSingleTrack;7orMoreTrackVTX;NoFrag}");
386   allCategoriesCombined_reduced_nolvalue->map("{1VTX;3orMoreSingleTrack;7orMoreTrackVTX;NoFrag}","{1VTX;2orMoreSingleTrack;7orMoreTrackVTX;NoFrag}");
387   
388   allCategoriesCombined_reduced_nolvalue->map("{2orMoreVTX;NoSingleTrack;4TrackVTX;NoFrag}","{2orMoreVTX;4TrackVTX;NoFrag}");
389   allCategoriesCombined_reduced_nolvalue->map("{2orMoreVTX;1SingleTrack;4TrackVTX;NoFrag}","{2orMoreVTX;4TrackVTX;NoFrag}");
390   allCategoriesCombined_reduced_nolvalue->map("{2orMoreVTX;2SingleTrack;4TrackVTX;NoFrag}","{2orMoreVTX;4TrackVTX;NoFrag}");
391   allCategoriesCombined_reduced_nolvalue->map("{2orMoreVTX;3orMoreSingleTrack;4TrackVTX;NoFrag}","{2orMoreVTX;4TrackVTX;NoFrag}");
392   allCategoriesCombined_reduced_nolvalue->map("{2orMoreVTX;NoSingleTrack;5or6TrackVTX;NoFrag}","{2orMoreVTX;5orMoreTrackVTX;NoFrag}");
393   allCategoriesCombined_reduced_nolvalue->map("{2orMoreVTX;1SingleTrack;5or6TrackVTX;NoFrag}","{2orMoreVTX;5orMoreTrackVTX;NoFrag}");
394   allCategoriesCombined_reduced_nolvalue->map("{2orMoreVTX;2SingleTrack;5or6TrackVTX;NoFrag}","{2orMoreVTX;5orMoreTrackVTX;NoFrag}");
395   allCategoriesCombined_reduced_nolvalue->map("{2orMoreVTX;3orMoreSingleTrack;5or6TrackVTX;NoFrag}","{2orMoreVTX;5orMoreTrackVTX;NoFrag}");
396   allCategoriesCombined_reduced_nolvalue->map("{2orMoreVTX;NoSingleTrack;7orMoreTrackVTX;NoFrag}","{2orMoreVTX;5orMoreTrackVTX;NoFrag}");
397   allCategoriesCombined_reduced_nolvalue->map("{2orMoreVTX;1SingleTrack;7orMoreTrackVTX;NoFrag}","{2orMoreVTX;5orMoreTrackVTX;NoFrag}");
398   allCategoriesCombined_reduced_nolvalue->map("{2orMoreVTX;2SingleTrack;7orMoreTrackVTX;NoFrag}","{2orMoreVTX;5orMoreTrackVTX;NoFrag}");
399   allCategoriesCombined_reduced_nolvalue->map("{2orMoreVTX;3orMoreSingleTrack;7orMoreTrackVTX;NoFrag}","{2orMoreVTX;5orMoreTrackVTX;NoFrag}");
400   m_myRooVariables->addOwned(*allCategoriesCombined_reduced_nolvalue);  
401 
402   RooCategory* allCategoriesCombined_reduced=static_cast<RooCategory*>(allCategoriesCombined_reduced_nolvalue->createFundamental("allCategoriesCombined_reduced"));
403   m_myRooVariables->addOwned(*allCategoriesCombined_reduced);
404   //  m_fictiousToRealCategory[allCategoriesCombined_reduced_nolvalue]=allCategoriesCombined_reduced;
405 
406   //now register all the needed histograms...
407 
408   
409 
410   ATH_MSG_INFO(" Initialization of JetFitterLikelihood succesfull");
411   return StatusCode::SUCCESS;
412 }
413 
414 StatusCode JetFitterLikelihood::finalize() {
415 
416   //here you should probably delete something :-)
417 
418   //(19-3-2008) Let's try...
419 
420 
421   std::map<std::string, std::vector<RooDataHist*>* >::iterator histogramsBegin=m_likelihoodHistograms.begin();
422   std::map<std::string, std::vector<RooDataHist*>* >::iterator histogramsEnd=m_likelihoodHistograms.end();
423   
424   for (std::map<std::string, std::vector<RooDataHist*>* >::iterator histogramsIter=histogramsBegin;
425        histogramsIter!=histogramsEnd;histogramsIter++)
426   {
427     
428     if ((*histogramsIter).second==0)
429     {
430       ATH_MSG_WARNING(" Found 0 pointer. This is a bug. ");
431     }
432 
433     std::vector<RooDataHist*>::iterator dataBegin=(*histogramsIter).second->begin();
434     std::vector<RooDataHist*>::iterator dataEnd=(*histogramsIter).second->end();
435 
436     for (std::vector<RooDataHist*>::iterator dataIter=dataBegin;dataIter!=dataEnd;++dataIter)
437     {
438 
439       delete *dataIter;
440       *dataIter=0;
441     }
442 
443     delete (*histogramsIter).second;
444     (*histogramsIter).second=0;
445 
446   }
447   
448   std::map<std::string, RooArgSet* >::iterator objectsBegin=m_likelihoodObjects.begin();
449   std::map<std::string, RooArgSet* >::iterator objectsEnd=m_likelihoodObjects.end();
450   
451   for (std::map<std::string, RooArgSet* >::iterator objectsIter=objectsBegin;
452        objectsIter!=objectsEnd;++objectsIter)
453   {
454     delete (*objectsIter).second;
455     (*objectsIter).second=0;
456   }
457   
458   delete m_myRooVariables;
459   m_myRooVariables=0;
460   
461   ATH_MSG_INFO(" Finalization of JetFitterLikelihood succesfull");
462   return StatusCode::SUCCESS;
463 }
464 
465   void JetFitterLikelihood::initializeCalibrationFile(const std::string & hypothesis)
466   {
467     
468     TString directory(m_calibrationSubDirectory);
469     directory+="/";
470 
471     m_calibrationTool->registerHistogram(m_calibrationDirectory,std::string((const char*)(directory+hypothesis+"_noVTX_significance3d_histo")));
472     m_calibrationTool->registerHistogram(m_calibrationDirectory,std::string((const char*)(directory+hypothesis+"_noVTX_1SingleTrack_energyFraction_normal_histo")));
473     m_calibrationTool->registerHistogram(m_calibrationDirectory,std::string((const char*)(directory+hypothesis+"_noVTX_2orMoreSingleTrack_energyFraction_normal_histo")));
474     m_calibrationTool->registerHistogram(m_calibrationDirectory,std::string((const char*)(directory+hypothesis+"_1orMoreVTX_2TrackVTX_energyFraction_normal_histo")));
475     m_calibrationTool->registerHistogram(m_calibrationDirectory,std::string((const char*)(directory+hypothesis+"_1orMoreVTX_3TrackVTX_energyFraction_normal_histo")));
476     m_calibrationTool->registerHistogram(m_calibrationDirectory,std::string((const char*)(directory+hypothesis+"_1orMoreVTX_4orMoreTrackVTX_energyFraction_normal_histo")));
477     m_calibrationTool->registerHistogram(m_calibrationDirectory,std::string((const char*)(directory+hypothesis+"_1orMoreVTX_significance3d_histo")));
478     m_calibrationTool->registerHistogram(m_calibrationDirectory,std::string((const char*)(directory+hypothesis+"_1orMoreVTX_2TrackVTX_mass_histo")));
479     m_calibrationTool->registerHistogram(m_calibrationDirectory,std::string((const char*)(directory+hypothesis+"_1orMoreVTX_3orMoreTrackVTX_mass_histo")));
480 
481     //here store the names to load for the coefficients...    
482     std::vector<TString> coefficientNamesToLoad;
483     coefficientNamesToLoad.push_back(TString("coef"));
484     coefficientNamesToLoad.push_back(TString("e_1VTX"));
485     coefficientNamesToLoad.push_back(TString("e_1VTX_2TrackVTX"));
486     coefficientNamesToLoad.push_back(TString("e_1VTX_3TrackVTX"));
487     coefficientNamesToLoad.push_back(TString("e_1VTX_4TrackVTX"));
488     coefficientNamesToLoad.push_back(TString("e_1VTX_5or6TrackVTX"));
489     coefficientNamesToLoad.push_back(TString("e_1Vtx_1SingleTrack"));
490     coefficientNamesToLoad.push_back(TString("e_1Vtx_NoSingleTrack"));
491     coefficientNamesToLoad.push_back(TString("e_1orMoreVTX_2TrackVTX_energyFraction_normal"));
492     coefficientNamesToLoad.push_back(TString("e_1orMoreVTX_3TrackVTX_energyFraction_normal"));
493     coefficientNamesToLoad.push_back(TString("e_1orMoreVTX_4orMoreTrackVTX_energyFraction_normal"));
494     coefficientNamesToLoad.push_back(TString("e_2orMoreVTX_4TrackVTX"));
495     coefficientNamesToLoad.push_back(TString("e_NoVTX"));
496     coefficientNamesToLoad.push_back(TString("e_NoVtx_1SingleTrack"));
497     coefficientNamesToLoad.push_back(TString("e_NoVtx_1SingleTrack_energyFraction_normal"));
498     coefficientNamesToLoad.push_back(TString("e_NoVtx_2SingleTrack"));
499     coefficientNamesToLoad.push_back(TString("e_NoVtx_2orMoreSingleTrack_energyFraction_normal"));
500     coefficientNamesToLoad.push_back(TString("e_NoVtx_NoSingleTrack"));
501     
502     //as a second step read the coefficients directly from the calibration histograms (1 histogram per coefficient)
503     std::vector<TString>::const_iterator beginCoef=coefficientNamesToLoad.begin();
504     std::vector<TString>::const_iterator endCoef=coefficientNamesToLoad.end();
505 
506     for (std::vector<TString>::const_iterator iterCoef=beginCoef;iterCoef!=endCoef;++iterCoef)
507     {
508      m_calibrationTool->registerHistogram(m_calibrationDirectory,std::string((const char*)(directory+hypothesis+"_"+*iterCoef)));
509     }
510 
511     ATH_MSG_VERBOSE(" Initialized calibration file for: " << hypothesis << " tagger name: " << m_calibrationDirectory << " subdirectory: " << m_calibrationSubDirectory);
512 
513     m_calibrationTool->printStatus();
514 
515   }
516   
517 
518   void JetFitterLikelihood::loadCalibration(const std::string & jetauthor,const std::string & hypothesis) {
519 
520 
521     string refFileName(jetauthor);
522 
523     bool deleteOldCalibration=false;
524     
525 
526     if (m_likelihoods[jetauthor+hypothesis]!=0) 
527     {
528       if (isCalibrationUpdated(refFileName,hypothesis+"_noVTX_significance3d_histo"))
529       {
530         deleteOldCalibration=true;
531       }
532       else
533       {
534         return;
535       }
536     }
537     
538     if (deleteOldCalibration)
539     {
540       ATH_MSG_VERBOSE(" deleting calibration " );
541       std::vector<RooDataHist*>* histogramsVector=m_likelihoodHistograms[jetauthor+hypothesis];
542       
543       if (histogramsVector==0)
544       {
545         ATH_MSG_ERROR("Should delete old calibration, but cannot find related histograms... This is a bug. ");
546         return;
547       }
548 
549       std::vector<RooDataHist*>::iterator dataBegin=histogramsVector->begin();
550       std::vector<RooDataHist*>::iterator dataEnd=histogramsVector->end();
551       
552       for (std::vector<RooDataHist*>::iterator dataIter=dataBegin;dataIter!=dataEnd;++dataIter)
553       {
554         delete *dataIter;
555         *dataIter=0;
556       }
557 
558       delete histogramsVector;
559       m_likelihoodHistograms[jetauthor+hypothesis]=0;
560 
561       RooArgSet* likelihoodObjects=m_likelihoodObjects[jetauthor+hypothesis];
562 
563       if (likelihoodObjects==0)
564       {
565         ATH_MSG_ERROR("Should delete old calibration, but cannot find related likelihood objects... This is a bug. ");
566         return;
567       }
568 
569       delete likelihoodObjects;
570       m_likelihoodObjects[jetauthor+hypothesis]=0;
571 
572     }
573 
574     std::vector<RooDataHist*>* histogramsVector=new std::vector<RooDataHist*>();
575 
576     m_likelihoodHistograms[jetauthor+hypothesis]=histogramsVector;
577 
578     RooArgSet* likelihoodObjects=new RooArgSet();
579 
580     m_likelihoodObjects[jetauthor+hypothesis]=likelihoodObjects;
581     
582     
583     //m_likelihoodObjects[jetauthor+hypothesis]=objectsRooArgSet;
584     
585 
586     //    RooCategory* cat_nVTX=static_cast<RooCategory*>(m_myRooVariables->find("cat_nVTX"));
587     //    RooCategory* cat_nTracksAtVtx=static_cast<RooCategory*>(m_myRooVariables->find("cat_nTracksAtVtx"));
588     //    RooCategory* cat_nSingleTracks=static_cast<RooCategory*>(m_myRooVariables->find("cat_nSingleTracks"));
589 
590     //    RooCategory* mycat_nVTX=static_cast<RooCategory*>(m_myRooVariables->find("mycat_nVTX"));
591     //    RooCategory* mycat_nSingleTracks=static_cast<RooCategory*>(m_myRooVariables->find("mycat_nSingleTracks"));
592     
593     RooRealVar *energyFraction=static_cast<RooRealVar*>(m_myRooVariables->find("energyFraction"));
594     RooRealVar *significance3d=static_cast<RooRealVar*>(m_myRooVariables->find("significance3d"));
595     RooRealVar *mass=static_cast<RooRealVar*>(m_myRooVariables->find("mass"));
596     
597     //    RooCategory* energyFractionCat=static_cast<RooCategory*>(m_myRooVariables->find("energyFractionCat"));
598 
599     RooRealVar* singleflavour_coef=new RooRealVar((hypothesis+"_"+jetauthor+"_coef").c_str(),(hypothesis+"_"+jetauthor+" jet component").c_str(),100000.,0.,1000000.);
600 
601     RooRealVar* singleflavour_e_NoVTX=new RooRealVar((hypothesis+"_"+jetauthor+"_e_NoVTX").c_str(),"no vertex coefficient",0.2,0.,1.);
602 
603     RooRealVar* singleflavour_e_1VTX=new RooRealVar((hypothesis+"_"+jetauthor+"_e_1VTX").c_str(),"1 vertex coefficient",0.2,0.,1.);
604 
605     RooFormulaVar* singleflavour_e_2orMoreVTX=new RooFormulaVar((hypothesis+"_"+jetauthor+"_e_2orMoreVTX").c_str(),"2 vertex coefficient","1.-@0-@1",RooArgList(*singleflavour_e_NoVTX,
606                                                                                                                             *singleflavour_e_1VTX));
607     RooRealVar* singleflavour_e_1VTX_2TrackVTX=new RooRealVar((hypothesis+"_"+jetauthor+"_e_1VTX_2TrackVTX").c_str(),
608                                                               (hypothesis+"_"+jetauthor+"_e_1VTX_2TrackVTX").c_str(),0.2,0.,1.);
609     RooRealVar* singleflavour_e_1VTX_3TrackVTX=new RooRealVar((hypothesis+"_"+jetauthor+"_e_1VTX_3TrackVTX").c_str(),
610                                                        (hypothesis+"_"+jetauthor+"_e_1VTX_3TrackVTX").c_str(),0.2,0.,1.);
611 
612     RooRealVar* singleflavour_e_1VTX_4TrackVTX=new RooRealVar((hypothesis+"_"+jetauthor+"_e_1VTX_4TrackVTX").c_str(),
613                                                        (hypothesis+"_"+jetauthor+"_e_1VTX_4TrackVTX").c_str(),0.2,0.,1.);
614 
615     RooRealVar* singleflavour_e_1VTX_5or6TrackVTX=new RooRealVar((hypothesis+"_"+jetauthor+"_e_1VTX_5or6TrackVTX").c_str(),
616                                                           (hypothesis+"_"+jetauthor+"_e_1VTX_5or6TrackVTX").c_str(),0.2,0.,1.);
617 
618     RooFormulaVar* singleflavour_e_1VTX_7orMoreTrackVTX =new RooFormulaVar((hypothesis+"_"+jetauthor+"_e_1VTX_7orMoreTrackVTX").c_str(),
619                                                                     (hypothesis+"_"+jetauthor+"_e_1VTX_7orMoreTrackVTX").c_str(),
620                                                                     "1.-@0-@1-@2-@3",RooArgList(*singleflavour_e_1VTX_2TrackVTX,
621                                                                                                 *singleflavour_e_1VTX_3TrackVTX,
622                                                                                                 *singleflavour_e_1VTX_4TrackVTX,
623                                                                                                 *singleflavour_e_1VTX_5or6TrackVTX));
624     
625 
626     RooRealVar* singleflavour_e_1Vtx_NoSingleTrack=new RooRealVar((hypothesis+"_"+jetauthor+"_e_1Vtx_NoSingleTrack").c_str(),
627                                                            (hypothesis+"_"+jetauthor+"_e_1Vtx_NoSingleTrack").c_str(),
628                                                            0.4,0.,1.);
629  
630    RooRealVar* singleflavour_e_1Vtx_1SingleTrack=new RooRealVar((hypothesis+"_"+jetauthor+"_e_1Vtx_1SingleTrack").c_str(),
631                                                           (hypothesis+"_"+jetauthor+"_e_1Vtx_1SingleTrack").c_str(),
632                                                           0.4,0.,1.);
633  
634    RooFormulaVar* singleflavour_e_1Vtx_2orMoreSingleTrack=new RooFormulaVar((hypothesis+"_"+jetauthor+"_e_1Vtx_2orMoreSingleTrack").c_str(),
635                                                                       (hypothesis+"_"+jetauthor+"_e_1Vtx_2orMoreSingleTrack").c_str(),
636                                                                       "1.-@0-@1",RooArgList(*singleflavour_e_1Vtx_NoSingleTrack,
637                                                                                             *singleflavour_e_1Vtx_1SingleTrack));
638     
639  
640    RooRealVar* singleflavour_e_2orMoreVTX_4TrackVTX=new RooRealVar((hypothesis+"_"+jetauthor+"_e_2orMoreVTX_4TrackVTX").c_str(),
641                                                              (hypothesis+"_"+jetauthor+"_e_2orMoreVTX_4TrackVTX").c_str(),0.2,0.,1.);
642  
643    RooFormulaVar* singleflavour_e_2orMoreVTX_5orMoreTrackVTX=new RooFormulaVar((hypothesis+"_"+jetauthor+"_e_2orMoreVTX_5orMoreTrackVTX").c_str(),
644                                                                          (hypothesis+"_"+jetauthor+"_e_2orMoreVTX_5orMoreTrackVTX").c_str(),
645                                                                          "1.-@0",RooArgList(*singleflavour_e_2orMoreVTX_4TrackVTX));
646     
647     
648     //energyFraction normal...
649     
650  
651    RooRealVar* singleflavour_e_NoVtx_1SingleTrack_energyFraction_normal=new RooRealVar((hypothesis+"_"+jetauthor+"_e_NoVtx_1SingleTrack_energyFraction_normal").c_str(),
652                                                                                  (hypothesis+"_"+jetauthor+"_e_NoVtx_1SingleTrack_energyFraction_normal").c_str(),
653                                                                                  0.8,0.,1.);
654     
655     
656     
657  
658    RooFormulaVar* singleflavour_e_NoVtx_1SingleTrack_energyFraction_nofrag=new RooFormulaVar((hypothesis+"_"+jetauthor+"_e_NoVtx_1SingleTrack_energyFraction_nofrag").c_str(),
659                                                                                        (hypothesis+"_"+jetauthor+"_e_NoVtx_1SingleTrack_energyFraction_nofrag").c_str(),
660                                                                                        "1.-@0",RooArgList(*singleflavour_e_NoVtx_1SingleTrack_energyFraction_normal));
661     
662     
663 
664     RooRealVar* singleflavour_e_NoVtx_2orMoreSingleTrack_energyFraction_normal=new RooRealVar((hypothesis+"_"+jetauthor+"_e_NoVtx_2orMoreSingleTrack_energyFraction_normal").c_str(),
665                                                                                        (hypothesis+"_"+jetauthor+"_e_NoVtx_2orMoreSingleTrack_energyFraction_normal").c_str(),
666                                                                                        0.8,0.,1.);
667     
668     
669     
670  
671    RooFormulaVar* singleflavour_e_NoVtx_2orMoreSingleTrack_energyFraction_nofrag=new RooFormulaVar((hypothesis+"_"+jetauthor+"_e_NoVtx_2orMoreSingleTrack_energyFraction_nofrag").c_str(),
672                                                                                              (hypothesis+"_"+jetauthor+"_e_NoVtx_2orMoreSingleTrack_energyFraction_nofrag").c_str(),
673                                                                                              "1-@0",RooArgList(*singleflavour_e_NoVtx_2orMoreSingleTrack_energyFraction_normal));
674     
675     
676  
677    RooRealVar* singleflavour_e_1orMoreVTX_2TrackVTX_energyFraction_normal=new RooRealVar((hypothesis+"_"+jetauthor+"_e_1orMoreVTX_2TrackVTX_energyFraction_normal").c_str(),
678                                                                                    (hypothesis+"_"+jetauthor+"_e_1orMoreVTX_2TrackVTX_energyFraction_normal").c_str(),
679                                                                                    0.8,0.,1.);
680     
681     
682     
683 
684     RooFormulaVar* singleflavour_e_1orMoreVTX_2TrackVTX_energyFraction_nofrag=new RooFormulaVar((hypothesis+"_"+jetauthor+"_e_1orMoreVTX_2TrackVTX_energyFraction_nofrag").c_str(),
685                                                                                          (hypothesis+"_"+jetauthor+"_e_1orMoreVTX_2TrackVTX_energyFraction_nofrag").c_str(),
686                                                                                          "1-@0",RooArgList(*singleflavour_e_1orMoreVTX_2TrackVTX_energyFraction_normal));
687     
688     
689  
690    RooRealVar* singleflavour_e_1orMoreVTX_3TrackVTX_energyFraction_normal=new RooRealVar((hypothesis+"_"+jetauthor+"_e_1orMoreVTX_3TrackVTX_energyFraction_normal").c_str(),
691                                                                                    (hypothesis+"_"+jetauthor+"_e_1orMoreVTX_3TrackVTX_energyFraction_normal").c_str(),
692                                                                                    0.8,0.,1.);
693     
694     
695     
696  
697    RooFormulaVar* singleflavour_e_1orMoreVTX_3TrackVTX_energyFraction_nofrag=new RooFormulaVar((hypothesis+"_"+jetauthor+"_e_1orMoreVTX_3TrackVTX_energyFraction_nofrag").c_str(),
698                                                                                          (hypothesis+"_"+jetauthor+"_e_1orMoreVTX_3TrackVTX_energyFraction_nofrag").c_str(),
699                                                                                          "1-@0",RooArgList(*singleflavour_e_1orMoreVTX_3TrackVTX_energyFraction_normal));
700     
701  
702    RooRealVar* singleflavour_e_1orMoreVTX_4orMoreTrackVTX_energyFraction_normal=new RooRealVar((hypothesis+"_"+jetauthor+"_e_1orMoreVTX_4orMoreTrackVTX_energyFraction_normal").c_str(),
703                                                                                          (hypothesis+"_"+jetauthor+"_e_1orMoreVTX_4orMoreTrackVTX_energyFraction_normal").c_str(),
704                                                                                          0.8,0.,1.);
705     
706 
707     RooFormulaVar* singleflavour_e_1orMoreVTX_4orMoreTrackVTX_energyFraction_nofrag=new RooFormulaVar((hypothesis+"_"+jetauthor+"_e_1orMoreVTX_4orMoreTrackVTX_energyFraction_nofrag").c_str(),
708                                                                                                (hypothesis+"_"+jetauthor+"_e_1orMoreVTX_4orMoreTrackVTX_energyFraction_nofrag").c_str(),
709                                                                                                "1-@0",RooArgList(*singleflavour_e_1orMoreVTX_4orMoreTrackVTX_energyFraction_normal));
710     
711     
712     //0ST
713     
714  
715    RooFormulaVar* singleflavour_1VTX_0ST_2VTX_normal_coef=new RooFormulaVar((hypothesis+"_"+jetauthor+"_1VTX_0ST_2VTX_normal").c_str(),
716                                                                       (hypothesis+"_"+jetauthor+"_1VTX_0ST_2VTX_normal").c_str(),
717                                                                       "@0*@1*@2*@3*@4",RooArgList(*singleflavour_coef,
718                                                                                                   *singleflavour_e_1VTX,
719                                                                                                   *singleflavour_e_1Vtx_NoSingleTrack,
720                                                                                                   *singleflavour_e_1VTX_2TrackVTX,
721                                                                                                   *singleflavour_e_1orMoreVTX_2TrackVTX_energyFraction_normal));
722     
723     
724   
725   RooFormulaVar* singleflavour_1VTX_0ST_3VTX_normal_coef=new RooFormulaVar((hypothesis+"_"+jetauthor+"_1VTX_0ST_3VTX_normal").c_str(),
726                                                                       (hypothesis+"_"+jetauthor+"_1VTX_0ST_3VTX_normal").c_str(),
727                                                                       "@0*@1*@2*@3*@4",RooArgList(*singleflavour_coef,
728                                                                                                   *singleflavour_e_1VTX,
729                                                                                                   *singleflavour_e_1Vtx_NoSingleTrack,
730                                                                                                   *singleflavour_e_1VTX_3TrackVTX,
731                                                                                                   *singleflavour_e_1orMoreVTX_3TrackVTX_energyFraction_normal));
732     
733   
734   RooFormulaVar* singleflavour_1VTX_0ST_4VTX_normal_coef=new RooFormulaVar((hypothesis+"_"+jetauthor+"_1VTX_0ST_4VTX_normal").c_str(),
735                                                                       (hypothesis+"_"+jetauthor+"_1VTX_0ST_4VTX_normal").c_str(),
736                                                                       "@0*@1*@2*@3*@4",RooArgList(*singleflavour_coef,
737                                                                                                   *singleflavour_e_1VTX,
738                                                                                                   *singleflavour_e_1Vtx_NoSingleTrack,
739                                                                                                   *singleflavour_e_1VTX_4TrackVTX,
740                                                                                                   *singleflavour_e_1orMoreVTX_4orMoreTrackVTX_energyFraction_normal));
741     
742   
743   RooFormulaVar* singleflavour_1VTX_0ST_5or6VTX_normal_coef=new RooFormulaVar((hypothesis+"_"+jetauthor+"_1VTX_0ST_5or6VTX_normal").c_str(),
744                                                                          (hypothesis+"_"+jetauthor+"_1VTX_0ST_5or6VTX_normal").c_str(),
745                                                                          "@0*@1*@2*@3*@4",RooArgList(*singleflavour_coef,
746                                                                                                      *singleflavour_e_1VTX,
747                                                                                                      *singleflavour_e_1Vtx_NoSingleTrack,
748                                                                                                      *singleflavour_e_1VTX_5or6TrackVTX,
749                                                                                                      *singleflavour_e_1orMoreVTX_4orMoreTrackVTX_energyFraction_normal));
750     
751   
752   RooFormulaVar* singleflavour_1VTX_0ST_7orMoreVTX_normal_coef=new RooFormulaVar((hypothesis+"_"+jetauthor+"_1VTX_0ST_7orMoreVTX_normal").c_str(),
753                                                                             (hypothesis+"_"+jetauthor+"_1VTX_0ST_7orMoreVTX_normal").c_str(),
754                                                                             "@0*@1*@2*@3*@4",RooArgList(*singleflavour_coef,
755                                                                                                         *singleflavour_e_1VTX,
756                                                                                                         *singleflavour_e_1Vtx_NoSingleTrack,
757                                                                                                         *singleflavour_e_1VTX_7orMoreTrackVTX,
758                                                                                                         *singleflavour_e_1orMoreVTX_4orMoreTrackVTX_energyFraction_normal));
759     
760     //1ST
761     
762  
763    RooFormulaVar* singleflavour_1VTX_1ST_2VTX_normal_coef=new RooFormulaVar((hypothesis+"_"+jetauthor+"_1VTX_1ST_2VTX_normal").c_str(),
764                                                                       (hypothesis+"_"+jetauthor+"_1VTX_1ST_2VTX_normal").c_str(),
765                                                                       "@0*@1*@2*@3*@4",RooArgList(*singleflavour_coef,
766                                                                                                   *singleflavour_e_1VTX,
767                                                                                                   *singleflavour_e_1Vtx_1SingleTrack,
768                                                                                                   *singleflavour_e_1VTX_2TrackVTX,
769                                                                                                   *singleflavour_e_1orMoreVTX_2TrackVTX_energyFraction_normal));
770     
771     
772 
773     RooFormulaVar* singleflavour_1VTX_1ST_3VTX_normal_coef=new RooFormulaVar((hypothesis+"_"+jetauthor+"_1VTX_1ST_3VTX_normal").c_str(),
774                                                                       (hypothesis+"_"+jetauthor+"_1VTX_1ST_3VTX_normal").c_str(),
775                                                                       "@0*@1*@2*@3*@4",RooArgList(*singleflavour_coef,
776                                                                                                   *singleflavour_e_1VTX,
777                                                                                                   *singleflavour_e_1Vtx_1SingleTrack,
778                                                                                                   *singleflavour_e_1VTX_3TrackVTX,
779                                                                                                   *singleflavour_e_1orMoreVTX_3TrackVTX_energyFraction_normal));
780     
781  
782    RooFormulaVar* singleflavour_1VTX_1ST_4VTX_normal_coef=new RooFormulaVar((hypothesis+"_"+jetauthor+"_1VTX_1ST_4VTX_normal").c_str(),
783                                                                       (hypothesis+"_"+jetauthor+"_1VTX_1ST_4VTX_normal").c_str(),
784                                                                       "@0*@1*@2*@3*@4",RooArgList(*singleflavour_coef,
785                                                                                                   *singleflavour_e_1VTX,
786                                                                                                   *singleflavour_e_1Vtx_1SingleTrack,
787                                                                                                   *singleflavour_e_1VTX_4TrackVTX,
788                                                                                                   *singleflavour_e_1orMoreVTX_4orMoreTrackVTX_energyFraction_normal));
789     
790 
791     RooFormulaVar* singleflavour_1VTX_1ST_5or6VTX_normal_coef=new RooFormulaVar((hypothesis+"_"+jetauthor+"_1VTX_1ST_5or6VTX_normal").c_str(),
792                                                                          (hypothesis+"_"+jetauthor+"_1VTX_1ST_5or6VTX_normal").c_str(),
793                                                                          "@0*@1*@2*@3*@4",RooArgList(*singleflavour_coef,
794                                                                                                      *singleflavour_e_1VTX,
795                                                                                                      *singleflavour_e_1Vtx_1SingleTrack,
796                                                                                                      *singleflavour_e_1VTX_5or6TrackVTX,
797                                                                                                      *singleflavour_e_1orMoreVTX_4orMoreTrackVTX_energyFraction_normal));
798     
799  
800    RooFormulaVar* singleflavour_1VTX_1ST_7orMoreVTX_normal_coef=new RooFormulaVar((hypothesis+"_"+jetauthor+"_1VTX_1ST_7orMoreVTX_normal").c_str(),
801                                                                             (hypothesis+"_"+jetauthor+"_1VTX_1ST_7orMoreVTX_normal").c_str(),
802                                                                             "@0*@1*@2*@3*@4",RooArgList(*singleflavour_coef,
803                                                                                                         *singleflavour_e_1VTX,
804                                                                                                         *singleflavour_e_1Vtx_1SingleTrack,
805                                                                                                         *singleflavour_e_1VTX_7orMoreTrackVTX,
806                                                                                                         *singleflavour_e_1orMoreVTX_4orMoreTrackVTX_energyFraction_normal));
807     
808     
809     //2orMoreST
810     
811  
812    RooFormulaVar* singleflavour_1VTX_2orMoreST_2VTX_normal_coef=new RooFormulaVar((hypothesis+"_"+jetauthor+"_1VTX_2orMoreST_2VTX_normal").c_str(),
813                                                                             (hypothesis+"_"+jetauthor+"_1VTX_2orMoreST_2VTX_normal").c_str(),
814                                                                             "@0*@1*@2*@3*@4",RooArgList(*singleflavour_coef,
815                                                                                                         *singleflavour_e_1VTX,
816                                                                                                         *singleflavour_e_1Vtx_2orMoreSingleTrack,
817                                                                                                         *singleflavour_e_1VTX_2TrackVTX,
818                                                                                                         *singleflavour_e_1orMoreVTX_2TrackVTX_energyFraction_normal));
819     
820     
821 
822     RooFormulaVar* singleflavour_1VTX_2orMoreST_3VTX_normal_coef=new RooFormulaVar((hypothesis+"_"+jetauthor+"_1VTX_2orMoreST_3VTX_normal").c_str(),
823                                                                             (hypothesis+"_"+jetauthor+"_1VTX_2orMoreST_3VTX_normal").c_str(),
824                                                                             "@0*@1*@2*@3*@4",RooArgList(*singleflavour_coef,
825                                                                                                         *singleflavour_e_1VTX,
826                                                                                                         *singleflavour_e_1Vtx_2orMoreSingleTrack,
827                                                                                                         *singleflavour_e_1VTX_3TrackVTX,
828                                                                                                         *singleflavour_e_1orMoreVTX_3TrackVTX_energyFraction_normal));
829     
830 
831     RooFormulaVar* singleflavour_1VTX_2orMoreST_4VTX_normal_coef=new RooFormulaVar((hypothesis+"_"+jetauthor+"_1VTX_2orMoreST_4VTX_normal").c_str(),
832                                                                             (hypothesis+"_"+jetauthor+"_1VTX_2orMoreST_4VTX_normal").c_str(),
833                                                                             "@0*@1*@2*@3*@4",RooArgList(*singleflavour_coef,
834                                                                                                         *singleflavour_e_1VTX,
835                                                                                                         *singleflavour_e_1Vtx_2orMoreSingleTrack,
836                                                                                                         *singleflavour_e_1VTX_4TrackVTX,
837                                                                                                         *singleflavour_e_1orMoreVTX_4orMoreTrackVTX_energyFraction_normal));
838     
839  
840    RooFormulaVar* singleflavour_1VTX_2orMoreST_5or6VTX_normal_coef=new RooFormulaVar((hypothesis+"_"+jetauthor+"_1VTX_2orMoreST_5or6VTX_normal").c_str(),
841                                                                                (hypothesis+"_"+jetauthor+"_1VTX_2orMoreST_5or6VTX_normal").c_str(),
842                                                                                "@0*@1*@2*@3*@4",RooArgList(*singleflavour_coef,
843                                                                                                            *singleflavour_e_1VTX,
844                                                                                                            *singleflavour_e_1Vtx_2orMoreSingleTrack,
845                                                                                                            *singleflavour_e_1VTX_5or6TrackVTX,
846                                                                                                            *singleflavour_e_1orMoreVTX_4orMoreTrackVTX_energyFraction_normal));
847     
848 
849     RooFormulaVar* singleflavour_1VTX_2orMoreST_7orMoreVTX_normal_coef=new RooFormulaVar((hypothesis+"_"+jetauthor+"_1VTX_2orMoreST_7orMoreVTX_normal").c_str(),
850                                                                                   (hypothesis+"_"+jetauthor+"_1VTX_2orMoreST_7orMoreVTX_normal").c_str(),
851                                                                                   "@0*@1*@2*@3*@4",RooArgList(*singleflavour_coef,
852                                                                                                               *singleflavour_e_1VTX,
853                                                                                                               *singleflavour_e_1Vtx_2orMoreSingleTrack,
854                                                                                                               *singleflavour_e_1VTX_7orMoreTrackVTX,
855                                                                                                               *singleflavour_e_1orMoreVTX_4orMoreTrackVTX_energyFraction_normal));
856     
857     
858     
859     //2orMoreVTX
860     
861  
862    RooFormulaVar* singleflavour_2orMoreVTX_4VTX_normal_coef=new RooFormulaVar((hypothesis+"_"+jetauthor+"_2orMoreVTX_4VTX_normal").c_str(),
863                                                                         (hypothesis+"_"+jetauthor+"_2orMoreVTX_4VTX_normal").c_str(),
864                                                                         "@0*@1*@2*@3",RooArgList(*singleflavour_coef,
865                                                                                                  *singleflavour_e_2orMoreVTX,
866                                                                                                  *singleflavour_e_2orMoreVTX_4TrackVTX,
867                                                                                                  *singleflavour_e_1orMoreVTX_4orMoreTrackVTX_energyFraction_normal));
868     
869 
870     RooFormulaVar* singleflavour_2orMoreVTX_5orMoreVTX_normal_coef=new RooFormulaVar((hypothesis+"_"+jetauthor+"_2orMoreVTX_5orMoreVTX_normal").c_str(),
871                                                                               (hypothesis+"_"+jetauthor+"_2orMoreVTX_5orMoreVTX_normal").c_str(),
872                                                                               "@0*@1*@2*@3",RooArgList(*singleflavour_coef,
873                                                                                                        *singleflavour_e_2orMoreVTX,
874                                                                                                        *singleflavour_e_2orMoreVTX_5orMoreTrackVTX,
875                                                                                                        *singleflavour_e_1orMoreVTX_4orMoreTrackVTX_energyFraction_normal));
876     
877     
878     //
879     
880 
881     RooRealVar* singleflavour_e_NoVtx_NoSingleTrack=new RooRealVar((hypothesis+"_"+jetauthor+"_e_NoVtx_NoSingleTrack").c_str(),
882                                                             (hypothesis+"_"+jetauthor+"_e_NoVtx_NoSingleTrack").c_str(),
883                                                             0.4,0.,1.);
884 
885     RooRealVar* singleflavour_e_NoVtx_1SingleTrack=new RooRealVar((hypothesis+"_"+jetauthor+"_e_NoVtx_1SingleTrack").c_str(),
886                                                            (hypothesis+"_"+jetauthor+"_e_NoVtx_1SingleTrack").c_str(),
887                                                            0.2,0.,1.);
888 
889     RooRealVar* singleflavour_e_NoVtx_2SingleTrack=new RooRealVar((hypothesis+"_"+jetauthor+"_e_NoVtx_2SingleTrack").c_str(),
890                                                            (hypothesis+"_"+jetauthor+"_e_NoVtx_2SingleTrack").c_str(),
891                                                            0.2,0.,1.);
892 
893     RooFormulaVar* singleflavour_e_NoVtx_3orMoreSingleTrack=new RooFormulaVar((hypothesis+"_"+jetauthor+"_e_NoVtx_3orMoreSingleTrack").c_str(),
894                                                                        (hypothesis+"_"+jetauthor+"_e_NoVtx_3orMoreSingleTrack").c_str(),
895                                                                        "1.-@0-@1-@2",RooArgList(*singleflavour_e_NoVtx_NoSingleTrack,
896                                                                                                 *singleflavour_e_NoVtx_1SingleTrack,
897                                                                                                 *singleflavour_e_NoVtx_2SingleTrack));
898     
899     //coef for noVTX case
900     
901  
902    RooFormulaVar* singleflavour_noVTX_0ST_coef=new RooFormulaVar((hypothesis+"_"+jetauthor+"_noVTX_0ST").c_str(),
903                                                            (hypothesis+"_"+jetauthor+"_noVTX_0ST").c_str(),
904                                                            "@0*@1*@2",RooArgList(*singleflavour_coef,
905                                                                                  *singleflavour_e_NoVTX,
906                                                                                  *singleflavour_e_NoVtx_NoSingleTrack));
907     
908  
909    RooFormulaVar* singleflavour_noVTX_1ST_normal_coef=new RooFormulaVar((hypothesis+"_"+jetauthor+"_noVTX_1ST_normal").c_str(),
910                                                                   (hypothesis+"_"+jetauthor+"_noVTX_1ST_normal").c_str(),
911                                                                   "@0*@1*@2*@3",RooArgList(*singleflavour_coef,
912                                                                                            *singleflavour_e_NoVTX,
913                                                                                            *singleflavour_e_NoVtx_1SingleTrack,
914                                                                                            *singleflavour_e_NoVtx_1SingleTrack_energyFraction_normal));
915     
916 
917     RooFormulaVar* singleflavour_noVTX_2ST_normal_coef=new RooFormulaVar((hypothesis+"_"+jetauthor+"_noVTX_2ST_normal").c_str(),
918                                                                   (hypothesis+"_"+jetauthor+"_noVTX_2ST_normal").c_str(),
919                                                                   "@0*@1*@2*@3",RooArgList(*singleflavour_coef,
920                                                                                            *singleflavour_e_NoVTX,
921                                                                                            *singleflavour_e_NoVtx_2SingleTrack,
922                                                                                            *singleflavour_e_NoVtx_2orMoreSingleTrack_energyFraction_normal));
923     
924 
925     RooFormulaVar* singleflavour_noVTX_3orMoreST_normal_coef=new RooFormulaVar((hypothesis+"_"+jetauthor+"_noVTX_3orMoreST_normal").c_str(),
926                                                                         (hypothesis+"_"+jetauthor+"_noVTX_3orMoreST_normal").c_str(),
927                                                                         "@0*@1*@2*@3",RooArgList(*singleflavour_coef,
928                                                                                                  *singleflavour_e_NoVTX,
929                                                                                                  *singleflavour_e_NoVtx_3orMoreSingleTrack,
930                                                                                                  *singleflavour_e_NoVtx_2orMoreSingleTrack_energyFraction_normal));
931     
932     //ALL COEFFICIENTS FOR NOFRAG CASE AGAIN
933     
934     
935     //0ST
936     
937  
938    RooFormulaVar* singleflavour_1VTX_0ST_2VTX_nofrag_coef=new RooFormulaVar((hypothesis+"_"+jetauthor+"_1VTX_0ST_2VTX_nofrag").c_str(),
939                                                                       (hypothesis+"_"+jetauthor+"_1VTX_0ST_2VTX_nofrag").c_str(),
940                                                                       "@0*@1*@2*@3*@4",RooArgList(*singleflavour_coef,
941                                                                                                   *singleflavour_e_1VTX,
942                                                                                                   *singleflavour_e_1Vtx_NoSingleTrack,
943                                                                                                   *singleflavour_e_1VTX_2TrackVTX,
944                                                                                                   *singleflavour_e_1orMoreVTX_2TrackVTX_energyFraction_nofrag));
945     
946     
947   
948    RooFormulaVar* singleflavour_1VTX_0ST_3VTX_nofrag_coef=new RooFormulaVar((hypothesis+"_"+jetauthor+"_1VTX_0ST_3VTX_nofrag").c_str(),
949                                                                       (hypothesis+"_"+jetauthor+"_1VTX_0ST_3VTX_nofrag").c_str(),
950                                                                       "@0*@1*@2*@3*@4",RooArgList(*singleflavour_coef,
951                                                                                                   *singleflavour_e_1VTX,
952                                                                                                   *singleflavour_e_1Vtx_NoSingleTrack,
953                                                                                                   *singleflavour_e_1VTX_3TrackVTX,
954                                                                                                   *singleflavour_e_1orMoreVTX_3TrackVTX_energyFraction_nofrag));
955     
956   
957    RooFormulaVar* singleflavour_1VTX_0ST_4VTX_nofrag_coef=new RooFormulaVar((hypothesis+"_"+jetauthor+"_1VTX_0ST_4VTX_nofrag").c_str(),
958                                                                       (hypothesis+"_"+jetauthor+"_1VTX_0ST_4VTX_nofrag").c_str(),
959                                                                       "@0*@1*@2*@3*@4",RooArgList(*singleflavour_coef,
960                                                                                                   *singleflavour_e_1VTX,
961                                                                                                   *singleflavour_e_1Vtx_NoSingleTrack,
962                                                                                                   *singleflavour_e_1VTX_4TrackVTX,
963                                                                                                   *singleflavour_e_1orMoreVTX_4orMoreTrackVTX_energyFraction_nofrag));
964     
965    
966   RooFormulaVar* singleflavour_1VTX_0ST_5or6VTX_nofrag_coef=new RooFormulaVar((hypothesis+"_"+jetauthor+"_1VTX_0ST_5or6VTX_nofrag").c_str(),
967                                                                          (hypothesis+"_"+jetauthor+"_1VTX_0ST_5or6VTX_nofrag").c_str(),
968                                                                          "@0*@1*@2*@3*@4",RooArgList(*singleflavour_coef,
969                                                                                                      *singleflavour_e_1VTX,
970                                                                                                      *singleflavour_e_1Vtx_NoSingleTrack,
971                                                                                                      *singleflavour_e_1VTX_5or6TrackVTX,
972                                                                                                      *singleflavour_e_1orMoreVTX_4orMoreTrackVTX_energyFraction_nofrag));
973     
974     
975  RooFormulaVar* singleflavour_1VTX_0ST_7orMoreVTX_nofrag_coef=new RooFormulaVar((hypothesis+"_"+jetauthor+"_1VTX_0ST_7orMoreVTX_nofrag").c_str(),
976                                                                             (hypothesis+"_"+jetauthor+"_1VTX_0ST_7orMoreVTX_nofrag").c_str(),
977                                                                             "@0*@1*@2*@3*@4",RooArgList(*singleflavour_coef,
978                                                                                                         *singleflavour_e_1VTX,
979                                                                                                         *singleflavour_e_1Vtx_NoSingleTrack,
980                                                                                                         *singleflavour_e_1VTX_7orMoreTrackVTX,
981                                                                                                         *singleflavour_e_1orMoreVTX_4orMoreTrackVTX_energyFraction_nofrag));
982     
983     //1ST
984     
985    
986   RooFormulaVar* singleflavour_1VTX_1ST_2VTX_nofrag_coef=new RooFormulaVar((hypothesis+"_"+jetauthor+"_1VTX_1ST_2VTX_nofrag").c_str(),
987                                                                       (hypothesis+"_"+jetauthor+"_1VTX_1ST_2VTX_nofrag").c_str(),
988                                                                       "@0*@1*@2*@3*@4",RooArgList(*singleflavour_coef,
989                                                                                                   *singleflavour_e_1VTX,
990                                                                                                   *singleflavour_e_1Vtx_1SingleTrack,
991                                                                                                   *singleflavour_e_1VTX_2TrackVTX,
992                                                                                                   *singleflavour_e_1orMoreVTX_2TrackVTX_energyFraction_nofrag));
993     
994     
995   
996    RooFormulaVar* singleflavour_1VTX_1ST_3VTX_nofrag_coef=new RooFormulaVar((hypothesis+"_"+jetauthor+"_1VTX_1ST_3VTX_nofrag").c_str(),
997                                                                       (hypothesis+"_"+jetauthor+"_1VTX_1ST_3VTX_nofrag").c_str(),
998                                                                       "@0*@1*@2*@3*@4",RooArgList(*singleflavour_coef,
999                                                                                                   *singleflavour_e_1VTX,
1000                                                                                                   *singleflavour_e_1Vtx_1SingleTrack,
1001                                                                                                   *singleflavour_e_1VTX_3TrackVTX,
1002                                                                                                   *singleflavour_e_1orMoreVTX_3TrackVTX_energyFraction_nofrag));
1003     
1004   
1005    RooFormulaVar* singleflavour_1VTX_1ST_4VTX_nofrag_coef=new RooFormulaVar((hypothesis+"_"+jetauthor+"_1VTX_1ST_4VTX_nofrag").c_str(),
1006                                                                       (hypothesis+"_"+jetauthor+"_1VTX_1ST_4VTX_nofrag").c_str(),
1007                                                                       "@0*@1*@2*@3*@4",RooArgList(*singleflavour_coef,
1008                                                                                                   *singleflavour_e_1VTX,
1009                                                                                                   *singleflavour_e_1Vtx_1SingleTrack,
1010                                                                                                   *singleflavour_e_1VTX_4TrackVTX,
1011                                                                                                   *singleflavour_e_1orMoreVTX_4orMoreTrackVTX_energyFraction_nofrag));
1012     
1013   
1014    RooFormulaVar* singleflavour_1VTX_1ST_5or6VTX_nofrag_coef=new RooFormulaVar((hypothesis+"_"+jetauthor+"_1VTX_1ST_5or6VTX_nofrag").c_str(),
1015                                                                          (hypothesis+"_"+jetauthor+"_1VTX_1ST_5or6VTX_nofrag").c_str(),
1016                                                                          "@0*@1*@2*@3*@4",RooArgList(*singleflavour_coef,
1017                                                                                                      *singleflavour_e_1VTX,
1018                                                                                                      *singleflavour_e_1Vtx_1SingleTrack,
1019                                                                                                      *singleflavour_e_1VTX_5or6TrackVTX,
1020                                                                                                      *singleflavour_e_1orMoreVTX_4orMoreTrackVTX_energyFraction_nofrag));
1021     
1022  
1023     RooFormulaVar* singleflavour_1VTX_1ST_7orMoreVTX_nofrag_coef=new RooFormulaVar((hypothesis+"_"+jetauthor+"_1VTX_1ST_7orMoreVTX_nofrag").c_str(),
1024                                                                             (hypothesis+"_"+jetauthor+"_1VTX_1ST_7orMoreVTX_nofrag").c_str(),
1025                                                                             "@0*@1*@2*@3*@4",RooArgList(*singleflavour_coef,
1026                                                                                                         *singleflavour_e_1VTX,
1027                                                                                                         *singleflavour_e_1Vtx_1SingleTrack,
1028                                                                                                         *singleflavour_e_1VTX_7orMoreTrackVTX,
1029                                                                                                         *singleflavour_e_1orMoreVTX_4orMoreTrackVTX_energyFraction_nofrag));
1030     
1031     
1032     //2orMoreST
1033     
1034  
1035     RooFormulaVar* singleflavour_1VTX_2orMoreST_2VTX_nofrag_coef=new RooFormulaVar((hypothesis+"_"+jetauthor+"_1VTX_2orMoreST_2VTX_nofrag").c_str(),
1036                                                                             (hypothesis+"_"+jetauthor+"_1VTX_2orMoreST_2VTX_nofrag").c_str(),
1037                                                                             "@0*@1*@2*@3*@4",RooArgList(*singleflavour_coef,
1038                                                                                                         *singleflavour_e_1VTX,
1039                                                                                                         *singleflavour_e_1Vtx_2orMoreSingleTrack,
1040                                                                                                         *singleflavour_e_1VTX_2TrackVTX,
1041                                                                                                         *singleflavour_e_1orMoreVTX_2TrackVTX_energyFraction_nofrag));
1042     
1043     
1044   
1045    RooFormulaVar* singleflavour_1VTX_2orMoreST_3VTX_nofrag_coef=new RooFormulaVar((hypothesis+"_"+jetauthor+"_1VTX_2orMoreST_3VTX_nofrag").c_str(),
1046                                                                             (hypothesis+"_"+jetauthor+"_1VTX_2orMoreST_3VTX_nofrag").c_str(),
1047                                                                             "@0*@1*@2*@3*@4",RooArgList(*singleflavour_coef,
1048                                                                                                         *singleflavour_e_1VTX,
1049                                                                                                         *singleflavour_e_1Vtx_2orMoreSingleTrack,
1050                                                                                                         *singleflavour_e_1VTX_3TrackVTX,
1051                                                                                                         *singleflavour_e_1orMoreVTX_3TrackVTX_energyFraction_nofrag));
1052     
1053    
1054   RooFormulaVar* singleflavour_1VTX_2orMoreST_4VTX_nofrag_coef=new RooFormulaVar((hypothesis+"_"+jetauthor+"_1VTX_2orMoreST_4VTX_nofrag").c_str(),
1055                                                                             (hypothesis+"_"+jetauthor+"_1VTX_2orMoreST_4VTX_nofrag").c_str(),
1056                                                                             "@0*@1*@2*@3*@4",RooArgList(*singleflavour_coef,
1057                                                                                                         *singleflavour_e_1VTX,
1058                                                                                                         *singleflavour_e_1Vtx_2orMoreSingleTrack,
1059                                                                                                         *singleflavour_e_1VTX_4TrackVTX,
1060                                                                                                         *singleflavour_e_1orMoreVTX_4orMoreTrackVTX_energyFraction_nofrag));
1061     
1062   
1063    RooFormulaVar* singleflavour_1VTX_2orMoreST_5or6VTX_nofrag_coef=new RooFormulaVar((hypothesis+"_"+jetauthor+"_1VTX_2orMoreST_5or6VTX_nofrag").c_str(),
1064                                                                                (hypothesis+"_"+jetauthor+"_1VTX_2orMoreST_5or6VTX_nofrag").c_str(),
1065                                                                                "@0*@1*@2*@3*@4",RooArgList(*singleflavour_coef,
1066                                                                                                            *singleflavour_e_1VTX,
1067                                                                                                            *singleflavour_e_1Vtx_2orMoreSingleTrack,
1068                                                                                                            *singleflavour_e_1VTX_5or6TrackVTX,
1069                                                                                                            *singleflavour_e_1orMoreVTX_4orMoreTrackVTX_energyFraction_nofrag));
1070     
1071    
1072   RooFormulaVar* singleflavour_1VTX_2orMoreST_7orMoreVTX_nofrag_coef=new RooFormulaVar((hypothesis+"_"+jetauthor+"_1VTX_2orMoreST_7orMoreVTX_nofrag").c_str(),
1073                                                                                   (hypothesis+"_"+jetauthor+"_1VTX_2orMoreST_7orMoreVTX_nofrag").c_str(),
1074                                                                                   "@0*@1*@2*@3*@4",RooArgList(*singleflavour_coef,
1075                                                                                                               *singleflavour_e_1VTX,
1076                                                                                                               *singleflavour_e_1Vtx_2orMoreSingleTrack,
1077                                                                                                               *singleflavour_e_1VTX_7orMoreTrackVTX,
1078                                                                                                               *singleflavour_e_1orMoreVTX_4orMoreTrackVTX_energyFraction_nofrag));
1079     
1080     
1081     
1082     //2orMoreVTX
1083     
1084   
1085    RooFormulaVar* singleflavour_2orMoreVTX_4VTX_nofrag_coef=new RooFormulaVar((hypothesis+"_"+jetauthor+"_2orMoreVTX_4VTX_nofrag").c_str(),
1086                                                                         (hypothesis+"_"+jetauthor+"_2orMoreVTX_4VTX_nofrag").c_str(),
1087                                                                         "@0*@1*@2*@3",RooArgList(*singleflavour_coef,
1088                                                                                                  *singleflavour_e_2orMoreVTX,
1089                                                                                                  *singleflavour_e_2orMoreVTX_4TrackVTX,
1090                                                                                                  *singleflavour_e_1orMoreVTX_4orMoreTrackVTX_energyFraction_nofrag));
1091     
1092  
1093     RooFormulaVar* singleflavour_2orMoreVTX_5orMoreVTX_nofrag_coef=new RooFormulaVar((hypothesis+"_"+jetauthor+"_2orMoreVTX_5orMoreVTX_nofrag").c_str(),
1094                                                                               (hypothesis+"_"+jetauthor+"_2orMoreVTX_5orMoreVTX_nofrag").c_str(),
1095                                                                               "@0*@1*@2*@3",RooArgList(*singleflavour_coef,
1096                                                                                                        *singleflavour_e_2orMoreVTX,
1097                                                                                                        *singleflavour_e_2orMoreVTX_5orMoreTrackVTX,
1098                                                                                                        *singleflavour_e_1orMoreVTX_4orMoreTrackVTX_energyFraction_nofrag));
1099     
1100     
1101     
1102     //coef for noVTX case
1103     
1104   
1105    RooFormulaVar* singleflavour_noVTX_1ST_nofrag_coef=new RooFormulaVar((hypothesis+"_"+jetauthor+"_noVTX_1ST_nofrag").c_str(),
1106                                                                   (hypothesis+"_"+jetauthor+"_noVTX_1ST_nofrag").c_str(),
1107                                                                   "@0*@1*@2*@3",RooArgList(*singleflavour_coef,
1108                                                                                            *singleflavour_e_NoVTX,
1109                                                                                            *singleflavour_e_NoVtx_1SingleTrack,
1110                                                                                            *singleflavour_e_NoVtx_1SingleTrack_energyFraction_nofrag));
1111     
1112   
1113    RooFormulaVar* singleflavour_noVTX_2ST_nofrag_coef=new RooFormulaVar((hypothesis+"_"+jetauthor+"_noVTX_2ST_nofrag").c_str(),
1114                                                                   (hypothesis+"_"+jetauthor+"_noVTX_2ST_nofrag").c_str(),
1115                                                                   "@0*@1*@2*@3",RooArgList(*singleflavour_coef,
1116                                                                                            *singleflavour_e_NoVTX,
1117                                                                                            *singleflavour_e_NoVtx_2SingleTrack,
1118                                                                                            *singleflavour_e_NoVtx_2orMoreSingleTrack_energyFraction_nofrag));
1119     
1120  
1121     RooFormulaVar* singleflavour_noVTX_3orMoreST_nofrag_coef=new RooFormulaVar((hypothesis+"_"+jetauthor+"_noVTX_3orMoreST_nofrag").c_str(),
1122                                                                         (hypothesis+"_"+jetauthor+"_noVTX_3orMoreST_nofrag").c_str(),
1123                                                                         "@0*@1*@2*@3",RooArgList(*singleflavour_coef,
1124                                                                                                  *singleflavour_e_NoVTX,
1125                                                                                                  *singleflavour_e_NoVtx_3orMoreSingleTrack,
1126                                                                                                  *singleflavour_e_NoVtx_2orMoreSingleTrack_energyFraction_nofrag));
1127     
1128     
1129     //DUMMY PDF  
1130     Int_t singleflavour_noVTX_noSingleTrack_nbins(1);
1131     TArrayD singleflavour_noVTX_noSingleTrack_limits(singleflavour_noVTX_noSingleTrack_nbins+1);
1132     singleflavour_noVTX_noSingleTrack_limits[0]=0.;
1133     singleflavour_noVTX_noSingleTrack_limits[1]=1.00001;
1134     RooArgList* singleflavour_noVTX_noSingleTrack_list = new RooArgList((hypothesis+"_"+jetauthor+"_noVTX_noSingleTrack_list").c_str());
1135     RooParametricStepFunction* singleflavour_noVTX_noSingleTrack_pdf=new RooParametricStepFunction((hypothesis+"_"+jetauthor+"_noVTX_noSingleTrack_pdf").c_str(),
1136                                                                                                    (hypothesis+"_"+jetauthor+"_noVTX_noSingleTrack_pdf").c_str(),
1137                                                                                                    *significance3d,
1138                                                                                                    *singleflavour_noVTX_noSingleTrack_list,
1139                                                                                                    singleflavour_noVTX_noSingleTrack_limits,
1140                                                                                                    singleflavour_noVTX_noSingleTrack_nbins);
1141     
1142   
1143     if (retrieveHistoFromFile(refFileName,hypothesis+"_noVTX_significance3d_histo")==0)
1144     {
1145       ATH_MSG_ERROR(" Cannot get calibration histograms. JetFitterTag and JetFitterCOMB taggers will produce nonsense");
1146     }
1147     
1148     RooDataHist* singleflavour_noVTX_significance3d_histo=new RooDataHist((hypothesis+"_"+jetauthor+"_noVTX_significance3d_histo").c_str(),
1149                                                                           (hypothesis+"_"+jetauthor+"_noVTX_significance3d_histo").c_str(),
1150                                                                           *significance3d,
1151                                                                           retrieveHistoFromFile(refFileName,hypothesis+"_noVTX_significance3d_histo"),
1152                                                                           1.0);
1153     
1154     histogramsVector->push_back(singleflavour_noVTX_significance3d_histo);
1155     
1156     RooHistPdf* singleflavour_noVTX_significance3d_pdf=new RooHistPdf((hypothesis+"_"+jetauthor+"_noVTX_significance3d_pdf").c_str(),
1157                                                                       (hypothesis+"_"+jetauthor+"_noVTX_significance3d_pdf").c_str(),
1158                                                                       *significance3d,
1159                                                                       *singleflavour_noVTX_significance3d_histo);
1160 
1161     
1162     RooDataHist* singleflavour_noVTX_1SingleTrack_energyFraction_normal_histo=new RooDataHist((hypothesis+"_"+jetauthor+"_noVTX_1SingleTrack_energyFraction_normal_histo").c_str(),
1163                                                                                               (hypothesis+"_"+jetauthor+"_noVTX_1SingleTrack_energyFraction_normal_histo").c_str(),
1164                                                                                               *energyFraction,
1165                                                                                               retrieveHistoFromFile(refFileName,hypothesis+"_noVTX_1SingleTrack_energyFraction_normal_histo"),
1166                                                                                               1.0);
1167 
1168     histogramsVector->push_back(singleflavour_noVTX_1SingleTrack_energyFraction_normal_histo);
1169 
1170     
1171     RooHistPdf* singleflavour_noVTX_1SingleTrack_energyFraction_normal_pdf=new RooHistPdf((hypothesis+"_"+jetauthor+"_noVTX_1SingleTrack_energyFraction_normal_pdf").c_str(),
1172                                                                                    (hypothesis+"_"+jetauthor+"_noVTX_1SingleTrack_energyFraction_normal_pdf").c_str(),
1173                                                                                    *energyFraction,
1174                                                                                    *singleflavour_noVTX_1SingleTrack_energyFraction_normal_histo);
1175 
1176     
1177     
1178     RooDataHist* singleflavour_noVTX_2orMoreSingleTrack_energyFraction_normal_histo=new RooDataHist((hypothesis+"_"+jetauthor+"_noVTX_2orMoreSingleTrack_energyFraction_normal_histo").c_str(),
1179                                                                                              (hypothesis+"_"+jetauthor+"_noVTX_2orMoreSingleTrack_energyFraction_normal_histo").c_str(),
1180                                                                                              *energyFraction,
1181                                                                                              retrieveHistoFromFile(refFileName,hypothesis+"_noVTX_2orMoreSingleTrack_energyFraction_normal_histo"),
1182                                                                                              1.0);
1183 
1184     histogramsVector->push_back(singleflavour_noVTX_2orMoreSingleTrack_energyFraction_normal_histo);
1185     
1186     
1187     
1188     RooHistPdf* singleflavour_noVTX_2orMoreSingleTrack_energyFraction_normal_pdf=new RooHistPdf((hypothesis+"_"+jetauthor+"_noVTX_2orMoreSingleTrack_energyFraction_normal_pdf").c_str(),
1189                                                                                          (hypothesis+"_"+jetauthor+"_noVTX_2orMoreSingleTrack_energyFraction_normal_pdf").c_str(),
1190                                                                                          *energyFraction,
1191                                                                                          *singleflavour_noVTX_2orMoreSingleTrack_energyFraction_normal_histo);
1192     
1193     
1194     RooDataHist* singleflavour_1orMoreVTX_2TrackVTX_energyFraction_normal_histo=new RooDataHist((hypothesis+"_"+jetauthor+"_1orMoreVTX_2TrackVTX_energyFraction_normal_histo").c_str(),
1195                                                                                          (hypothesis+"_"+jetauthor+"_1orMoreVTX_2TrackVTX_energyFraction_normal_histo").c_str(),
1196                                                                                          *energyFraction,
1197                                                                                          retrieveHistoFromFile(refFileName,hypothesis+"_1orMoreVTX_2TrackVTX_energyFraction_normal_histo"),
1198                                                                                          1.0);
1199 
1200     histogramsVector->push_back(singleflavour_1orMoreVTX_2TrackVTX_energyFraction_normal_histo);
1201     
1202 
1203     RooHistPdf* singleflavour_1orMoreVTX_2TrackVTX_energyFraction_normal_pdf=new RooHistPdf((hypothesis+"_"+jetauthor+"_1orMoreVTX_2TrackVTX_energyFraction_normal_pdf").c_str(),
1204                                                                                      (hypothesis+"_"+jetauthor+"_1orMoreVTX_2TrackVTX_energyFraction_normal_pdf").c_str(),
1205                                                                                      *energyFraction,
1206                                                                                      *singleflavour_1orMoreVTX_2TrackVTX_energyFraction_normal_histo);
1207     
1208     
1209     RooDataHist* singleflavour_1orMoreVTX_3TrackVTX_energyFraction_normal_histo=new RooDataHist((hypothesis+"_"+jetauthor+"_1orMoreVTX_3TrackVTX_energyFraction_normal_histo").c_str(),
1210                                                                                          (hypothesis+"_"+jetauthor+"_1orMoreVTX_3TrackVTX_energyFraction_normal_histo").c_str(),
1211                                                                                          *energyFraction,
1212                                                                                          retrieveHistoFromFile(refFileName,hypothesis+"_1orMoreVTX_3TrackVTX_energyFraction_normal_histo"),
1213                                                                                          1.0);
1214 
1215     histogramsVector->push_back(singleflavour_1orMoreVTX_3TrackVTX_energyFraction_normal_histo);
1216 
1217     
1218     RooHistPdf* singleflavour_1orMoreVTX_3TrackVTX_energyFraction_normal_pdf=new RooHistPdf((hypothesis+"_"+jetauthor+"_1orMoreVTX_3TrackVTX_energyFraction_normal_pdf").c_str(),
1219                                                                                      (hypothesis+"_"+jetauthor+"_1orMoreVTX_3TrackVTX_energyFraction_normal_pdf").c_str(),
1220                                                                                      *energyFraction,
1221                                                                                      *singleflavour_1orMoreVTX_3TrackVTX_energyFraction_normal_histo);
1222     
1223     
1224     
1225     RooDataHist* singleflavour_1orMoreVTX_4orMoreTrackVTX_energyFraction_normal_histo=new RooDataHist((hypothesis+"_"+jetauthor+"_1orMoreVTX_4orMoreTrackVTX_energyFraction_normal_histo").c_str(),
1226                                                                                                (hypothesis+"_"+jetauthor+"_1orMoreVTX_4orMoreTrackVTX_energyFraction_normal_histo").c_str(),
1227                                                                                                *energyFraction,
1228                                                                                                retrieveHistoFromFile(refFileName,hypothesis+"_1orMoreVTX_4orMoreTrackVTX_energyFraction_normal_histo"),
1229                                                                                                1.0);
1230 
1231     histogramsVector->push_back(singleflavour_1orMoreVTX_4orMoreTrackVTX_energyFraction_normal_histo);
1232     
1233     RooHistPdf* singleflavour_1orMoreVTX_4orMoreTrackVTX_energyFraction_normal_pdf=new RooHistPdf((hypothesis+"_"+jetauthor+"_1orMoreVTX_4orMoreTrackVTX_energyFraction_normal_pdf").c_str(),
1234                                                                                            (hypothesis+"_"+jetauthor+"_1orMoreVTX_4orMoreTrackVTX_energyFraction_normal_pdf").c_str(),
1235                                                                                            *energyFraction,
1236                                                                                            *singleflavour_1orMoreVTX_4orMoreTrackVTX_energyFraction_normal_histo);
1237     
1238     
1239     RooDataHist* singleflavour_1orMoreVTX_significance3d_histo=new RooDataHist((hypothesis+"_"+jetauthor+"_1orMoreVTX_significance3d_histo").c_str(),
1240                                                                         (hypothesis+"_"+jetauthor+"_1orMoreVTX_significance3d_histo").c_str(),
1241                                                                         *significance3d,
1242                                                                         retrieveHistoFromFile(refFileName,hypothesis+"_1orMoreVTX_significance3d_histo"),
1243                                                                         1.0);
1244 
1245     histogramsVector->push_back(singleflavour_1orMoreVTX_significance3d_histo);
1246 
1247     
1248     RooHistPdf* singleflavour_1orMoreVTX_significance3d_pdf=new RooHistPdf((hypothesis+"_"+jetauthor+"_1orMoreVTX_significance3d_pdf").c_str(),
1249                                                                     (hypothesis+"_"+jetauthor+"_1orMoreVTX_significance3d_pdf").c_str(),
1250                                                                     *significance3d,
1251                                                                     *singleflavour_1orMoreVTX_significance3d_histo);
1252     
1253     
1254     RooDataHist* singleflavour_1orMoreVTX_2TrackVTX_mass_histo=new RooDataHist((hypothesis+"_"+jetauthor+"_1orMoreVTX_2TrackVTX_mass_histo").c_str(),
1255                                                                         (hypothesis+"_"+jetauthor+"_1orMoreVTX_2TrackVTX_mass_histo").c_str(),
1256                                                                         *mass,
1257                                                                         retrieveHistoFromFile(refFileName,hypothesis+"_1orMoreVTX_2TrackVTX_mass_histo"),
1258                                                                         1.0);
1259 
1260     histogramsVector->push_back(singleflavour_1orMoreVTX_2TrackVTX_mass_histo);
1261     
1262     
1263     RooHistPdf* singleflavour_1orMoreVTX_2TrackVTX_mass_pdf=new RooHistPdf((hypothesis+"_"+jetauthor+"_1orMoreVTX_2TrackVTX_mass_pdf").c_str(),
1264                                                                     (hypothesis+"_"+jetauthor+"_1orMoreVTX_2TrackVTX_mass_pdf").c_str(),
1265                                                                     *mass,
1266                                                                     *singleflavour_1orMoreVTX_2TrackVTX_mass_histo);
1267     
1268     RooDataHist* singleflavour_1orMoreVTX_3orMoreTrackVTX_mass_histo=new RooDataHist((hypothesis+"_"+jetauthor+"_1orMoreVTX_3orMoreTrackVTX_mass_histo").c_str(),
1269                                                                               (hypothesis+"_"+jetauthor+"_1orMoreVTX_3orMoreTrackVTX_mass_histo").c_str(),
1270                                                                               *mass,
1271                                                                               retrieveHistoFromFile(refFileName,hypothesis+"_1orMoreVTX_3orMoreTrackVTX_mass_histo"),
1272                                                                               1.0);
1273     
1274     histogramsVector->push_back(singleflavour_1orMoreVTX_3orMoreTrackVTX_mass_histo);
1275     
1276     RooHistPdf* singleflavour_1orMoreVTX_3orMoreTrackVTX_mass_pdf=new RooHistPdf((hypothesis+"_"+jetauthor+"_1orMoreVTX_3orMoreTrackVTX_mass_pdf").c_str(),
1277                                                                           (hypothesis+"_"+jetauthor+"_1orMoreVTX_3orMoreTrackVTX_mass_pdf").c_str(),
1278                                                                           *mass,
1279                                                                           *singleflavour_1orMoreVTX_3orMoreTrackVTX_mass_histo);
1280     
1281     
1282     
1283     RooProdPdf* singleflavour_noVTX_0ST_pdf=new RooProdPdf((hypothesis+"_"+jetauthor+"_noVTX_0ST_pdf").c_str(),
1284                                                     (hypothesis+"_"+jetauthor+"_noVTX_0ST_pdf").c_str(),
1285                                                     RooArgList(*singleflavour_noVTX_noSingleTrack_pdf));
1286     
1287     RooAddPdf* singleflavour_noVTX_0ST_pdf_add=new RooAddPdf((hypothesis+"_"+jetauthor+"_noVTX_0ST_pdf_add").c_str(),
1288                                                       (hypothesis+"_"+jetauthor+"_noVTX_0ST_pdf_add").c_str(),
1289                                                       RooArgList(*singleflavour_noVTX_0ST_pdf),
1290                                                       RooArgList(*singleflavour_noVTX_0ST_coef));
1291     
1292     
1293     RooProdPdf* singleflavour_noVTX_1ST_normal_pdf=new RooProdPdf((hypothesis+"_"+jetauthor+"_noVTX_1ST_normal_pdf").c_str(),
1294                                                            (hypothesis+"_"+jetauthor+"_noVTX_1ST_normal_pdf").c_str(),
1295                                                            RooArgList(*singleflavour_noVTX_1SingleTrack_energyFraction_normal_pdf,
1296                                                                       *singleflavour_noVTX_significance3d_pdf));
1297     
1298     RooAddPdf* singleflavour_noVTX_1ST_normal_pdf_add=new RooAddPdf((hypothesis+"_"+jetauthor+"_noVTX_1ST_normal_pdf_add").c_str(),
1299                                                              (hypothesis+"_"+jetauthor+"_noVTX_1ST_normal_pdf_add").c_str(),
1300                                                              RooArgList(*singleflavour_noVTX_1ST_normal_pdf),
1301                                                              RooArgList(*singleflavour_noVTX_1ST_normal_coef));
1302     
1303     RooProdPdf* singleflavour_noVTX_2ST_normal_pdf=new RooProdPdf((hypothesis+"_"+jetauthor+"_noVTX_2ST_normal_pdf").c_str(),
1304                                                            (hypothesis+"_"+jetauthor+"_noVTX_2ST_normal_pdf").c_str(),
1305                                                            RooArgList(*singleflavour_noVTX_2orMoreSingleTrack_energyFraction_normal_pdf,
1306                                                                       *singleflavour_noVTX_significance3d_pdf));
1307     
1308     RooAddPdf* singleflavour_noVTX_2ST_normal_pdf_add=new RooAddPdf((hypothesis+"_"+jetauthor+"_noVTX_2ST_normal_pdf_add").c_str(),
1309                                                              (hypothesis+"_"+jetauthor+"_noVTX_2ST_normal_pdf_add").c_str(),
1310                                                              RooArgList(*singleflavour_noVTX_2ST_normal_pdf),
1311                                                              RooArgList(*singleflavour_noVTX_2ST_normal_coef));
1312     
1313     RooProdPdf* singleflavour_noVTX_3orMoreST_normal_pdf=new RooProdPdf((hypothesis+"_"+jetauthor+"_noVTX_3orMoreST_normal_pdf").c_str(),
1314                                                                  (hypothesis+"_"+jetauthor+"_noVTX_3orMoreST_normal_pdf").c_str(),
1315                                                                  RooArgList(*singleflavour_noVTX_2orMoreSingleTrack_energyFraction_normal_pdf,
1316                                                                             *singleflavour_noVTX_significance3d_pdf));
1317     
1318     RooAddPdf* singleflavour_noVTX_3orMoreST_normal_pdf_add=new RooAddPdf((hypothesis+"_"+jetauthor+"_noVTX_3orMoreST_normal_pdf_add").c_str(),
1319                                                                  (hypothesis+"_"+jetauthor+"_noVTX_3orMoreST_normal_pdf_add").c_str(),
1320                                                                    RooArgList(*singleflavour_noVTX_3orMoreST_normal_pdf),
1321                                                                    RooArgList(*singleflavour_noVTX_3orMoreST_normal_coef));
1322     
1323     
1324     //1
1325     
1326     RooProdPdf* singleflavour_1VTX_0ST_2VTX_normal_pdf=new RooProdPdf((hypothesis+"_"+jetauthor+"_1VTX_0ST_2VTX_normal_pdf").c_str(),
1327                                                                (hypothesis+"_"+jetauthor+"_1VTX_0ST_2VTX_normal_pdf").c_str(),
1328                                                                RooArgList(*singleflavour_1orMoreVTX_2TrackVTX_mass_pdf,
1329                                                                           *singleflavour_1orMoreVTX_significance3d_pdf,
1330                                                                           *singleflavour_1orMoreVTX_2TrackVTX_energyFraction_normal_pdf));
1331     
1332     RooAddPdf* singleflavour_1VTX_0ST_2VTX_normal_pdf_add=new RooAddPdf((hypothesis+"_"+jetauthor+"_1VTX_0ST_2VTX_normal_pdf_add").c_str(),
1333                                                                  (hypothesis+"_"+jetauthor+"_1VTX_0ST_2VTX_normal_pdf_add").c_str(),
1334                                                                  RooArgList(*singleflavour_1VTX_0ST_2VTX_normal_pdf),
1335                                                                  RooArgList(*singleflavour_1VTX_0ST_2VTX_normal_coef));
1336     
1337     RooProdPdf* singleflavour_1VTX_0ST_3VTX_normal_pdf=new RooProdPdf((hypothesis+"_"+jetauthor+"_1VTX_0ST_3VTX_normal_pdf").c_str(),
1338                                                                (hypothesis+"_"+jetauthor+"_1VTX_0ST_3VTX_normal_pdf").c_str(),
1339                                                                RooArgList(*singleflavour_1orMoreVTX_3orMoreTrackVTX_mass_pdf,
1340                                                                           *singleflavour_1orMoreVTX_significance3d_pdf,
1341                                                                           *singleflavour_1orMoreVTX_3TrackVTX_energyFraction_normal_pdf));
1342     
1343     RooAddPdf* singleflavour_1VTX_0ST_3VTX_normal_pdf_add=new RooAddPdf((hypothesis+"_"+jetauthor+"_1VTX_0ST_3VTX_normal_pdf_add").c_str(),
1344                                                                  (hypothesis+"_"+jetauthor+"_1VTX_0ST_3VTX_normal_pdf_add").c_str(),
1345                                                                  RooArgList(*singleflavour_1VTX_0ST_3VTX_normal_pdf),
1346                                                                  RooArgList(*singleflavour_1VTX_0ST_3VTX_normal_coef));
1347     
1348     RooProdPdf* singleflavour_1VTX_0ST_4VTX_normal_pdf=new RooProdPdf((hypothesis+"_"+jetauthor+"_1VTX_0ST_4VTX_normal_pdf").c_str(),
1349                                                                (hypothesis+"_"+jetauthor+"_1VTX_0ST_4VTX_normal_pdf").c_str(),
1350                                                                RooArgList(*singleflavour_1orMoreVTX_3orMoreTrackVTX_mass_pdf,
1351                                                                           *singleflavour_1orMoreVTX_significance3d_pdf,
1352                                                                           *singleflavour_1orMoreVTX_4orMoreTrackVTX_energyFraction_normal_pdf));
1353     
1354     RooAddPdf* singleflavour_1VTX_0ST_4VTX_normal_pdf_add=new RooAddPdf((hypothesis+"_"+jetauthor+"_1VTX_0ST_4VTX_normal_pdf_add").c_str(),
1355                                                                  (hypothesis+"_"+jetauthor+"_1VTX_0ST_4VTX_normal_pdf_add").c_str(),
1356                                                                  RooArgList(*singleflavour_1VTX_0ST_4VTX_normal_pdf),
1357                                                                  RooArgList(*singleflavour_1VTX_0ST_4VTX_normal_coef));
1358     
1359     
1360     RooProdPdf* singleflavour_1VTX_0ST_5or6VTX_normal_pdf=new RooProdPdf((hypothesis+"_"+jetauthor+"_1VTX_0ST_5or6VTX_normal_pdf").c_str(),
1361                                                                   (hypothesis+"_"+jetauthor+"_1VTX_0ST_5or6VTX_normal_pdf").c_str(),
1362                                                                   RooArgList(*singleflavour_1orMoreVTX_3orMoreTrackVTX_mass_pdf,
1363                                                                              *singleflavour_1orMoreVTX_significance3d_pdf,
1364                                                                              *singleflavour_1orMoreVTX_4orMoreTrackVTX_energyFraction_normal_pdf));
1365     
1366     RooAddPdf* singleflavour_1VTX_0ST_5or6VTX_normal_pdf_add=new RooAddPdf((hypothesis+"_"+jetauthor+"_1VTX_0ST_5or6VTX_normal_pdf_add").c_str(),
1367                                                                     (hypothesis+"_"+jetauthor+"_1VTX_0ST_5or6VTX_normal_pdf_add").c_str(),
1368                                                                     RooArgList(*singleflavour_1VTX_0ST_5or6VTX_normal_pdf),
1369                                                                     RooArgList(*singleflavour_1VTX_0ST_5or6VTX_normal_coef));
1370   
1371     RooProdPdf* singleflavour_1VTX_0ST_7orMoreVTX_normal_pdf=new RooProdPdf((hypothesis+"_"+jetauthor+"_1VTX_0ST_7orMoreVTX_normal_pdf").c_str(),
1372                                                                      (hypothesis+"_"+jetauthor+"_1VTX_0ST_7orMore_pdf").c_str(),
1373                                                                      RooArgList(*singleflavour_1orMoreVTX_3orMoreTrackVTX_mass_pdf,
1374                                                                                 *singleflavour_1orMoreVTX_significance3d_pdf,
1375                                                                                 *singleflavour_1orMoreVTX_4orMoreTrackVTX_energyFraction_normal_pdf));
1376     
1377     
1378     RooAddPdf* singleflavour_1VTX_0ST_7orMoreVTX_normal_pdf_add=new RooAddPdf((hypothesis+"_"+jetauthor+"_1VTX_0ST_7orMoreVTX_normal_pdf_add").c_str(),
1379                                                                        (hypothesis+"_"+jetauthor+"_1VTX_0ST_7orMoreVTX_normal_pdf_add").c_str(),
1380                                                                        RooArgList(*singleflavour_1VTX_0ST_7orMoreVTX_normal_pdf),
1381                                                                        RooArgList(*singleflavour_1VTX_0ST_7orMoreVTX_normal_coef));
1382     
1383     
1384     
1385     //1ST
1386     
1387     RooProdPdf* singleflavour_1VTX_1ST_2VTX_normal_pdf=new RooProdPdf((hypothesis+"_"+jetauthor+"_1VTX_1ST_2VTX_normal_pdf").c_str(),
1388                                                                (hypothesis+"_"+jetauthor+"_1VTX_1ST_2VTX_normal_pdf").c_str(),
1389                                                                RooArgList(*singleflavour_1orMoreVTX_2TrackVTX_mass_pdf,
1390                                                                           *singleflavour_1orMoreVTX_significance3d_pdf,
1391                                                                           *singleflavour_1orMoreVTX_2TrackVTX_energyFraction_normal_pdf));
1392     
1393     RooAddPdf* singleflavour_1VTX_1ST_2VTX_normal_pdf_add=new RooAddPdf((hypothesis+"_"+jetauthor+"_1VTX_1ST_2VTX_normal_pdf_add").c_str(),
1394                                                                  (hypothesis+"_"+jetauthor+"_1VTX_1ST_2VTX_normal_pdf_add").c_str(),
1395                                                                  RooArgList(*singleflavour_1VTX_1ST_2VTX_normal_pdf),
1396                                                                  RooArgList(*singleflavour_1VTX_1ST_2VTX_normal_coef));
1397     
1398     RooProdPdf* singleflavour_1VTX_1ST_3VTX_normal_pdf=new RooProdPdf((hypothesis+"_"+jetauthor+"_1VTX_1ST_3VTX_normal_pdf").c_str(),
1399                                                                (hypothesis+"_"+jetauthor+"_1VTX_1ST_3VTX_normal_pdf").c_str(),
1400                                                                RooArgList(*singleflavour_1orMoreVTX_3orMoreTrackVTX_mass_pdf,
1401                                                                           *singleflavour_1orMoreVTX_significance3d_pdf,
1402                                                                           *singleflavour_1orMoreVTX_3TrackVTX_energyFraction_normal_pdf));
1403     
1404     RooAddPdf* singleflavour_1VTX_1ST_3VTX_normal_pdf_add=new RooAddPdf((hypothesis+"_"+jetauthor+"_1VTX_1ST_3VTX_normal_pdf_add").c_str(),
1405                                                                  (hypothesis+"_"+jetauthor+"_1VTX_1ST_3VTX_normal_pdf_add").c_str(),
1406                                                                  RooArgList(*singleflavour_1VTX_1ST_3VTX_normal_pdf),
1407                                                                  RooArgList(*singleflavour_1VTX_1ST_3VTX_normal_coef));
1408   
1409     RooProdPdf* singleflavour_1VTX_1ST_4VTX_normal_pdf=new RooProdPdf((hypothesis+"_"+jetauthor+"_1VTX_1ST_4VTX_normal_pdf").c_str(),
1410                                                                (hypothesis+"_"+jetauthor+"_1VTX_1ST_4VTX_normal_pdf").c_str(),
1411                                                                RooArgList(*singleflavour_1orMoreVTX_3orMoreTrackVTX_mass_pdf,
1412                                                                           *singleflavour_1orMoreVTX_significance3d_pdf,
1413                                                                           *singleflavour_1orMoreVTX_4orMoreTrackVTX_energyFraction_normal_pdf));
1414     
1415     RooAddPdf* singleflavour_1VTX_1ST_4VTX_normal_pdf_add=new RooAddPdf((hypothesis+"_"+jetauthor+"_1VTX_1ST_4VTX_normal_pdf_add").c_str(),
1416                                                                  (hypothesis+"_"+jetauthor+"_1VTX_1ST_4VTX_normal_pdf_add").c_str(),
1417                                                                  RooArgList(*singleflavour_1VTX_1ST_4VTX_normal_pdf),
1418                                                                  RooArgList(*singleflavour_1VTX_1ST_4VTX_normal_coef));
1419     
1420     
1421     RooProdPdf* singleflavour_1VTX_1ST_5or6VTX_normal_pdf=new RooProdPdf((hypothesis+"_"+jetauthor+"_1VTX_1ST_5or6VTX_normal_pdf").c_str(),
1422                                                                   (hypothesis+"_"+jetauthor+"_1VTX_1ST_5or6VTX_normal_pdf").c_str(),
1423                                                                   RooArgList(*singleflavour_1orMoreVTX_3orMoreTrackVTX_mass_pdf,
1424                                                                              *singleflavour_1orMoreVTX_significance3d_pdf,
1425                                                                              *singleflavour_1orMoreVTX_4orMoreTrackVTX_energyFraction_normal_pdf));
1426     
1427     RooAddPdf* singleflavour_1VTX_1ST_5or6VTX_normal_pdf_add=new RooAddPdf((hypothesis+"_"+jetauthor+"_1VTX_1ST_5or6VTX_normal_pdf_add").c_str(),
1428                                                                     (hypothesis+"_"+jetauthor+"_1VTX_1ST_5or6VTX_normal_pdf_add").c_str(),
1429                                                                     RooArgList(*singleflavour_1VTX_1ST_5or6VTX_normal_pdf),
1430                                                                     RooArgList(*singleflavour_1VTX_1ST_5or6VTX_normal_coef));
1431     
1432     RooProdPdf* singleflavour_1VTX_1ST_7orMoreVTX_normal_pdf=new RooProdPdf((hypothesis+"_"+jetauthor+"_1VTX_1ST_7orMoreVTX_normal_pdf").c_str(),
1433                                                                      (hypothesis+"_"+jetauthor+"_1VTX_1ST_7orMoreVTX_normal_pdf").c_str(),
1434                                                                      RooArgList(*singleflavour_1orMoreVTX_3orMoreTrackVTX_mass_pdf,
1435                                                                                 *singleflavour_1orMoreVTX_significance3d_pdf,
1436                                                                                 *singleflavour_1orMoreVTX_4orMoreTrackVTX_energyFraction_normal_pdf));
1437     
1438     
1439     RooAddPdf* singleflavour_1VTX_1ST_7orMoreVTX_normal_pdf_add=new RooAddPdf((hypothesis+"_"+jetauthor+"_1VTX_1ST_7orMoreVTX_normal_pdf_add").c_str(),
1440                                                                        (hypothesis+"_"+jetauthor+"_1VTX_1ST_7orMoreVTX_normal_pdf_add").c_str(),
1441                                                                        RooArgList(*singleflavour_1VTX_1ST_7orMoreVTX_normal_pdf),
1442                                                                        RooArgList(*singleflavour_1VTX_1ST_7orMoreVTX_normal_coef));
1443     
1444     
1445     //2orMoreST
1446     
1447     
1448     RooProdPdf* singleflavour_1VTX_2orMoreST_2VTX_normal_pdf=new RooProdPdf((hypothesis+"_"+jetauthor+"_1VTX_2orMoreST_2VTX_normal_pdf").c_str(),
1449                                                                      (hypothesis+"_"+jetauthor+"_1VTX_2orMoreST_2VTX_normal_pdf").c_str(),
1450                                                                      RooArgList(*singleflavour_1orMoreVTX_2TrackVTX_mass_pdf,
1451                                                                                 *singleflavour_1orMoreVTX_significance3d_pdf,
1452                                                                                 *singleflavour_1orMoreVTX_2TrackVTX_energyFraction_normal_pdf));
1453     
1454     RooAddPdf* singleflavour_1VTX_2orMoreST_2VTX_normal_pdf_add=new RooAddPdf((hypothesis+"_"+jetauthor+"_1VTX_2orMoreST_2VTX_normal_pdf_add").c_str(),
1455                                                                        (hypothesis+"_"+jetauthor+"_1VTX_2orMoreST_2VTX_normal_pdf_add").c_str(),
1456                                                                        RooArgList(*singleflavour_1VTX_2orMoreST_2VTX_normal_pdf),
1457                                                                        RooArgList(*singleflavour_1VTX_2orMoreST_2VTX_normal_coef));
1458     
1459     RooProdPdf* singleflavour_1VTX_2orMoreST_3VTX_normal_pdf=new RooProdPdf((hypothesis+"_"+jetauthor+"_1VTX_2orMoreST_3VTX_normal_pdf").c_str(),
1460                                                                      (hypothesis+"_"+jetauthor+"_1VTX_2orMoreST_3VTX_normal_pdf").c_str(),
1461                                                                      RooArgList(*singleflavour_1orMoreVTX_3orMoreTrackVTX_mass_pdf,
1462                                                                                 *singleflavour_1orMoreVTX_significance3d_pdf,
1463                                                                                 *singleflavour_1orMoreVTX_3TrackVTX_energyFraction_normal_pdf));
1464     
1465     RooAddPdf* singleflavour_1VTX_2orMoreST_3VTX_normal_pdf_add=new RooAddPdf((hypothesis+"_"+jetauthor+"_1VTX_2orMoreST_3VTX_normal_pdf_add").c_str(),
1466                                                                        (hypothesis+"_"+jetauthor+"_1VTX_2orMoreST_3VTX_normal_pdf_add").c_str(),
1467                                                                        RooArgList(*singleflavour_1VTX_2orMoreST_3VTX_normal_pdf),
1468                                                                        RooArgList(*singleflavour_1VTX_2orMoreST_3VTX_normal_coef));
1469     
1470     RooProdPdf* singleflavour_1VTX_2orMoreST_4VTX_normal_pdf=new RooProdPdf((hypothesis+"_"+jetauthor+"_1VTX_2orMoreST_4VTX_normal_pdf").c_str(),
1471                                                                      (hypothesis+"_"+jetauthor+"_1VTX_2orMoreST_4VTX_normal_pdf").c_str(),
1472                                                                      RooArgList(*singleflavour_1orMoreVTX_3orMoreTrackVTX_mass_pdf,
1473                                                                                 *singleflavour_1orMoreVTX_significance3d_pdf,
1474                                                                                 *singleflavour_1orMoreVTX_4orMoreTrackVTX_energyFraction_normal_pdf));
1475     
1476     RooAddPdf* singleflavour_1VTX_2orMoreST_4VTX_normal_pdf_add=new RooAddPdf((hypothesis+"_"+jetauthor+"_1VTX_2orMoreST_4VTX_normal_pdf_add").c_str(),
1477                                                                        (hypothesis+"_"+jetauthor+"_1VTX_2orMoreST_4VTX_normal_pdf_add").c_str(),
1478                                                                        RooArgList(*singleflavour_1VTX_2orMoreST_4VTX_normal_pdf),
1479                                                                        RooArgList(*singleflavour_1VTX_2orMoreST_4VTX_normal_coef));
1480     
1481     
1482     RooProdPdf* singleflavour_1VTX_2orMoreST_5or6VTX_normal_pdf=new RooProdPdf((hypothesis+"_"+jetauthor+"_1VTX_2orMoreST_5or6VTX_normal_pdf").c_str(),
1483                                                                         (hypothesis+"_"+jetauthor+"_1VTX_2orMoreST_5or6VTX_normal_pdf").c_str(),
1484                                                                         RooArgList(*singleflavour_1orMoreVTX_3orMoreTrackVTX_mass_pdf,
1485                                                                                    *singleflavour_1orMoreVTX_significance3d_pdf,
1486                                                                                    *singleflavour_1orMoreVTX_4orMoreTrackVTX_energyFraction_normal_pdf));
1487     
1488     RooAddPdf* singleflavour_1VTX_2orMoreST_5or6VTX_normal_pdf_add=new RooAddPdf((hypothesis+"_"+jetauthor+"_1VTX_2orMoreST_5or6VTX_normal_pdf_add").c_str(),
1489                                                                           (hypothesis+"_"+jetauthor+"_1VTX_2orMoreST_5or6VTX_normal_pdf_add").c_str(),
1490                                                                           RooArgList(*singleflavour_1VTX_2orMoreST_5or6VTX_normal_pdf),
1491                                                                           RooArgList(*singleflavour_1VTX_2orMoreST_5or6VTX_normal_coef));
1492     
1493     
1494     RooProdPdf* singleflavour_1VTX_2orMoreST_7orMoreVTX_normal_pdf=new RooProdPdf((hypothesis+"_"+jetauthor+"_1VTX_2orMoreST_7orMoreVTX_normal_pdf").c_str(),
1495                                                                            (hypothesis+"_"+jetauthor+"_1VTX_2orMoreST_7orMoreVTX_normal_pdf").c_str(),
1496                                                                            RooArgList(*singleflavour_1orMoreVTX_3orMoreTrackVTX_mass_pdf,
1497                                                                                       *singleflavour_1orMoreVTX_significance3d_pdf,
1498                                                                                       *singleflavour_1orMoreVTX_4orMoreTrackVTX_energyFraction_normal_pdf));
1499     
1500     RooAddPdf* singleflavour_1VTX_2orMoreST_7orMoreVTX_normal_pdf_add=new RooAddPdf((hypothesis+"_"+jetauthor+"_1VTX_2orMoreST_7orMoreVTX_normal_pdf_add").c_str(),
1501                                                                              (hypothesis+"_"+jetauthor+"_1VTX_2orMoreST_7orMoreVTX_normal_pdf_add").c_str(),
1502                                                                              RooArgList(*singleflavour_1VTX_2orMoreST_7orMoreVTX_normal_pdf),
1503                                                                              RooArgList(*singleflavour_1VTX_2orMoreST_7orMoreVTX_normal_coef));
1504     
1505     
1506     
1507     //2orMore
1508     
1509     RooProdPdf* singleflavour_2orMoreVTX_4VTX_normal_pdf=new RooProdPdf((hypothesis+"_"+jetauthor+"_2orMoreVTX_4VTX_normal_pdf").c_str(),
1510                                                                  (hypothesis+"_"+jetauthor+"_2orMoreVTX_4VTX_normal_pdf").c_str(),
1511                                                                  RooArgList(*singleflavour_1orMoreVTX_3orMoreTrackVTX_mass_pdf,
1512                                                                             *singleflavour_1orMoreVTX_significance3d_pdf,
1513                                                                             *singleflavour_1orMoreVTX_4orMoreTrackVTX_energyFraction_normal_pdf));
1514     
1515     RooAddPdf* singleflavour_2orMoreVTX_4VTX_normal_pdf_add=new RooAddPdf((hypothesis+"_"+jetauthor+"_2orMoreVTX_4VTX_normal_pdf_add").c_str(),
1516                                                                    (hypothesis+"_"+jetauthor+"_2orMoreVTX_4VTX_normal_pdf_add").c_str(),
1517                                                                    RooArgList(*singleflavour_2orMoreVTX_4VTX_normal_pdf),
1518                                                                    RooArgList(*singleflavour_2orMoreVTX_4VTX_normal_coef));
1519     
1520     
1521     
1522     RooProdPdf* singleflavour_2orMoreVTX_5orMoreVTX_normal_pdf=new RooProdPdf((hypothesis+"_"+jetauthor+"_2orMoreVTX_5orMoreVTX_normal_pdf").c_str(),
1523                                                                        (hypothesis+"_"+jetauthor+"_2orMoreVTX_5orMoreVTX_normal_pdf").c_str(),
1524                                                                        RooArgList(*singleflavour_1orMoreVTX_3orMoreTrackVTX_mass_pdf,
1525                                                                                   *singleflavour_1orMoreVTX_significance3d_pdf,
1526                                                                                   *singleflavour_1orMoreVTX_4orMoreTrackVTX_energyFraction_normal_pdf));
1527     
1528     RooAddPdf* singleflavour_2orMoreVTX_5orMoreVTX_normal_pdf_add=new RooAddPdf((hypothesis+"_"+jetauthor+"_2orMoreVTX_5orMoreVTX_normal_pdf_add").c_str(),
1529                                                                          (hypothesis+"_"+jetauthor+"_2orMoreVTX_5orMoreVTX_normal_pdf_add").c_str(),
1530                                                                          RooArgList(*singleflavour_2orMoreVTX_5orMoreVTX_normal_pdf),
1531                                                                          RooArgList(*singleflavour_2orMoreVTX_5orMoreVTX_normal_coef));
1532     
1533     //SAME FOR NOFRAG CASE...
1534     
1535     RooProdPdf* singleflavour_noVTX_1ST_nofrag_pdf=new RooProdPdf((hypothesis+"_"+jetauthor+"_noVTX_1ST_nofrag_pdf").c_str(),
1536                                                            (hypothesis+"_"+jetauthor+"_noVTX_1ST_nofrag_pdf").c_str(),
1537                                                            RooArgList(*singleflavour_noVTX_significance3d_pdf));
1538     
1539     RooAddPdf* singleflavour_noVTX_1ST_nofrag_pdf_add=new RooAddPdf((hypothesis+"_"+jetauthor+"_noVTX_1ST_nofrag_pdf_add").c_str(),
1540                                                              (hypothesis+"_"+jetauthor+"_noVTX_1ST_nofrag_pdf_add").c_str(),
1541                                                              RooArgList(*singleflavour_noVTX_1ST_nofrag_pdf),
1542                                                              RooArgList(*singleflavour_noVTX_1ST_nofrag_coef));
1543     
1544     RooProdPdf* singleflavour_noVTX_2ST_nofrag_pdf=new RooProdPdf((hypothesis+"_"+jetauthor+"_noVTX_2ST_nofrag_pdf").c_str(),
1545                                                            (hypothesis+"_"+jetauthor+"_noVTX_2ST_nofrag_pdf").c_str(),
1546                                                            RooArgList(*singleflavour_noVTX_significance3d_pdf));
1547     
1548     RooAddPdf* singleflavour_noVTX_2ST_nofrag_pdf_add=new RooAddPdf((hypothesis+"_"+jetauthor+"_noVTX_2ST_nofrag_pdf_add").c_str(),
1549                                                              (hypothesis+"_"+jetauthor+"_noVTX_2ST_nofrag_pdf_add").c_str(),
1550                                                              RooArgList(*singleflavour_noVTX_2ST_nofrag_pdf),
1551                                                              RooArgList(*singleflavour_noVTX_2ST_nofrag_coef));
1552     
1553     RooProdPdf* singleflavour_noVTX_3orMoreST_nofrag_pdf=new RooProdPdf((hypothesis+"_"+jetauthor+"_noVTX_3orMoreST_nofrag_pdf").c_str(),
1554                                                                  (hypothesis+"_"+jetauthor+"_noVTX_3orMoreST_nofrag_pdf").c_str(),
1555                                                                  RooArgList(*singleflavour_noVTX_significance3d_pdf));
1556     
1557     RooAddPdf* singleflavour_noVTX_3orMoreST_nofrag_pdf_add=new RooAddPdf((hypothesis+"_"+jetauthor+"_noVTX_3orMoreST_nofrag_pdf_add").c_str(),
1558                                                                    (hypothesis+"_"+jetauthor+"_noVTX_3orMoreST_nofrag_pdf_add").c_str(),
1559                                                                    RooArgList(*singleflavour_noVTX_3orMoreST_nofrag_pdf),
1560                                                                    RooArgList(*singleflavour_noVTX_3orMoreST_nofrag_coef));
1561     
1562     
1563     //1
1564     
1565     RooProdPdf* singleflavour_1VTX_0ST_2VTX_nofrag_pdf=new RooProdPdf((hypothesis+"_"+jetauthor+"_1VTX_0ST_2VTX_nofrag_pdf").c_str(),
1566                                                                (hypothesis+"_"+jetauthor+"_1VTX_0ST_2VTX_nofrag_pdf").c_str(),
1567                                                                RooArgList(*singleflavour_1orMoreVTX_2TrackVTX_mass_pdf,
1568                                                                           *singleflavour_1orMoreVTX_significance3d_pdf));
1569     
1570     RooAddPdf* singleflavour_1VTX_0ST_2VTX_nofrag_pdf_add=new RooAddPdf((hypothesis+"_"+jetauthor+"_1VTX_0ST_2VTX_nofrag_pdf_add").c_str(),
1571                                                                  (hypothesis+"_"+jetauthor+"_1VTX_0ST_2VTX_nofrag_pdf_add").c_str(),
1572                                                                  RooArgList(*singleflavour_1VTX_0ST_2VTX_nofrag_pdf),
1573                                                                  RooArgList(*singleflavour_1VTX_0ST_2VTX_nofrag_coef));
1574     
1575     RooProdPdf* singleflavour_1VTX_0ST_3VTX_nofrag_pdf=new RooProdPdf((hypothesis+"_"+jetauthor+"_1VTX_0ST_3VTX_nofrag_pdf").c_str(),
1576                                                                (hypothesis+"_"+jetauthor+"_1VTX_0ST_3VTX_nofrag_pdf").c_str(),
1577                                                                RooArgList(*singleflavour_1orMoreVTX_3orMoreTrackVTX_mass_pdf,
1578                                                                           *singleflavour_1orMoreVTX_significance3d_pdf));
1579     
1580     RooAddPdf* singleflavour_1VTX_0ST_3VTX_nofrag_pdf_add=new RooAddPdf((hypothesis+"_"+jetauthor+"_1VTX_0ST_3VTX_nofrag_pdf_add").c_str(),
1581                                                                  (hypothesis+"_"+jetauthor+"_1VTX_0ST_3VTX_nofrag_pdf_add").c_str(),
1582                                                                  RooArgList(*singleflavour_1VTX_0ST_3VTX_nofrag_pdf),
1583                                                                  RooArgList(*singleflavour_1VTX_0ST_3VTX_nofrag_coef));
1584     
1585     RooProdPdf* singleflavour_1VTX_0ST_4VTX_nofrag_pdf=new RooProdPdf((hypothesis+"_"+jetauthor+"_1VTX_0ST_4VTX_nofrag_pdf").c_str(),
1586                                                                (hypothesis+"_"+jetauthor+"_1VTX_0ST_4VTX_nofrag_pdf").c_str(),
1587                                                                RooArgList(*singleflavour_1orMoreVTX_3orMoreTrackVTX_mass_pdf,
1588                                                                           *singleflavour_1orMoreVTX_significance3d_pdf));
1589     
1590     RooAddPdf* singleflavour_1VTX_0ST_4VTX_nofrag_pdf_add=new RooAddPdf((hypothesis+"_"+jetauthor+"_1VTX_0ST_4VTX_nofrag_pdf_add").c_str(),
1591                                                                  (hypothesis+"_"+jetauthor+"_1VTX_0ST_4VTX_nofrag_pdf_add").c_str(),
1592                                                                  RooArgList(*singleflavour_1VTX_0ST_4VTX_nofrag_pdf),
1593                                                                  RooArgList(*singleflavour_1VTX_0ST_4VTX_nofrag_coef));
1594     
1595     
1596     RooProdPdf* singleflavour_1VTX_0ST_5or6VTX_nofrag_pdf=new RooProdPdf((hypothesis+"_"+jetauthor+"_1VTX_0ST_5or6VTX_nofrag_pdf").c_str(),
1597                                                                   (hypothesis+"_"+jetauthor+"_1VTX_0ST_5or6VTX_nofrag_pdf").c_str(),
1598                                                                   RooArgList(*singleflavour_1orMoreVTX_3orMoreTrackVTX_mass_pdf,
1599                                                                              *singleflavour_1orMoreVTX_significance3d_pdf));
1600     
1601     RooAddPdf* singleflavour_1VTX_0ST_5or6VTX_nofrag_pdf_add=new RooAddPdf((hypothesis+"_"+jetauthor+"_1VTX_0ST_5or6VTX_nofrag_pdf_add").c_str(),
1602                                                                     (hypothesis+"_"+jetauthor+"_1VTX_0ST_5or6VTX_nofrag_pdf_add").c_str(),
1603                                                                     RooArgList(*singleflavour_1VTX_0ST_5or6VTX_nofrag_pdf),
1604                                                                     RooArgList(*singleflavour_1VTX_0ST_5or6VTX_nofrag_coef));
1605     
1606     RooProdPdf* singleflavour_1VTX_0ST_7orMoreVTX_nofrag_pdf=new RooProdPdf((hypothesis+"_"+jetauthor+"_1VTX_0ST_7orMoreVTX_nofrag_pdf").c_str(),
1607                                                                      (hypothesis+"_"+jetauthor+"_1VTX_0ST_7orMore_pdf").c_str(),
1608                                                                      RooArgList(*singleflavour_1orMoreVTX_3orMoreTrackVTX_mass_pdf,
1609                                                                                 *singleflavour_1orMoreVTX_significance3d_pdf));
1610     
1611     
1612     RooAddPdf* singleflavour_1VTX_0ST_7orMoreVTX_nofrag_pdf_add=new RooAddPdf((hypothesis+"_"+jetauthor+"_1VTX_0ST_7orMoreVTX_nofrag_pdf_add").c_str(),
1613                                                                        (hypothesis+"_"+jetauthor+"_1VTX_0ST_7orMoreVTX_nofrag_pdf_add").c_str(),
1614                                                                        RooArgList(*singleflavour_1VTX_0ST_7orMoreVTX_nofrag_pdf),
1615                                                                        RooArgList(*singleflavour_1VTX_0ST_7orMoreVTX_nofrag_coef));
1616     
1617     
1618     
1619     //1ST
1620     
1621     RooProdPdf* singleflavour_1VTX_1ST_2VTX_nofrag_pdf=new RooProdPdf((hypothesis+"_"+jetauthor+"_1VTX_1ST_2VTX_nofrag_pdf").c_str(),
1622                                                                (hypothesis+"_"+jetauthor+"_1VTX_1ST_2VTX_nofrag_pdf").c_str(),
1623                                                                RooArgList(*singleflavour_1orMoreVTX_2TrackVTX_mass_pdf,
1624                                                                           *singleflavour_1orMoreVTX_significance3d_pdf));
1625     
1626     RooAddPdf* singleflavour_1VTX_1ST_2VTX_nofrag_pdf_add=new RooAddPdf((hypothesis+"_"+jetauthor+"_1VTX_1ST_2VTX_nofrag_pdf_add").c_str(),
1627                                                                  (hypothesis+"_"+jetauthor+"_1VTX_1ST_2VTX_nofrag_pdf_add").c_str(),
1628                                                                  RooArgList(*singleflavour_1VTX_1ST_2VTX_nofrag_pdf),
1629                                                                  RooArgList(*singleflavour_1VTX_1ST_2VTX_nofrag_coef));
1630     
1631     RooProdPdf* singleflavour_1VTX_1ST_3VTX_nofrag_pdf=new RooProdPdf((hypothesis+"_"+jetauthor+"_1VTX_1ST_3VTX_nofrag_pdf").c_str(),
1632                                                                (hypothesis+"_"+jetauthor+"_1VTX_1ST_3VTX_nofrag_pdf").c_str(),
1633                                                                RooArgList(*singleflavour_1orMoreVTX_3orMoreTrackVTX_mass_pdf,
1634                                                                           *singleflavour_1orMoreVTX_significance3d_pdf));
1635     
1636     RooAddPdf* singleflavour_1VTX_1ST_3VTX_nofrag_pdf_add=new RooAddPdf((hypothesis+"_"+jetauthor+"_1VTX_1ST_3VTX_nofrag_pdf_add").c_str(),
1637                                                                  (hypothesis+"_"+jetauthor+"_1VTX_1ST_3VTX_nofrag_pdf_add").c_str(),
1638                                                                  RooArgList(*singleflavour_1VTX_1ST_3VTX_nofrag_pdf),
1639                                                                  RooArgList(*singleflavour_1VTX_1ST_3VTX_nofrag_coef));
1640     
1641     RooProdPdf* singleflavour_1VTX_1ST_4VTX_nofrag_pdf=new RooProdPdf((hypothesis+"_"+jetauthor+"_1VTX_1ST_4VTX_nofrag_pdf").c_str(),
1642                                                                       (hypothesis+"_"+jetauthor+"_1VTX_1ST_4VTX_nofrag_pdf").c_str(),
1643                                                                       RooArgList(*singleflavour_1orMoreVTX_3orMoreTrackVTX_mass_pdf,
1644                                                                                  *singleflavour_1orMoreVTX_significance3d_pdf));
1645     
1646     RooAddPdf* singleflavour_1VTX_1ST_4VTX_nofrag_pdf_add=new RooAddPdf((hypothesis+"_"+jetauthor+"_1VTX_1ST_4VTX_nofrag_pdf_add").c_str(),
1647                                                                         (hypothesis+"_"+jetauthor+"_1VTX_1ST_4VTX_nofrag_pdf_add").c_str(),
1648                                                                         RooArgList(*singleflavour_1VTX_1ST_4VTX_nofrag_pdf),
1649                                                                         RooArgList(*singleflavour_1VTX_1ST_4VTX_nofrag_coef));
1650     
1651     
1652     RooProdPdf* singleflavour_1VTX_1ST_5or6VTX_nofrag_pdf=new RooProdPdf((hypothesis+"_"+jetauthor+"_1VTX_1ST_5or6VTX_nofrag_pdf").c_str(),
1653                                                                          (hypothesis+"_"+jetauthor+"_1VTX_1ST_5or6VTX_nofrag_pdf").c_str(),
1654                                                                          RooArgList(*singleflavour_1orMoreVTX_3orMoreTrackVTX_mass_pdf,
1655                                                                                     *singleflavour_1orMoreVTX_significance3d_pdf));
1656     
1657     RooAddPdf* singleflavour_1VTX_1ST_5or6VTX_nofrag_pdf_add=new RooAddPdf((hypothesis+"_"+jetauthor+"_1VTX_1ST_5or6VTX_nofrag_pdf_add").c_str(),
1658                                                                            (hypothesis+"_"+jetauthor+"_1VTX_1ST_5or6VTX_nofrag_pdf_add").c_str(),
1659                                                                            RooArgList(*singleflavour_1VTX_1ST_5or6VTX_nofrag_pdf),
1660                                                                            RooArgList(*singleflavour_1VTX_1ST_5or6VTX_nofrag_coef));
1661     
1662     RooProdPdf* singleflavour_1VTX_1ST_7orMoreVTX_nofrag_pdf=new RooProdPdf((hypothesis+"_"+jetauthor+"_1VTX_1ST_7orMoreVTX_nofrag_pdf").c_str(),
1663                                                                             (hypothesis+"_"+jetauthor+"_1VTX_1ST_7orMoreVTX_nofrag_pdf").c_str(),
1664                                                                             RooArgList(*singleflavour_1orMoreVTX_3orMoreTrackVTX_mass_pdf,
1665                                                                                        *singleflavour_1orMoreVTX_significance3d_pdf));
1666     
1667     
1668     RooAddPdf* singleflavour_1VTX_1ST_7orMoreVTX_nofrag_pdf_add=new RooAddPdf((hypothesis+"_"+jetauthor+"_1VTX_1ST_7orMoreVTX_nofrag_pdf_add").c_str(),
1669                                                                               (hypothesis+"_"+jetauthor+"_1VTX_1ST_7orMoreVTX_nofrag_pdf_add").c_str(),
1670                                                                               RooArgList(*singleflavour_1VTX_1ST_7orMoreVTX_nofrag_pdf),
1671                                                                               RooArgList(*singleflavour_1VTX_1ST_7orMoreVTX_nofrag_coef));
1672     
1673     
1674     //2orMoreST
1675     
1676     
1677     RooProdPdf* singleflavour_1VTX_2orMoreST_2VTX_nofrag_pdf=new RooProdPdf((hypothesis+"_"+jetauthor+"_1VTX_2orMoreST_2VTX_nofrag_pdf").c_str(),
1678                                                                             (hypothesis+"_"+jetauthor+"_1VTX_2orMoreST_2VTX_nofrag_pdf").c_str(),
1679                                                                             RooArgList(*singleflavour_1orMoreVTX_2TrackVTX_mass_pdf,
1680                                                                                        *singleflavour_1orMoreVTX_significance3d_pdf));
1681     
1682     RooAddPdf* singleflavour_1VTX_2orMoreST_2VTX_nofrag_pdf_add=new RooAddPdf((hypothesis+"_"+jetauthor+"_1VTX_2orMoreST_2VTX_nofrag_pdf_add").c_str(),
1683                                                                               (hypothesis+"_"+jetauthor+"_1VTX_2orMoreST_2VTX_nofrag_pdf_add").c_str(),
1684                                                                               RooArgList(*singleflavour_1VTX_2orMoreST_2VTX_nofrag_pdf),
1685                                                                               RooArgList(*singleflavour_1VTX_2orMoreST_2VTX_nofrag_coef));
1686     
1687     RooProdPdf* singleflavour_1VTX_2orMoreST_3VTX_nofrag_pdf=new RooProdPdf((hypothesis+"_"+jetauthor+"_1VTX_2orMoreST_3VTX_nofrag_pdf").c_str(),
1688                                                                             (hypothesis+"_"+jetauthor+"_1VTX_2orMoreST_3VTX_nofrag_pdf").c_str(),
1689                                                                             RooArgList(*singleflavour_1orMoreVTX_3orMoreTrackVTX_mass_pdf,
1690                                                                                        *singleflavour_1orMoreVTX_significance3d_pdf));
1691     
1692     RooAddPdf* singleflavour_1VTX_2orMoreST_3VTX_nofrag_pdf_add=new RooAddPdf((hypothesis+"_"+jetauthor+"_1VTX_2orMoreST_3VTX_nofrag_pdf_add").c_str(),
1693                                                                               (hypothesis+"_"+jetauthor+"_1VTX_2orMoreST_3VTX_nofrag_pdf_add").c_str(),
1694                                                                               RooArgList(*singleflavour_1VTX_2orMoreST_3VTX_nofrag_pdf),
1695                                                                               RooArgList(*singleflavour_1VTX_2orMoreST_3VTX_nofrag_coef));
1696     
1697     RooProdPdf* singleflavour_1VTX_2orMoreST_4VTX_nofrag_pdf=new RooProdPdf((hypothesis+"_"+jetauthor+"_1VTX_2orMoreST_4VTX_nofrag_pdf").c_str(),
1698                                                                             (hypothesis+"_"+jetauthor+"_1VTX_2orMoreST_4VTX_nofrag_pdf").c_str(),
1699                                                                             RooArgList(*singleflavour_1orMoreVTX_3orMoreTrackVTX_mass_pdf,
1700                                                                                        *singleflavour_1orMoreVTX_significance3d_pdf));
1701     
1702     RooAddPdf* singleflavour_1VTX_2orMoreST_4VTX_nofrag_pdf_add=new RooAddPdf((hypothesis+"_"+jetauthor+"_1VTX_2orMoreST_4VTX_nofrag_pdf_add").c_str(),
1703                                                                               (hypothesis+"_"+jetauthor+"_1VTX_2orMoreST_4VTX_nofrag_pdf_add").c_str(),
1704                                                                               RooArgList(*singleflavour_1VTX_2orMoreST_4VTX_nofrag_pdf),
1705                                                                               RooArgList(*singleflavour_1VTX_2orMoreST_4VTX_nofrag_coef));
1706     
1707     
1708     RooProdPdf* singleflavour_1VTX_2orMoreST_5or6VTX_nofrag_pdf=new RooProdPdf((hypothesis+"_"+jetauthor+"_1VTX_2orMoreST_5or6VTX_nofrag_pdf").c_str(),
1709                                                                                (hypothesis+"_"+jetauthor+"_1VTX_2orMoreST_5or6VTX_nofrag_pdf").c_str(),
1710                                                                                RooArgList(*singleflavour_1orMoreVTX_3orMoreTrackVTX_mass_pdf,
1711                                                                                           *singleflavour_1orMoreVTX_significance3d_pdf));
1712     
1713     RooAddPdf* singleflavour_1VTX_2orMoreST_5or6VTX_nofrag_pdf_add=new RooAddPdf((hypothesis+"_"+jetauthor+"_1VTX_2orMoreST_5or6VTX_nofrag_pdf_add").c_str(),
1714                                                                                  (hypothesis+"_"+jetauthor+"_1VTX_2orMoreST_5or6VTX_nofrag_pdf_add").c_str(),
1715                                                                                  RooArgList(*singleflavour_1VTX_2orMoreST_5or6VTX_nofrag_pdf),
1716                                                                                  RooArgList(*singleflavour_1VTX_2orMoreST_5or6VTX_nofrag_coef));
1717     
1718     RooProdPdf* singleflavour_1VTX_2orMoreST_7orMoreVTX_nofrag_pdf=new RooProdPdf((hypothesis+"_"+jetauthor+"_1VTX_2orMoreST_7orMoreVTX_nofrag_pdf").c_str(),
1719                                                                                   (hypothesis+"_"+jetauthor+"_1VTX_2orMoreST_7orMoreVTX_nofrag_pdf").c_str(),
1720                                                                                   RooArgList(*singleflavour_1orMoreVTX_3orMoreTrackVTX_mass_pdf,
1721                                                                                              *singleflavour_1orMoreVTX_significance3d_pdf));
1722     
1723     RooAddPdf* singleflavour_1VTX_2orMoreST_7orMoreVTX_nofrag_pdf_add=new RooAddPdf((hypothesis+"_"+jetauthor+"_1VTX_2orMoreST_7orMoreVTX_nofrag_pdf_add").c_str(),
1724                                                                                     (hypothesis+"_"+jetauthor+"_1VTX_2orMoreST_7orMoreVTX_nofrag_pdf_add").c_str(),
1725                                                                                     RooArgList(*singleflavour_1VTX_2orMoreST_7orMoreVTX_nofrag_pdf),
1726                                                                                     RooArgList(*singleflavour_1VTX_2orMoreST_7orMoreVTX_nofrag_coef));
1727     
1728     
1729     
1730     //2orMore
1731     
1732     RooProdPdf* singleflavour_2orMoreVTX_4VTX_nofrag_pdf=new RooProdPdf((hypothesis+"_"+jetauthor+"_2orMoreVTX_4VTX_nofrag_pdf").c_str(),
1733                                                                         (hypothesis+"_"+jetauthor+"_2orMoreVTX_4VTX_nofrag_pdf").c_str(),
1734                                                                         RooArgList(*singleflavour_1orMoreVTX_3orMoreTrackVTX_mass_pdf,
1735                                                                                    *singleflavour_1orMoreVTX_significance3d_pdf));
1736     
1737     RooAddPdf* singleflavour_2orMoreVTX_4VTX_nofrag_pdf_add=new RooAddPdf((hypothesis+"_"+jetauthor+"_2orMoreVTX_4VTX_nofrag_pdf_add").c_str(),
1738                                                                           (hypothesis+"_"+jetauthor+"_2orMoreVTX_4VTX_nofrag_pdf_add").c_str(),
1739                                                                           RooArgList(*singleflavour_2orMoreVTX_4VTX_nofrag_pdf),
1740                                                                           RooArgList(*singleflavour_2orMoreVTX_4VTX_nofrag_coef));
1741     
1742     
1743     
1744     RooProdPdf* singleflavour_2orMoreVTX_5orMoreVTX_nofrag_pdf=new RooProdPdf((hypothesis+"_"+jetauthor+"_2orMoreVTX_5orMoreVTX_nofrag_pdf").c_str(),
1745                                                                               (hypothesis+"_"+jetauthor+"_2orMoreVTX_5orMoreVTX_nofrag_pdf").c_str(),
1746                                                                               RooArgList(*singleflavour_1orMoreVTX_3orMoreTrackVTX_mass_pdf,
1747                                                                                          *singleflavour_1orMoreVTX_significance3d_pdf));
1748     
1749     RooAddPdf* singleflavour_2orMoreVTX_5orMoreVTX_nofrag_pdf_add=new RooAddPdf((hypothesis+"_"+jetauthor+"_2orMoreVTX_5orMoreVTX_nofrag_pdf_add").c_str(),
1750                                                                                 (hypothesis+"_"+jetauthor+"_2orMoreVTX_5orMoreVTX_nofrag_pdf_add").c_str(),
1751                                                                                 RooArgList(*singleflavour_2orMoreVTX_5orMoreVTX_nofrag_pdf),
1752                                                                                 RooArgList(*singleflavour_2orMoreVTX_5orMoreVTX_nofrag_coef));
1753     
1754     
1755     
1756     
1757 
1758     //    RooSuperCategory* allCategoriesCombined=static_cast<RooSuperCategory*>(m_myRooVariables->find("allCategoriesCombined"));
1759 
1760 
1761 
1762 
1763     
1764     RooCategory* allCategoriesCombined_reduced=static_cast<RooCategory*>(m_myRooVariables->find("allCategoriesCombined_reduced"));
1765 
1766     
1767     RooSimultaneous* singleflavour_pdf=new RooSimultaneous((hypothesis+"_"+jetauthor+"_pdf").c_str(),
1768                                                            (hypothesis+"_"+jetauthor+"_pdf").c_str(),
1769                                                            *allCategoriesCombined_reduced);
1770     
1771     singleflavour_pdf->addPdf(*singleflavour_noVTX_0ST_pdf_add,"{NoVTX;NoSingleTrack}");
1772     singleflavour_pdf->addPdf(*singleflavour_noVTX_1ST_normal_pdf_add,"{NoVTX;1SingleTrack;Normal}");
1773     singleflavour_pdf->addPdf(*singleflavour_noVTX_2ST_normal_pdf_add,"{NoVTX;2SingleTrack;Normal}");
1774     singleflavour_pdf->addPdf(*singleflavour_noVTX_3orMoreST_normal_pdf_add,"{NoVTX;3orMoreSingleTrack;Normal}");
1775     
1776     
1777     singleflavour_pdf->addPdf(*singleflavour_1VTX_0ST_2VTX_normal_pdf_add,"{1VTX;NoSingleTrack;2TrackVTX;Normal}");
1778     singleflavour_pdf->addPdf(*singleflavour_1VTX_0ST_3VTX_normal_pdf_add,"{1VTX;NoSingleTrack;3TrackVTX;Normal}");
1779     singleflavour_pdf->addPdf(*singleflavour_1VTX_0ST_4VTX_normal_pdf_add,"{1VTX;NoSingleTrack;4TrackVTX;Normal}");
1780     singleflavour_pdf->addPdf(*singleflavour_1VTX_0ST_5or6VTX_normal_pdf_add,"{1VTX;NoSingleTrack;5or6TrackVTX;Normal}");
1781     singleflavour_pdf->addPdf(*singleflavour_1VTX_0ST_7orMoreVTX_normal_pdf_add,"{1VTX;NoSingleTrack;7orMoreTrackVTX;Normal}");
1782     singleflavour_pdf->addPdf(*singleflavour_1VTX_1ST_2VTX_normal_pdf_add,"{1VTX;1SingleTrack;2TrackVTX;Normal}");
1783     singleflavour_pdf->addPdf(*singleflavour_1VTX_1ST_3VTX_normal_pdf_add,"{1VTX;1SingleTrack;3TrackVTX;Normal}");
1784     singleflavour_pdf->addPdf(*singleflavour_1VTX_1ST_4VTX_normal_pdf_add,"{1VTX;1SingleTrack;4TrackVTX;Normal}");
1785     singleflavour_pdf->addPdf(*singleflavour_1VTX_1ST_5or6VTX_normal_pdf_add,"{1VTX;1SingleTrack;5or6TrackVTX;Normal}");
1786     singleflavour_pdf->addPdf(*singleflavour_1VTX_1ST_7orMoreVTX_normal_pdf_add,"{1VTX;1SingleTrack;7orMoreTrackVTX;Normal}");
1787     singleflavour_pdf->addPdf(*singleflavour_1VTX_2orMoreST_2VTX_normal_pdf_add,"{1VTX;2orMoreSingleTrack;2TrackVTX;Normal}");
1788     singleflavour_pdf->addPdf(*singleflavour_1VTX_2orMoreST_3VTX_normal_pdf_add,"{1VTX;2orMoreSingleTrack;3TrackVTX;Normal}");
1789     singleflavour_pdf->addPdf(*singleflavour_1VTX_2orMoreST_4VTX_normal_pdf_add,"{1VTX;2orMoreSingleTrack;4TrackVTX;Normal}");
1790     singleflavour_pdf->addPdf(*singleflavour_1VTX_2orMoreST_5or6VTX_normal_pdf_add,"{1VTX;2orMoreSingleTrack;5or6TrackVTX;Normal}");
1791     singleflavour_pdf->addPdf(*singleflavour_1VTX_2orMoreST_7orMoreVTX_normal_pdf_add,"{1VTX;2orMoreSingleTrack;7orMoreTrackVTX;Normal}");
1792     
1793     singleflavour_pdf->addPdf(*singleflavour_2orMoreVTX_4VTX_normal_pdf_add,"{2orMoreVTX;4TrackVTX;Normal}");
1794     singleflavour_pdf->addPdf(*singleflavour_2orMoreVTX_5orMoreVTX_normal_pdf_add,"{2orMoreVTX;5orMoreTrackVTX;Normal}");
1795     
1796     
1797     singleflavour_pdf->addPdf(*singleflavour_noVTX_1ST_nofrag_pdf_add,"{NoVTX;1SingleTrack;NoFrag}");
1798     singleflavour_pdf->addPdf(*singleflavour_noVTX_2ST_nofrag_pdf_add,"{NoVTX;2SingleTrack;NoFrag}");
1799     singleflavour_pdf->addPdf(*singleflavour_noVTX_3orMoreST_nofrag_pdf_add,"{NoVTX;3orMoreSingleTrack;NoFrag}");
1800     
1801     
1802     singleflavour_pdf->addPdf(*singleflavour_1VTX_0ST_2VTX_nofrag_pdf_add,"{1VTX;NoSingleTrack;2TrackVTX;NoFrag}");
1803     singleflavour_pdf->addPdf(*singleflavour_1VTX_0ST_3VTX_nofrag_pdf_add,"{1VTX;NoSingleTrack;3TrackVTX;NoFrag}");
1804     singleflavour_pdf->addPdf(*singleflavour_1VTX_0ST_4VTX_nofrag_pdf_add,"{1VTX;NoSingleTrack;4TrackVTX;NoFrag}");
1805     singleflavour_pdf->addPdf(*singleflavour_1VTX_0ST_5or6VTX_nofrag_pdf_add,"{1VTX;NoSingleTrack;5or6TrackVTX;NoFrag}");
1806     singleflavour_pdf->addPdf(*singleflavour_1VTX_0ST_7orMoreVTX_nofrag_pdf_add,"{1VTX;NoSingleTrack;7orMoreTrackVTX;NoFrag}");
1807     singleflavour_pdf->addPdf(*singleflavour_1VTX_1ST_2VTX_nofrag_pdf_add,"{1VTX;1SingleTrack;2TrackVTX;NoFrag}");
1808     singleflavour_pdf->addPdf(*singleflavour_1VTX_1ST_3VTX_nofrag_pdf_add,"{1VTX;1SingleTrack;3TrackVTX;NoFrag}");
1809     singleflavour_pdf->addPdf(*singleflavour_1VTX_1ST_4VTX_nofrag_pdf_add,"{1VTX;1SingleTrack;4TrackVTX;NoFrag}");
1810     singleflavour_pdf->addPdf(*singleflavour_1VTX_1ST_5or6VTX_nofrag_pdf_add,"{1VTX;1SingleTrack;5or6TrackVTX;NoFrag}");
1811     singleflavour_pdf->addPdf(*singleflavour_1VTX_1ST_7orMoreVTX_nofrag_pdf_add,"{1VTX;1SingleTrack;7orMoreTrackVTX;NoFrag}");
1812     singleflavour_pdf->addPdf(*singleflavour_1VTX_2orMoreST_2VTX_nofrag_pdf_add,"{1VTX;2orMoreSingleTrack;2TrackVTX;NoFrag}");
1813     singleflavour_pdf->addPdf(*singleflavour_1VTX_2orMoreST_3VTX_nofrag_pdf_add,"{1VTX;2orMoreSingleTrack;3TrackVTX;NoFrag}");
1814     singleflavour_pdf->addPdf(*singleflavour_1VTX_2orMoreST_4VTX_nofrag_pdf_add,"{1VTX;2orMoreSingleTrack;4TrackVTX;NoFrag}");
1815     singleflavour_pdf->addPdf(*singleflavour_1VTX_2orMoreST_5or6VTX_nofrag_pdf_add,"{1VTX;2orMoreSingleTrack;5or6TrackVTX;NoFrag}");
1816     singleflavour_pdf->addPdf(*singleflavour_1VTX_2orMoreST_7orMoreVTX_nofrag_pdf_add,"{1VTX;2orMoreSingleTrack;7orMoreTrackVTX;NoFrag}");
1817     
1818     
1819     singleflavour_pdf->addPdf(*singleflavour_2orMoreVTX_4VTX_nofrag_pdf_add,"{2orMoreVTX;4TrackVTX;NoFrag}");
1820     singleflavour_pdf->addPdf(*singleflavour_2orMoreVTX_5orMoreVTX_nofrag_pdf_add,"{2orMoreVTX;5orMoreTrackVTX;NoFrag}");
1821     
1822     
1823     //    singleflavour_pdf->Print("v");
1824 
1825 
1826     //look for the correct jetauthor file
1827     int size=m_textFileNames.size();
1828     std::string textfilename="";
1829     for (int count=0;count<size;++count) {
1830       //      std::cout << "textfilename " << m_keyToTextFileNames[count] << " key " << m_keyToTextFileNames[count] << std::endl;
1831       if (m_keyToTextFileNames[count]==jetauthor) {
1832         //      std::cout << " chosen " << m_textFileNames[count] << std::endl;
1833         textfilename=m_textFileNames[count];
1834       }
1835     }
1836     
1837     //    std::cout << " testing now " << std::endl;
1838 
1839     bool noTextFile(false);
1840 
1841     if (textfilename=="") {
1842       if (size>0)
1843       {
1844         ATH_MSG_INFO(" Could not retrieve calibration text file. Using first available, which is for: " << 
1845             m_keyToTextFileNames[0] );
1846         textfilename=m_textFileNames[0];
1847       }
1848       else
1849       {
1850         ATH_MSG_INFO(" Could not retrieve calibration text file.");
1851         noTextFile=true;
1852       }
1853       //      std::cout << " failed " << std::endl;
1854       //      return;
1855     } else {
1856       //      std::cout << " not failed " << std::endl;
1857       ATH_MSG_DEBUG(" Successfully found text file :  " << textfilename );
1858     }
1859 
1860 
1861     RooArgSet* singleflavour_parameters=(RooArgSet*)singleflavour_pdf->getVariables();
1862 
1863     ATH_MSG_DEBUG(" Got pointer to the RooArgSet. print before " << singleflavour_parameters );
1864     
1865     if (!noTextFile)
1866     {
1867       singleflavour_parameters->readFromFile(textfilename.c_str());
1868     }
1869 
1870     if (msgLvl(MSG::VERBOSE))
1871     {
1872       ATH_MSG_DEBUG(" After reading file, coefficients set to ");
1873       singleflavour_parameters->Print("v");
1874     }
1875     
1876     //    ATH_MSG_DEBUG("Print after reading ");
1877     //singleflavour_parameters->Print("v");
1878     
1879 
1880     //here store the names to load for the coefficients...    
1881     std::vector<TString> coefficientNamesToLoad;
1882     coefficientNamesToLoad.push_back(TString("coef"));
1883     coefficientNamesToLoad.push_back(TString("e_1VTX"));
1884     coefficientNamesToLoad.push_back(TString("e_1VTX_2TrackVTX"));
1885     coefficientNamesToLoad.push_back(TString("e_1VTX_3TrackVTX"));
1886     coefficientNamesToLoad.push_back(TString("e_1VTX_4TrackVTX"));
1887     coefficientNamesToLoad.push_back(TString("e_1VTX_5or6TrackVTX"));
1888     coefficientNamesToLoad.push_back(TString("e_1Vtx_1SingleTrack"));
1889     coefficientNamesToLoad.push_back(TString("e_1Vtx_NoSingleTrack"));
1890     coefficientNamesToLoad.push_back(TString("e_1orMoreVTX_2TrackVTX_energyFraction_normal"));
1891     coefficientNamesToLoad.push_back(TString("e_1orMoreVTX_3TrackVTX_energyFraction_normal"));
1892     coefficientNamesToLoad.push_back(TString("e_1orMoreVTX_4orMoreTrackVTX_energyFraction_normal"));
1893     coefficientNamesToLoad.push_back(TString("e_2orMoreVTX_4TrackVTX"));
1894     coefficientNamesToLoad.push_back(TString("e_NoVTX"));
1895     coefficientNamesToLoad.push_back(TString("e_NoVtx_1SingleTrack"));
1896     coefficientNamesToLoad.push_back(TString("e_NoVtx_1SingleTrack_energyFraction_normal"));
1897     coefficientNamesToLoad.push_back(TString("e_NoVtx_2SingleTrack"));
1898     coefficientNamesToLoad.push_back(TString("e_NoVtx_2orMoreSingleTrack_energyFraction_normal"));
1899     coefficientNamesToLoad.push_back(TString("e_NoVtx_NoSingleTrack"));
1900     
1901     //as